2017-07-26 68 views
0

當我的應用程序啓動時,其中一個零件尚不可見。當我使用處理程序發送數據,然後打開該零件時,在零件創建時我無法獲取該數據。如果我在啓動應用程序時單擊該部件,然後再次使用該處理程序,則該部件現在將接收數據。那麼,如何在零件不可見或創建時接收數據?我如何獲取之前發送的數據。Eclipse E4 RCP - 創建零件後獲取IEventBroker對象

回答

1

IEventBroker不保留它廣播的數據。

該部件的類不會被創建,直到它變得可見(被渲染爲更準確) - 您將不得不將其他東西存儲在其他地方。

您可以使用某種'經理'類來保存數據。您的處理程序可以將數據放入管理器中,並且該部分可以從管理器中檢索它。做經理

一種方法是使用可創建單:

@Creatable 
@Singleton 
public class MyMananger 
{ 
    ... 
} 

這可以給處理程序和部分被注入,你總是會得到經理的同一個實例。

+0

格雷格我從來沒有注意到我回答了這個問題,直到現在,當我再次遇到它。您的解決方案再次運作,謝謝:) –