Paŭ*_*ann 10 java eclipse osgi jface preferences
我正在研究一个Eclipse插件(或者实际上是一个基于Eclipse的应用程序的插件),它需要用户输入一些配置.
从查看文档,似乎有两个首选API - 一个在org.eclipse.core.runtime.preferences,扩展/实现OSGI优先API,另一个,特定于JFace,在org.eclipse.jface.preference.然后我们也有org.eclipse.ui.preferences.
OSGI API具有分层节点树 - 首选节点(Preferences或IEclipsePreferences)可以有多个子节点,这些子节点本身可以包含单个名称 - 值对以及更多子节点.这似乎适合我的用例 - 我有一个动态数量的"首选项组",每个都有大约三个字符串属性(名称,描述,命令),这将很好地映射到这些节点.
JFace API没有这样的层次结构,IPreferenceStore每个插件只有一个单元.但它提供了首选项编辑器页面,然后可以通过实现IWorkbenchPreferencePage和使用"org.eclipse.ui.preferencePages"扩展点将其包含在常用首选项对话框(窗口/首选项)中.(我仍然必须自己实现首选项页面的一部分,但是这个API为此提供了一个很好的基础,似乎.)
似乎org.eclipse.ui.preferencesAPI通过提供基于IEclipsePreferences的IPreferenceStore实现以某种方式桥接这两个API,但我仍然看不到如何使用它.
所以我的问题是:如何Preferences在首选项对话框中使用分层OSGI ?我只需要一个级别,但我需要用户能够动态添加新节点(每个节点大约有三个首选项).(但是,这些节点不必具有新的首选项页面.)
Pau*_*ter 14
似乎在首选项页面级别,它希望使用首选项存储.大多数插件都从默认提供的偏好存储中获取org.eclipse.ui.plugin.AbstractUIPlugin.getPreferenceStore().这会松散地转换为带有InstanceScope的ScopedPreferenceStore,其节点与其bundle.id匹配.
相当于获取匹配的IEclipsePreferences对象InstanceScope.INSTANCE.getNode("bundle.id").这将允许您在下面添加更多节点,但无法从IPreferenceStore访问它们.但是,您的首选项页面可以其优先店设置的主要一个你的插件,并且仍然使用IEclipsePreferences或二级IPreferenceStore访问额外的偏好(你就必须自己编写它,类似org.eclipse.ui.internal.dialogs.EditorsPreferencePage).
| 归档时间: |
|
| 查看次数: |
4498 次 |
| 最近记录: |