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