2015-12-02 50 views
0

我想從我的插件中關閉視圖。要求如下。每當它被打開/激活時關閉視圖

  1. 用戶將選擇由我的插件提供的Menu1(讓我們說開始)。
  2. 現在,如果用戶試圖選擇一個特定的視圖,那麼它不應該被允許,直到用戶選擇另一個菜單,可以說停止。

我在谷歌搜索,發現,我可以使用activePage.hideView()方法關閉視圖。由於我沒有完全刪除視圖的選項,所以我創建了PartListener和partActivated()方法,我調用hideview方法。

通過遵循這種方法,視圖被關閉,但運行時異常聲明「在激活視圖之前阻止org.eclipse.ui.ProjectExplorer的遞歸激活... xyz ....」(即I正在關閉)。

只要用戶打開/激活,請幫助我採取正確的方法來關閉視圖。

回答

0

嘗試使用Display.asyncExec延遲撥打hideView。在您的partActivated方法使用:

Display.getDefault().asyncExec(new Runnable() 
{ 
    @Override 
    public void run() 
    { 
     ... call hideView here 
    } 
}); 

asyncExecRunnable不會在partActivated代碼運行後,直到運行應停止遞歸激活警告。

+0

非常感謝@ greg-449的即時回覆。我檢查了一個示例代碼,它工作得很好。明天我會用我的實際項目來檢查它。再次非常感謝你。 – Jayalakshmi

相關問題