我在开发中遇到一个 Eclipse 插件的小问题。
有一个 View ,与花名册 类似。那里有一个用户列表。我的问题是,我想添加一个上下文菜单。
这个想法是对用户执行右键单击,菜单应该弹出。到目前为止一切顺利......但问题是我不想要一个菜单。我想为该上下文菜单添加一个“设置状态”条目,当将鼠标悬停在该条目上时,菜单应扩展为显示诸如“离开”、“忙碌”、“不可见”等内容……
谁能帮我实现这个目标?
我已经实现了相应的操作并添加到MenuManager。
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);
}
});
相应的操作如下所示:
public Action(...) {
super(provider, "Bla Bla");
// some fancy picture
setImageDescriptor(...);
// setId(ACTION_ID);
setToolTipText("Bla Bla");
update();
}
一切正常(至少上下文菜单显示条目)。现在我想在鼠标悬停/选择相应操作时扩展菜单。所以菜单应该扩展并在此处显示更多可能性...
非常感谢任何有关如何创建递归上下文菜单的帮助!
希望您了解问题并毫不犹豫地要求澄清!
最佳答案
只需创建一个子菜单并将操作添加到该子菜单即可。
这是一个应该阐明用法的快速片段:
// 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);
}
});
关于java - Action into Submenu 上下文菜单 Java JFace SWT Eclipse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3692069/