Как два плагина eclipse могут использовать один и тот же магазин настроек? - PullRequest
5 голосов
/ 22 апреля 2010

У меня есть два плагина, скажем com.site.plugin.core и com.site.plugin.ui.
Я бы хотел отделить основную часть от части пользовательского интерфейса, поэтому в плагине com.site.plugin.ui я создал страницу настроек, где я определил некоторые настройки, которые должны использоваться com.site.plugin.core. Я проверяю статью на сайте Eclipse , но она устарела, и связанная ошибка также не дает много информации.
Так возможно ли это сделать с помощью стандартного механизма Eclipse, или мне нужно использовать прямой низкоуровневый API через пакет org.eclipse.core.runtime.preferences?

Ответы [ 3 ]

5 голосов
/ 10 марта 2011

Я считаю, что пользовательский интерфейс зависит от ядра, а не иначе. В этом случае вы можете использовать хранилище настроек Core на странице настроек плагина UI, например:

IPreferenceStore store = CorePluginActivator.getDefault().getPreferenceStore();
setPreferenceStore(store);

Таким образом, на странице настроек будут храниться значения в плагине Core. Плагин Core может использовать значения вне зависимости от плагина UI.

2 голосов
/ 31 августа 2011

Вы также можете получить доступ к настройкам в других плагинах, используя службу настроек:

String pref = Platform.getPreferencesService().getString(
    "org.myplugin.preferences.page", "pref name",
    "default value if pref not found", null);
1 голос
/ 11 мая 2010

Магазины Prefs найдены для каждого плагина. Это один из способов получить магазин преф плагин, у которого класс активатора ActivatorA.

IPreferenceStore store = ActivatorA.getDefault().getPreferenceStore();

Если вы хотите, чтобы другой плагин ссылался на тот же магазин, возможно, вы могли бы выставить API на ActivatorA, чтобы он туда попал, например

public IPreferenceStore getSharedPrefs() {
    return ActivatorA.getDefault().getPreferenceStore();
}

Второй плагин найдет общий магазин, выполнив это

IPreferenceStore sharedPrefs = ActivatorA.getSharedPrefs();

Удачи.

...