10

Eclipse Package Explorer のコンテキスト メニューから項目にサブメニュー エントリを追加しようとしています。

メニューエントリは、私が取り組んでいるプラグインではなく、別のプラグインで org.eclipse.ui.popupMenus を介して既に定義されています。(そのプラグインは、私のプラグインの依存関係リストに追加されます)。サブメニューにも項目が追加されていますが、org.eclipse.ui.popupMenus も使用しています。org.eclipse.ui.menus を介してこれを実行しようとしています。

まず、次のことを行いました。

  • org.eclipse.ui.commands および org.eclipse.ui.menus 拡張機能を追加しました。
  • command 、それぞれ menuContribution を次のように定義しました。

ここに画像の説明を入力

これにより、任意のコンテキストメニューにアイテムが追加されます...したがって、locationURIの「org.eclipse.ui.popup.any?after=additions」を、アイテムを表示するサブメニューのIDに置き換える必要があります。

私の問題は次のとおりです:正しいlocationURIを決定する方法は? メニュー スパイ (ALT + SHIFT + F2) を使用して、貢献したいサブメニューを調べたところ、次の URI を受け取りました。

menu:YYY?after=ZZZ、ここで:

YYY は、既に定義されていて、サブメニュー項目を追加したいメニューの ID です。ZZZ は、(スパイを使用して) クリックしたサブメニューからのアクションの ID です。

以下を試しましたが、サブメニュー項目が表示されません。

  • menu:YYY[?after=追加]
  • popup:YYY[?after=追加]

助けてください :)

4

1 に答える 1

11

新しいメニュー投稿と、既に定義されているメニューと同じ 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>
于 2012-09-28T07:44:06.987 に答える