java - 将自定义 menuManager 移动到现有 RCP 应用程序菜单的末尾

标签 java swt eclipse-rcp jface

我正在使用 RCP 应用程序菜单。如下图所示,我尝试将新添加的“帮助”菜单移动到 RCP 应用程序附带的免费赠品菜单的末尾。目前,代码只是使用从 ActionBarAdvisor 派生创建的类将其添加到菜单栏。 公共(public)类ApplicationActionBarAdvisor扩展了ActionBarAdvisor 看看其他可用的方法,我发现一个appendToGroup 方法可能会很有趣。唯一的问题是它需要一个组名,而我没有。我一直在使用的菜单 ID 似乎不足以作为组名。

Where I want the menu to go

这是我的代码

@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);
}

enter image description here

已修复

enter image description here

最佳答案

如果您要添加到使用普通 Eclipse ActionBarAdvisor (WindowActionBuilder) 的 RCP,则在现有窗口和帮助菜单之前会出现一个 ID 为 IWorkbenchActionConstants.MB_ADDITIONS 的组标记。

现有的帮助菜单的 ID 为 IWorkbenchActionConstants.M_HELP,因此您可以使用以下方式找到此菜单:

IMenuManager helpMenu = menuBar.findMenuUsingPath(IWorkbenchActionConstants.M_HELP);

如果您正在基于 ActionBarBuilder 编写自己的操作栏构建器,则菜单管理器中没有定义组,并且您无法使用 appendToGroup。您只需按照您希望菜单显示的顺序调用 add 即可。

关于java - 将自定义 menuManager 移动到现有 RCP 应用程序菜单的末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41572424/

相关文章:

java - 使用eclipse连接mysql和java

java - SWT - 修改窗口关闭按钮(红色 X)

eclipse 弹出窗口

java - 如何按确定按钮将数据存储在 TitleAreaDialog 中?

java - 如何让 Hibernate 在运行时而不是在编译时删除并重新创建数据库?

java - String 元素的 JdbcTemplate IN 子句

Java 序列化 是否需要

java - 如何通过JRuby在SWT/Shoes中获得macOS透明标题栏效果

java - 如何使用 SWT 或 Jface 将 xml 解析为树?以及如何同步树和xml?

java - 如何使 RCP 切换按钮状态更明显?