2014-02-12 48 views
1

Eclipse API需要我創建一個WorkbenchAdvisor類的實例並將其傳遞給org.eclipse.ui.PlatformUI.createAndRunWorkbench()如何在Eclipse RCP 3.x中獲得我的WorkbenchAdvisor?

假設我已經使用這個實例來保存一些應用程序範圍內的數據。

如何從某個視圖訪問此類實例,例如?

我想是這樣

ApplicationWorkbenchAdvisor advisor = (ApplicationWorkbenchAdvisor) PlatformUI.getWorkbench().getAdapter(ApplicationWorkbenchAdvisor.class); 

,但它失敗。

回答

2

該工作臺沒有提供獲取WorkbenchAdvisor的方法,甚至在工作臺代碼中有一條評論表示他們不希望從插件訪問它。

更新: 您提供的WorkbenchAdvisor的子類可以訪問大量其他API以在重寫的方法中執行操作。但是,您似乎並不打算將任何內容存儲在其他類的顧問程序中。在3.x RCP中,數據傾向於存儲在插件Activator實例數據中或使用OSGi服務。在4.x e4 RCP中,事情會更好,因爲您可以將東西放在Eclipse context中,它可供所有部件使用。

+0

我不明白推理。即顧問程序包含工作臺範圍的處理程序,如'preStartup()'。如果顧問是完全內部的,這些處理者可以做些什麼? – Dims

+0

在我對設計的理解(我不是Eclipse設計師)上增加了一些答案。 –

相關問題