Eclipse RCP:如何配置Perspective菜单?

时间:2011-03-17 00:22:15

标签: menu eclipse-rcp options perspective

我需要完全控制透视菜单。

我已经入侵平台以禁用CONTEXT菜单:

private void disablePerspectiveToolbarMenu() {
    PerspectiveBarManager perspectiveBarManager =
        ((WorkbenchWindow) PlatformUI.getWorkbench().getActiveWorkbenchWindow()).getPerspectiveBar();
    if (perspectiveBarManager!=null){
        ToolBar toolBar = perspectiveBarManager.getControl();
        Listener[] listeners = toolBar.getListeners(SWT.MenuDetect);
        if (listeners != null){
            for (Listener listener : listeners){
                toolBar.removeListener(SWT.MenuDetect, listener);
            }
        }
    }
}

但我还需要控制PERSPECTIVE MENU的默认内容。总有一个选项可以访问Perspective List Shell。我需要从菜单中删除该选项。

令人遗憾的是,透视菜单完全不受用户控制。我只需要将视角添加到菜单中,仅此而已!

感谢。

enter image description here

2 个答案:

答案 0 :(得分:2)

有三种可能的选择可以摆脱其他:

  1. 设置 org.eclipse.ui.IWorkbenchPreferenceConstants.SHOW_OTHER_IN_PERSPECTIVE_MENU 您的RCP应用中的false偏好设置。这可以通过在产品定义中加入plugin_customization.ini文件来完成。

  2. 在RCP应用中修补工作台。 看一下 org.eclipse.ui.internal.PerspectiveBarNewContributionItemorg.eclipse.ui.actions.ContributionItemFactory.PERSPECTIVES_SHORTLIST

  3. 不包含默认值 您的RCP应用中的透视栏。 而是创建一个透视栏 使用org.eclipse.ui.menus,a 工具栏和openPerspective 命令。

答案 1 :(得分:1)

我做了一些研究,解决方案没有按照我的预期运作。最后我发现了我的错误。

要在plugin_customization.ini中设置属性,我尝试了:

    org.eclipse.ui.IWorkbenchPreferenceConstants.SHOW_OTHER_IN_PERSPECTIVE_MENU=false

但这不是正确的表示法!请参阅我最后添加到plugin_customization.xml

的正确解决方案
    org.eclipse.ui/SHOW_OTHER_IN_PERSPECTIVE_MENU=false

所以接口的名称或指定属性的类不是表示法的一部分!