我正在使用RCP应用程序菜单。如下图所示,我试图在我的RCP应用程序附带的免费赠品菜单的末尾移动我新添加的“帮助”菜单。目前,代码通过使用从ActionBarAdvisor派生的类来将其添加到菜单栏。
public class ApplicationActionBarAdvisor extends ActionBarAdvisor
看看其他可用的方法,我看到一个可能有趣的appendToGroup方法。唯一的问题是它需要一个groupName而我没有。我一直在使用的菜单ID似乎不足以作为groupName。
这是我的代码
@Override protected void fillMenuBar(IMenuManager menuBar)
{
MenuManager helpMenu = new MenuManager("&Help", IWorkbenchActionConstants.M_HELP);
//menuBar.appendToGroup(menuBar.getId(), helpMenu);
menuBar.add(helpMenu);
helpMenu.add(aboutAction);
}
修正了它
答案 0 :(得分:0)
如果要添加到使用普通Eclipse ActionBarAdvisor(WindowActionBuilder
)的RCP,则会在现有的“窗口”和“帮助”菜单之前放置一个ID为IWorkbenchActionConstants.MB_ADDITIONS
的组标记。
现有的帮助菜单标识为IWorkbenchActionConstants.M_HELP
,因此您可以使用以下命令找到此菜单:
IMenuManager helpMenu = menuBar.findMenuUsingPath(IWorkbenchActionConstants.M_HELP);
如果您正在编写基于ActionBarBuilder
的自己的操作栏构建器,则菜单管理器中没有定义任何组,您无法使用appendToGroup
。您只需按照希望菜单显示的顺序拨打add
。
答案 1 :(得分:0)
以编程方式创建自定义菜单并不是解决此问题的最佳方法。使用plugin.xml extensions选项卡创建菜单,然后您可以使用All Extensions轻松使用文本字段右侧的向上和向下按钮重新排列每个菜单的位置。所以在这种情况下,使用Eclipse的内置帮助菜单要容易得多。通过在plugin.xml文件
中的其他菜单之后添加帮助菜单,可以恢复整个操作 ``` <extension
point="org.eclipse.ui.menus">
<menuContribution
locationURI="menu:org.eclipse.ui.main.menu">
<menu
label="File">
<command
commandId="org.eclipse.ui.file.exit"
label="Exit">
</command>
<command
commandId="org.eclipse.ui.file.save"
label="Save"
style="push">
</command>
</menu>
<menu
label="Help">
<command
commandId="org.eclipse.ui.help.aboutAction"
label="About">
</command>
<command
commandId="org.eclipse.ui.help.helpSearch"
label="Search">
</command>
</menu>
</menuContribution>```
问题区域中的最终结果图片:)我无法在此处加载