将项目添加到所有视图菜单

时间:2012-04-17 11:36:21

标签: menu eclipse-rcp

在Eclipse中,可以使用以下特殊位置URI扩展到任何弹出菜单:

popup:org.eclipse.ui.popup.any

是否可以对视图菜单(每个视图中的小三角形)执行相同操作? (我正在开发Eclipse RCP应用程序,而不是扩展IDE。此项目的目的是帮助调试和测试应用程序。)。

1 个答案:

答案 0 :(得分:1)

简短回答:不,这是不可能的,除非您手动为所有视图添加项目。

稍长的回答:是的,如果你

  • 手动浏览视图注册表
  • 使用位置URI“menu:< view-id>”创建一个新的AbstractContributionFactory以及你想要的每一个createContributionItems(...)。 (或者你可以创建AbstractMenuAdditionCacheEntry甚至更好MenuAdditionCacheEntry - 虽然这些是内部的,需要一些额外的工作......最后一个允许你有一个集中定义的菜单扩展点,用于所有这些加法。)
  • 使用IMenuService.addContributionFactory(AbstractContributionFactory factory)将这些内容添加到工作台(使用IWorkbenchWindow.getService(IMenuService.class)获取菜单服务)。

我没有测试过上面的配方,但我在应用程序中使用了非常类似的东西......