【问题标题】:Eclipse plug-in: configuration scope preference via preference pageEclipse 插件:通过首选项页面配置范围首选项
【发布时间】:2012-11-06 17:24:23
【问题描述】:

我正在使用 Eclipse 3.7 (Indigo) 作为 Eclipse 插件。这个插件将通过产品文件打包成一个独立的应用程序。安装将是多用户安装,如this link 的方案 2 中所述。所以会有很多用户共享一个安装区域。

基于this answer,我想我可以将osgi.configuration.area 设置为user.home 位置,以便每个用户都有自己的设置。我了解如何访问首选项via code,但现在我希望能够通过 Eclipse 窗口下的首选项对话框访问这些首选项。对于我看到的所有示例,“首选项”对话框仅满足实例范围首选项。我有什么方法可以将配置范围首选项添加到首选项页面。

我还在 stackoverflow 上查看了this answer,但这又迎合了实例范围,因此我发布了一个单独的问题。

【问题讨论】:

  • 不知何故,您需要在运行时根据 user.home 在 .ini 文件 -Declipse.pluginCustomization=cwide.properties 中设置此值,也许如果 user.home 是 ini 自定义中的有效值它指向 user.home/preferences.properties?
  • 抱歉,我不确定您的评论是什么意思...这与偏好页面有关吗?

标签: eclipse eclipse-plugin


【解决方案1】:

您的偏好页面是PreferencePage 的子类(很可能是FieldEditorPreferencePage 的子类)。

通过实现IWorkbenchPreferencePage 接口,您可以实现init 方法并设置自定义PreferenceStore 以在您的实现中使用。

例如

public void init(IWorkbench workbench) {
    setPreferenceStore(
            new ScopedPreferenceStore(ConfigurationScope.INSTANCE, 
                    "com.nem.plugin") );
    setDescription("A preference page using configuration scope");
}

【讨论】:

  • 这实际上是我最终实现的,对于我的 performOK() 和 performDefaults(),我在必要时使用 ConfigurationScope.INSTANCE.get() 和 put()。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多