Как добавить элемент подменю в элемент контекстного меню обозревателя пакета Eclipse с помощью org.eclipse.ui.menus?
Я пытаюсь добавить элемент подменю в элемент из контекстного меню Проводника пакетов Eclipse.
Запись в меню уже определена через 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]()
Это добавляет элемент в любом контекстном меню... Поэтому мне пришлось бы заменить "org.eclipse.ui.popup.any? после = добавления" из locationURI с идентификатором подменю, в котором я хочу, чтобы мой элемент появлялся в.
Моя проблема: как определить правильное местоположениеURI?
Я использовал шпион меню (ALT + SHIFT + F2) и проверил подменю, в которое хочу внести вклад, и получил следующий URI:
menu: YYY? after = ZZZ, где:
YYY - это идентификатор меню, которое уже определено и к которому я хочу добавить элемент подменю
ZZZ - это идентификатор действия из подменю, на который я нажал (используя шпиона)
Я попробовал следующее, но элемент подменю не отображается:
- меню: [? После = дополнения] YYY
- всплывающее окно: [? После = добавления] YYY
Пожалуйста, помогите:)
Ответы
Ответ 1
Мне удалось заставить его работать, указав новый вклад в меню и меню с тем же идентификатором и меткой, что и уже определенное меню. Окончательное решение выглядит следующим образом:
<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>