目前我的RCP应用程序中有两个菜单: 文件和帮助。
文件菜单是通过command
:
<extension point="org.eclipse.ui.menus">
<menuContribution allPopups="false"
locationURI="menu:org.eclipse.ui.main.menu">
<menu
id="fileMenu"
label="File"
mnemonic="F"
tooltip="Main Menu">
<command
commandId="myPlugin.bundle.menuCommands.Exit"
label="Exit"
mnemonic="E"
style="push"
tooltip="Exits MyPlugin">
</command>
</menu>
</menuContribution>
</extension>
<extension point="org.eclipse.ui.commands">
<command defaultHandler="myPlugin.bundle.commands.exit.ExitHandler"
id="myPlugin.bundle.menuCommands.Exit"
name="Exit">
</command>
</extension>
帮助菜单(仅包含“关于”菜单项)是通过action
中的相应ApplicationActionBarAdvisor
创建的:
protected void makeActions(IWorkbenchWindow window) {
aboutAction = ActionFactory.ABOUT.create(window);
register(aboutAction);
}
protected void fillMenuBar(IMenuManager menuBar) {
MenuManager helpMenu = new MenuManager("&Help", "helpMenu");
helpMenu.add(aboutAction);
menuBar.add(helpMenu);
}
现在,帮助菜单位于菜单栏中的文件菜单之前。这显然不是它应该如何。如何更改菜单的顺序?
非常感谢!
答案 0 :(得分:0)
啊,只需在文件菜单的MenuManager
中添加ApplicationActionBarAdvisor
即可解决此问题:
MenuManager helpMenu = new MenuManager("&Help", "helpMenu");
MenuManager fileMenu = new MenuManager("&File", "fileMenu");
...
menuBar.add(fileMenu);
menuBar.add(helpMenu);
我能听到你说“呃!”?这就是我所做的;)。
这真的应该怎么做呢?这意味着对于我在扩展向导中创建的每个新菜单,我都必须向ApplicationActionBarAdvisor
添加一个新行......
也许你可以分享你对此的想法,或者它是否只是一个可以避免的黑客攻击。
谢谢!