【发布时间】:2019-08-02 18:59:13
【问题描述】:
我想要一个带有简单子菜单的弹出菜单。右键单击SWT Text (commandText)。我想要实现的是:
A -> D
E
F
B
C
所以在动作“A”下应该有动作“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。
我尝试使用 Java 为 Eclipse 插件添加此弹出菜单,只是因为我认为它应该比使用命令和处理程序在 plugin.xml 中定义菜单更容易。
【问题讨论】:
标签: java eclipse-plugin swt