2014-05-20 42 views
0

我正在爲eclipse構建一個插件,它對當前在工作區中找到的項目執行一些靜態分析。我有一個AbstractHandler的實現,在Eclipse中按下我的按鈕時會調用execute方法。從插件修改Eclipse UI

一旦我的分析完成後,現在我想要一個新的文本窗口在Eclipse中打開,並輸出分析結果。

我跟着vogella教程這裏http://www.vogella.com/tutorials/EclipseJobs/article.html#eclipsejobs_uisynchronize 這也解釋了,我需要注入UISynchronizer對象(或者說,日食將注入對我來說),並調用從處理程序asynch(Runnable)方法。然而,當我輸入UISynchronizer,Eclipse中給出了警告:

Discouraged access: The type UISynchronizer is not accessible due to restriction on required library /Applications/eclipse/plugins/org.eclipse.ui.workbench_3.105.2.v20140211-1711.jar

這是阻止從使用UISynchronizer類普通用戶?或者我應該使用不同的方法從我的處理程序更新UI?

回答

2

UISynchronizer適用於Eclipse e4風格的應用程序,因爲您使用的是AbstractHandler,所以您必須編寫Eclipse 3.x風格的插件,因此它不適合使用。

而是使用Display.asyncExec

Display.getDefault().asyncExec(runnable); 

其實,這是什麼UISynchronizer內部使用。

爲了記錄,「不鼓勵訪問」警告是因爲UISynchronizer接口尚未完成並可能發生變化。對於e4應用程序,這個警告可以被忽略。

更新:

檢查再次E4類UISynchronizeUISynchronizer這是一個內部類,不應該使用的。

+0

我明白了,謝謝。我是eclipse插件開發新手,似乎正在使用e4和3.x樣式的一部分。我想我應該解決這個問題! – ElFik