Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.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 如何将Eclipse插件中现有视图中的上下文弹出菜单重用到新创建的视图中?_Java_Eclipse Plugin_Swt_Jface - Fatal编程技术网

Java 如何将Eclipse插件中现有视图中的上下文弹出菜单重用到新创建的视图中?

Java 如何将Eclipse插件中现有视图中的上下文弹出菜单重用到新创建的视图中?,java,eclipse-plugin,swt,jface,Java,Eclipse Plugin,Swt,Jface,我已经为一个Eclipse插件创建了一个新视图,我想重用一些基本的弹出菜单,如RunAs、Open、Copy、Delete,这些菜单出现在其他视图(如PackageExplorer)中。有可能吗 我知道菜单的贡献,但这是添加一个新的菜单项到现有的列表。如何重用其他视图中的现有菜单? 这是view制作菜单的方式: private void hookContextMenu() { MenuManager menuMgr = new MenuManager("#PopupMenu")

我已经为一个Eclipse插件创建了一个新视图,我想重用一些基本的弹出菜单,如RunAs、Open、Copy、Delete,这些菜单出现在其他视图(如PackageExplorer)中。有可能吗

我知道菜单的贡献,但这是添加一个新的菜单项到现有的列表。如何重用其他视图中的现有菜单?

这是view制作菜单的方式:

private void hookContextMenu() {
        MenuManager menuMgr = new MenuManager("#PopupMenu");
        menuMgr.setRemoveAllWhenShown(true);
        menuMgr.addMenuListener(new IMenuListener() {
            public void menuAboutToShow(IMenuManager manager) {
                SuitAExplorer.this.fillContextMenu(manager);
            }
        });
        Menu menu = menuMgr.createContextMenu(viewer.getControl());
        viewer.getControl().setMenu(menu);
        getSite().registerContextMenu(menuMgr, viewer);
    }

private void fillContextMenu(IMenuManager manager) {
        manager.add(action1);
        manager.add(action2);
        manager.add(new Separator());
        drillDownAdapter.addNavigationActions(manager);
        // Other plug-ins can contribute there actions here
        manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
    }

有些菜单项(如复制和粘贴)必须自己编写,因为Eclipse不知道如何复制视图对象

“运行方式”菜单项应出现在菜单中的
IWorkbenchActionConstants.MB\u ADDITIONS
位置,但前提是视图项启用正确。对于“运行方式”,启用表达式为:



它正在测试是否安装了
org.eclipse.debug.core
插件,并且当前选择是否可以适应
IResource
或可启动对象。

您如何创建菜单?我已经添加了用于查看菜单的代码块感谢greg-449,我已经添加了在plugin.xml中查看标记的功能,但是“运行方式”仍然没有出现。我可能做错了:不,这不是您添加的内容,我展示的是启用“按使用方式运行”——因此您的视图必须提供适应IResource或launchable的对象。如果它们不运行,将不会显示。谢谢greg-449-我修改了我的视图和向导来创建IResources,现在可以使用了。