Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
操作进入子菜单上下文菜单Java JFace SWT Eclipse_Java_Eclipse_Contextmenu - Fatal编程技术网

操作进入子菜单上下文菜单Java JFace SWT Eclipse

操作进入子菜单上下文菜单Java JFace SWT Eclipse,java,eclipse,contextmenu,Java,Eclipse,Contextmenu,我在开发Eclipse插件时遇到了一个小问题。 有一个视图可以与花名册进行比较。那里有一个用户列表。我的问题是,我想添加上下文菜单。 其想法是在用户上执行右键单击,然后弹出菜单。到现在为止,一直都还不错。。。但问题是我不想要单一的菜单。我希望在该上下文菜单中有一个条目“设置状态”,当鼠标悬停在该条目上时,该菜单应扩展以显示“离开”、“忙碌”、“不可见”等内容…… 有谁能帮我实现这个目标吗? 我已经执行了相应的操作并添加到了动物园 相应的操作如下所示: public Action(...) {

我在开发Eclipse插件时遇到了一个小问题。

有一个视图可以与花名册进行比较。那里有一个用户列表。我的问题是,我想添加上下文菜单。
其想法是在用户上执行右键单击,然后弹出菜单。到现在为止,一直都还不错。。。但问题是我不想要单一的菜单。我希望在该上下文菜单中有一个条目“设置状态”,当鼠标悬停在该条目上时,该菜单应扩展以显示“离开”、“忙碌”、“不可见”等内容……
有谁能帮我实现这个目标吗? 我已经执行了相应的操作并添加到了动物园

相应的操作如下所示:

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);
    }
});