Я хочу иметь всплывающее меню с простым подменю. Щелкните правой кнопкой мыши текст SWT (commandText
). Чего я хочу добиться, это:
A -> D
E
F
B
C
Таким образом, под действием «А» должны быть действия «D, E, F». «B» и «C» - действия на верхнем уровне, как и «A». Моя попытка:
private void addCommandTextContextMenu() {
MenuManager popupMenu = new MenuManager("#PopupMenu");
popupMenu.setRemoveAllWhenShown(true);
popupMenu.addMenuListener(new IMenuListener() {
public void menuAboutToShow(IMenuManager manager) {
Action aAction = new Action("A") {};
Action bAction = new Action("B") {};
Action cAction = new Action("C") {};
manager.add(aAction);
manager.add(bAction);
manager.add(cAction);
}
});
MenuManager subMenu = new MenuManager("#SubMenu");
subMenu.setRemoveAllWhenShown(true);
subMenu.addMenuListener(new IMenuListener() {
public void menuAboutToShow(IMenuManager manager) {
Action dAction = new Action("D") {};
Action eAction = new Action("E") {};
Action fAction = new Action("F") {};
manager.add(dAction);
manager.add(eAction);
manager.add(fAction);
}
});
popupMenu.add(subMenu);
final Menu menu2 = popupMenu.createContextMenu(commandText);
commandText.setMenu(menu2);
}
Я вижу только A, B, C.
Я пытаюсь добавить это всплывающее меню для плагина eclipse только с Java, потому что я думал, что это должно быть проще, чем определение меню в plugin.xml с помощью команд и обработчиков.