我有一个
public class PrefMenu extends FieldEditorPreferencePage implements IWorkbenchPreferencePage
实现init()和createFieldMethods()。在将该类添加到preferencePage扩展名后,我确实在Window> Preferences> PREFMENU_NAME中看到了它。
但是如何从菜单项打开首选项页面?我创建了一个命令和一个处理程序,而execute() - Method(与其他命令一起使用)确实......
//other commands
} else if (commandID.equals(PREFERENCES_COMMAND_ID)){
final PrefMenu prefMenu = new PrefMenu();
prefMenu.init(PlatformUI.getWorkbench());
}
当我点击菜单项目时,没有任何反应。在调试模式中,我看到它只是执行init() - Method并返回。但是我希望它打开Preferences-Window,只有当我点击OK或取消时才关闭它。
答案 0 :(得分:4)
使用org.eclipse.ui.dialogs.PreferencesUtil
执行此操作:
String id = ... your preference page id
Shell shell = ... parent shell to use ...
PreferencesUtil.createPreferenceDialogOn(shell, id, new String[] {id}, null).open()
这将在首选项对话框中打开您的首选项页面。您可以调整字符串数组以包含其他页面,或者为数组指定null
以显示所有首选项页面。