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

问题描述 投票:0回答:1

我知道将首选项页面添加到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();
    }
}

eclipse-rcp rcp e4
1个回答
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);
© www.soinside.com 2019 - 2024. All rights reserved.