操作进入子菜单上下文菜单Java JFace SWT Eclipse
我在开发Eclipse插件时遇到了一个小问题。 有一个视图可以与花名册进行比较。那里有一个用户列表。我的问题是,我想添加上下文菜单。操作进入子菜单上下文菜单Java JFace SWT Eclipse,java,eclipse,contextmenu,Java,Eclipse,Contextmenu,我在开发Eclipse插件时遇到了一个小问题。 有一个视图可以与花名册进行比较。那里有一个用户列表。我的问题是,我想添加上下文菜单。 其想法是在用户上执行右键单击,然后弹出菜单。到现在为止,一直都还不错。。。但问题是我不想要单一的菜单。我希望在该上下文菜单中有一个条目“设置状态”,当鼠标悬停在该条目上时,该菜单应扩展以显示“离开”、“忙碌”、“不可见”等内容…… 有谁能帮我实现这个目标吗? 我已经执行了相应的操作并添加到了动物园 相应的操作如下所示: public Action(...) {
其想法是在用户上执行右键单击,然后弹出菜单。到现在为止,一直都还不错。。。但问题是我不想要单一的菜单。我希望在该上下文菜单中有一个条目“设置状态”,当鼠标悬停在该条目上时,该菜单应扩展以显示“离开”、“忙碌”、“不可见”等内容……
有谁能帮我实现这个目标吗? 我已经执行了相应的操作并添加到了动物园 相应的操作如下所示:
public Action(...) {
super(provider, "Bla Bla");
// some fancy picture
setImageDescriptor(...);
// setId(ACTION_ID);
setToolTipText("Bla Bla");
update();
}
一切正常(至少上下文菜单显示了条目)。现在我想在鼠标悬停/选择相应操作时扩展菜单。因此,菜单应该在此处扩展并显示更多可能性…非常感谢您对如何创建递归上下文菜单的任何帮助
希望你能理解这个问题,并毫不犹豫地要求dor澄清 只需创建一个子菜单并将操作添加到此子菜单。
下面是一个简短的片段,它应该澄清用法:
// submenu for a specific user
MenuManager subMenu = new MenuManager("Change Status", null);
// Actions for the sub menu
subMenu.add(someAction);
// add the action to the submenu
manager.add(subMenu);
希望有帮助
放在一起:public SessionViewContextMenu(ViewPart sessionView, TableViewer viewer,
final Action action) {
MenuManager manager = new MenuManager("#PopupMenu");
manager.setRemoveAllWhenShown(true);
manager.addMenuListener(new IMenuListener() {
public void menuAboutToShow(IMenuManager manager) {
manager.add(action);
// submenu for a specific user
MenuManager subMenu = new MenuManager("Change Status", null);
// Actions for the sub menu
subMenu.add(someAction);
// add the action to the submenu
manager.add(subMenu);
}
});
public SessionViewContextMenu(ViewPart sessionView, TableViewer viewer,
final Action action) {
MenuManager manager = new MenuManager("#PopupMenu");
manager.setRemoveAllWhenShown(true);
manager.addMenuListener(new IMenuListener() {
public void menuAboutToShow(IMenuManager manager) {
manager.add(action);
// submenu for a specific user
MenuManager subMenu = new MenuManager("Change Status", null);
// Actions for the sub menu
subMenu.add(someAction);
// add the action to the submenu
manager.add(subMenu);
}
});