【问题标题】:Preference Page and runtime plugins首选项页面和运行时插件
【发布时间】:2011-06-14 12:17:00
【问题描述】:

我有以下问题。我有一个使用 Store 机制存储首选项的首选项页面。现在,这些首选项必须从不包含org.eclipse.ui的插件中访问,这意味着存储机制不可用,我只能使用Runtime首选项机制。

如何使用首选项页面来创建运行时首选项?

我有以下问题:

  • 使用偏好页面时,使用的类是Activator.getDefault().getPreferenceStore()
  • 使用运行时插件时,类为new InstanceScope().getNode("<plugin id>")

如何同步两者?

【问题讨论】:

    标签: eclipse preferences


    【解决方案1】:

    Eclipse: OSGI Preferences vs. PreferenceStore

    基本上,InstanceScope.INSTANCE.getNode("bundle.id") 为您提供支持您的捆绑包的org.eclipse.jface.preference.IPreferenceStoreorg.eclipse.core.runtime.preferences.IEclipsePreferences。您不必同步它们,因为它们是相同的。

    它们是否不同步?如果默认情况下它们不同步,您可能必须执行 IPersistentPreferenceStore#save() 和/或 org.osgi.service.prefs.Preferences.flush() (尽管我认为这些方法只是写出磁盘缓存)。

    【讨论】:

    • 但是,这并不能完全解决我的情况,是吗?因为IPreferenceStore是在一个ui插件中使用的,但是我需要在一个核心插件中读取首选项
    • 是的,关键是你可以在你的核心插件中使用InstanceScope.INSTANCE.getNode("bundle.id")
    • 得到它,我使用的 id 对于两个插件来说应该是唯一的,这样就可以了。我认为它也应该是核心插件的 id。谢谢!接受
    猜你喜欢
    • 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
    相关资源
    最近更新 更多