Eclipse:以编程方式创建首选项

时间:2012-07-19 22:39:12

标签: eclipse eclipse-plugin eclipse-rcp

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

    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)访问首选项时发生错误,并且我创建的节点为null。 此外,当我在2+时间内触发此代码时,会创建一个新节点,并且前一个节点在首选项列表中显示为空行。

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

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

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

由于

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,我通过覆盖我的首选项页面中的getPreferenceStore()来推动它,它可以工作。请参阅以下代码:

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