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

Menu 将项目添加到所有视图菜单,menu,eclipse-rcp,Menu,Eclipse Rcp,在Eclipse中,可以使用以下特殊位置URI扩展到任何弹出菜单: popup:org.eclipse.ui.popup.any 是否可以对视图菜单(每个视图中的小三角形)执行相同的操作?(我正在开发一个Eclipse RCP应用程序,而不是扩展IDE。此项目的目的是帮助调试和测试应用程序。)简短的回答:不,这是不可能的,除非您手动为所有视图添加项目 稍长一点的回答是:是的,如果你 手动浏览视图注册表 创建一个新的AbstractContributionFactory,其中包含locatio

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

popup:org.eclipse.ui.popup.any

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

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

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

  • 手动浏览视图注册表
  • 创建一个新的
    AbstractContributionFactory
    ,其中包含location URI“menu:”和所需的
    createContributionItems(…)
    。(或者,您可以创建
    AbstractMenuAdditionCacheEntry
    或更好的
    MenuAdditionCacheEntry
    ——尽管这些是内部的,需要一些额外的工作……最后一个允许您有一个中央定义的菜单扩展点,用于所有这些添加。)
  • 使用
    IMenuService.addContributionFactory(AbstractContributionFactory)
    将这些添加到工作台(使用
    IWorkbenchWindow.getService(IMenuService.class)
    获取菜单服务)
我还没有测试过上面的配方,但我在一个应用程序中使用了非常类似的东西