【问题标题】:Eclipse RCP: Suppress the context menu of the persective barEclipse RCP:抑制透视栏的上下文菜单
【发布时间】:2010-10-24 01:54:20
【问题描述】:

我想禁止在 rcp 应用程序中右键单击透视工具栏时显示的上下文菜单。澄清一下,我确实希望显示透视栏和快捷方式,但我不希望弹出上下文菜单。所有透视工具栏api似乎都是内部的。

谢谢。

【问题讨论】:

    标签: java eclipse-rcp contextmenu perspectives


    【解决方案1】:

    你可以试试这个

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

    【讨论】:

    • [@user844542 写了这条评论] 我尝试使用它,但无法获得PerspectiveBar。哪个是引入此代码的正确类?还是不可能了?
    【解决方案2】:

    正如您所提到的,PerspectiveSwitcher 的上下文菜单是在工作台框架的内部类中深度创建的。你不能阻止它被创建,你也不能获得对 PerspectiveSwitcher 的引用来以某种方式抑制菜单,而无需大量使用内部类和大量重新实现现有功能。

    所以,简单来说,恕我直言,上下文菜单似乎不应该被禁止。

    解决您的问题的最简单和最干净的方法是抑制整个透视栏,并实现您自己的。有用于查询现有透视图(IWorkbench.getPerspectiveRegistry)和切换透视图(IWorkbenchPage.setPerspective)的公共 API,您只需编写 UI。

    【讨论】:

      猜你喜欢
      • 2011-07-17
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      • 2015-07-15
      • 1970-01-01
      • 1970-01-01
      • 2016-06-15
      • 1970-01-01
      相关资源
      最近更新 更多