【问题标题】:How to restore multiple default values on a Preference page in Eclipse如何在 Eclipse 的首选项页面上恢复多个默认值
【发布时间】:2014-07-19 17:02:33
【问题描述】:

我正在编写一个插件,它将完成在 Eclipse 中恢复首选项页面的所有默认值的工作。我的想法是获取 Preference 页面,然后调用: performDefaults() 来重置所有值。但是,我无法获取该插件的 Preference 页面:我使用以下代码获取 IPreferenceNode,然后我想使用 getPage() 方法返回插件的相应 Preference 页面,但它返回 null。似乎 IPreferenceNode 不存储关联的首选项页面。那么如何获得插件的 Preference 页面呢?或者有没有其他方法可以重置偏好页面中的多个值?

PreferenceManager prefmngr = PlatformUI.getWorkbench( ).getPreferenceManager();
List<IPreferenceNode> nodelist = pm.getElements(PreferenceManager.PRE_ORDER);

【问题讨论】:

    标签: eclipse plugins preference


    【解决方案1】:

    调用performDefaults() 不会起作用,因为它希望在打开的首选项对话框中运行,并调用将在打开的对话框之外失败的用户界面函数(它也是protected,所以你不能调用它无论如何都没有反射)。

    查看各种偏好页面,似乎没有任何通用方法可以重置页面的默认值。

    【讨论】:

    • 关于受保护的方法,我本来打算用Reflection,如果我能得到插件的Preference页面:) 谢谢提醒我,即使我能设法调用该方法,它也赢了不行。我正在考虑获取插件的默认范围首选项,然后尝试使用它来执行“恢复默认值”,你怎么看?可行吗?
    • 正如我所说,如果不将首选项页面用作首选项对话框的一部分,它将失败。 performDefaults 期望所有 UI 对象都已创建,因此可以将它们设置为默认值。在performOK 运行之前,这些首选项实际上不会被保存。
    • 对不起,我没有把我的想法解释清楚。我同意你的观点,使用方法 : performDefaults() 将不起作用。现在,我正在考虑获取与插件相关的默认范围首选项,然后将值设置回插件的实例范围首选项,您认为重置页面默认值是否可行?
    • 您也许可以这样做,但您可能需要运行插件的首选项初始化程序。
    • 非常感谢您的建议,我会看看我能到达的地方:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-23
    • 1970-01-01
    • 2018-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-28
    相关资源
    最近更新 更多