如何在首选项对话框中包含首选项页面

时间:2019-03-25 09:32:17

标签: eclipse-rcp rcp e4

我知道将首选项页面添加到e3 RCP应用程序的通用首选项对话框中的方法。我有一个e4 RCP应用程序,并且阅读了首选项对话框的工作原理不同。

我找到了打开常用首选项对话框的方法,但是没有找到在对话框中包含自定义首选项页面的方法。

public class PreferenceHandler {

    @CanExecute
    public boolean canExecute()
    {
        return true;    
    }

    @Execute
    public void execute(@Named(IServiceConstants.ACTIVE_SHELL) Shell shell,  E4PreferenceRegistry  prefReg,
            @Optional @Named("preferencePageId") String pageId) {
        PreferenceManager pm = prefReg.getPreferenceManager();
        // Can display the standard dialog.
        PreferenceDialog dialog = new PreferenceDialog(shell, pm);
        if (pageId != null)
        {
            dialog.setSelectedNode(pageId);
        }
        dialog.create();
        dialog.getTreeViewer().setComparator(new ViewerComparator());
        dialog.getTreeViewer().expandAll();
        dialog.open();
    }
}

1 个答案:

答案 0 :(得分:0)

大多数首选项页面代码是e3的一部分,在e4中不可用。只有非常基本的JFace代码可用。

因此,您必须将想要的每个首选项页面直接添加到PreferenceManager中。像这样:

PreferenceManager pm = ... preference manager

IPreferencePage page = ... create your preference page

page.setTitle("title of the page");

IPreferenceNode node = new PreferenceNode("id of the page", page);

pm.addToRoot(node);