繁体   English   中英

Eclipse RCP:禁止执行栏的上下文菜单

[英]Eclipse RCP: Suppress the context menu of the persective bar

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

谢谢。

你可以试试这个

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

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

所以,简单来说,恕我直言,似乎上下文菜单并不意味着被压制。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM