Eclipse: предпочтения OSGI и PreferenceStore

Я работаю над плагином Eclipse (или, фактически, плагином для приложения на основе Eclipse), который требует ввода пользователем некоторой конфигурации.

Судя по документации, кажется, есть два API предпочтений - один в org.eclipse.core.runtime.preferences , расширяющий / реализующий API предпочтений OSGI , другой, специфичный для JFace, в org.eclipse.jface.preference . Затем у нас есть org.eclipse.ui.preferences .

OSGI API имеет иерархическое дерево узлов - узел предпочтений ( Preferences или IEclipsePreferences ) может иметь несколько подузлов, которые сами могут содержать как отдельные пары имя-значение, так и несколько подузлов. Это кажется правильным для моего варианта использования - у меня есть динамическое количество «групп предпочтений», каждая из которых имеет примерно три строковых свойства (имя, описание, команда), которые хорошо отображаются на этих узлах.

API JFace имеет нет такой иерархии, только плоский IPreferenceStore для каждого плагина. Но он предоставляет страницы редактора предпочтений, которые затем можно включить в обычный диалог настроек (Window / Preferences), реализовав IWorkbenchPreferencePage и с помощью точки расширения org.eclipse.ui.preferencePages . (Мне все еще нужно реализовать часть страницы настроек самостоятельно, но этот API, кажется, обеспечивает для этого хорошую основу.)

Похоже, что API org.eclipse.ui.preferences каким-то образом связывает оба этих API, предоставляя реализацию IPreferenceStore на основе IEclipsePreferences, но я все еще не понимаю, как это использовать.

Итак, вот мой вопрос: Как я могу использовать иерархические OSGI Preferences в диалоге настроек? Мне нужен только один уровень, но мне нужно, чтобы пользователь мог динамически добавлять новые узлы (примерно с тремя предпочтениями каждый). (Тем не менее, эти узлы не обязательно должны иметь новые страницы настроек.)

10
задан Paŭlo Ebermann 26 April 2011 в 18:14
поделиться