首页 文章

如何使用org.eclipse.ui.menus将子菜单项添加到Eclipse Package Explorer上下文菜单项?

提问于
浏览
10

我正在尝试从Eclipse Package Explorer的上下文菜单中向项添加子菜单项 .

菜单条目已经通过另一个插件中的org.eclipse.ui.popupMenus定义,而不是我正在使用的插件 . (该插件被添加到我的插件的依赖项列表中) . 在子菜单中还添加了一些项目,但也使用了org.eclipse.ui.popupMenus,我试图通过org.eclipse.ui.menus来做到这一点 .

首先,我做了以下事情:

  • 我添加了org.eclipse.ui.commands和org.eclipse.ui.menus扩展 .

  • 我定义了一个命令,分别是这样的menuContribution:

enter image description here

这会在任何上下文菜单中添加该项...所以我必须从locationURI替换“org.eclipse.ui.popup.any?after = additions”,并且我希望我的项目出现在子菜单的id中 .

My problem is: how to determine a correct locationURI? 我使用菜单 Spy (ALT SHIFT F2)并检查了我想要贡献的子菜单,我收到了以下URI:

菜单:YYY?after = ZZZ,其中:

YYY是已经定义的菜单的id,我想要添加子菜单项ZZZ是我点击的子菜单中的动作的id(使用 Spy )

我试过以下,但子菜单项没有出现:

  • 菜单:YYY [?after = additions]

  • popup:YYY [?after = additions]

请帮忙 :)

1 回答

  • 10

    我设法通过定义新的菜单贡献和菜单具有与已定义的菜单相同的id和标签来使其工作 . 最终解决方案如下所示:

    <extension point="org.eclipse.ui.menus">
      <menuContribution
            locationURI="popup:org.eclipse.ui.navigator.ProjectExplorer#PopupMenu?after=additions">
         <menu
               id="YYY"
               label="%YYYs_label">
         </menu>
      </menuContribution>
      <menuContribution
            locationURI="popup:YYY?after=additions">
         <command
               commandId="example.MyCommandHandlerID"
               icon="icons/somePhoto.gif"
               label="MyLabel"
               style="push">
         </command>
      </menuContribution>
    </extension>
    

相关问题