【问题标题】:Eclipse: Create preferences programmaticallyEclipse:以编程方式创建首选项
【发布时间】:2012-07-19 22:39:12
【问题描述】:

我需要以编程方式创建一些首选项页面。当我第一次触发以下代码时,它会按预期工作:

    IPreferencePage page = new NewPreferencePage(test);
    page.setTitle("First Title");

    PreferenceManager pm = PlatformUI.getWorkbench().getPreferenceManager();
    PreferenceNode node = new PreferenceNode("node." + nodeName, page);
    pm.addToRoot(node);

    Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow()
            .getShell();

    PreferenceDialog pd = new PreferenceDialog(shell, pm);
    pd.setPreferenceStore(Activator.getDefault().getPreferenceStore());

    pd.create();
    pd.open();

问题是当我尝试从标准模式(Window -> Preferences)访问首选项时发生错误,并且我创建的节点为空。 此外,当我触发此代码超过 2 次时,会创建一个新节点,并且前一个节点在首选项列表中显示为空白行。

任何人都有一些教程或一些详细信息来描述如何以编程方式创建它。我在网上搜索并尝试了不同的方法,但没有成功。

或者如果有人知道如何在触发菜单时更改标准的 PreferenceDialog,我可以尝试另一种解决方案。

这个问题和这个问题类似: Eclipse: create preference page programmatically , 但无论如何我都无法解决。

谢谢

【问题讨论】:

    标签: eclipse eclipse-plugin eclipse-rcp


    【解决方案1】:

    我遇到了同样的问题,我通过覆盖我的偏好页面中的 getPreferenceStore() 来解决它,它可以工作。请看下面的代码:

    @Override
    public IPreferenceStore getPreferenceStore() {
        return MarkerPlugin.getDefault().getPreferenceStore();
    }
    

    【讨论】:

    • 感谢您的回答。在我的情况下它不起作用。我第一次将 PreferenceNode 添加到 PreferenceManager。但是下次打开 PreferencesDialog 时,该节点仍然为空。
    猜你喜欢
    • 2011-04-30
    • 2015-08-19
    • 2014-11-24
    • 1970-01-01
    • 2013-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多