4

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

谢谢。

4

2 回答 2

2

你可以试试这个

    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);
        }
    }
于 2010-09-07T05:54:35.933 回答
1

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

因此,简单地说,恕我直言,上下文菜单似乎并不是要被压制的。

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

于 2009-05-29T09:25:39.400 回答