【问题标题】:A handler for menu菜单处理程序
【发布时间】:2011-09-06 22:27:51
【问题描述】:
我在Eclipse RCP 应用程序中创建了菜单贡献作为扩展 (org.eclipse.ui.menus)。此菜单贡献的项目作为带有处理程序的命令进行。我希望这样的处理程序不仅适用于项目(命令),还适用于包含它们的项目的菜单(例如“文件”、“编辑”...)。
菜单可以在plugin.xml 中有一个字段“commandID”。我尝试使用扩展了 AbstractHandler 的处理程序创建具有此 ID 的命令,但它不起作用。
【问题讨论】:
标签:
eclipse-plugin
eclipse-rcp
【解决方案1】:
菜单可以使用 commandId,以便显示快捷键。那部分只是显示方便。让菜单自动弹出在幕后仍有工作要做。
查看命令org.eclipse.ui.navigate.showInQuickMenu是如何在org.eclipse.ui.ide插件中定义和使用的。
在org.eclipse.ui.internal.ide.WorkbenchActionBuilder中也有一些支持代码:
String showInQuickMenuId = IWorkbenchCommandConstants.NAVIGATE_SHOW_IN_QUICK_MENU;
showInQuickMenu = new QuickMenuAction(showInQuickMenuId) {
protected void fillMenu(IMenuManager menu) {
menu.add(ContributionItemFactory.VIEWS_SHOW_IN
.create(window));
}
};
register(showInQuickMenu);