簡體   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