我是新來的Eclipse RCP 4和閱讀了大量的教程至今。我們必須爲大學做一個項目工作,所以我需要聯繫它。RCP E4 @UIEventTopic不叫
我們編碼與JPA/EclipseLink的和HSQLDB這已經是工作的罰款一個非常小的應用程序。在RCP中調用和顯示零件已經在工作。我們確實得到了一些我們應該使用的代碼庫。我做了一些研究,現在我們能夠通過命令/處理程序和零件描述符來顯示我們的零件。
現在是時候把一些信息從部分A到B部分。我們已經通過
context.getParent().set(" NAME " , object)
發現插入數據的上下文的版本,但我真的不喜歡這個版本,因爲當我使用每次更改上下文屬性時,@Named約定和@Named(「NAME」)的所有部分都會被調用。
另一種方法,我發現,我非常喜歡的是,處理事件。 http://www.vogella.com/articles/Eclipse4EventSystem/article.html#eventsystem描述得非常好。但問題是,它只是不工作。
ClientSearchPart.java:
@Override
public void widgetSelected(SelectionEvent e) {
broker.send("a", "testtest");
}
@Inject @Optional
public void getEvent(@UIEventTopic("a")String s) {
System.out.println("ClientsSearch: "+s);
}
ClientDetailPart.java:
@Inject @Optional
void getEvent(@UIEventTopic("a") String k) {
System.out.println(k);
}
我試圖從ClientSearchPart發送一個字符串ClientDetailPart。當執行widgetSelected時,將調用ClientSearchPart.java中的getEvent(),並打印出「ClientsSearch:testest」,而ClientDetailPart永遠不會被調用!
我不能幫助自己了。我的錯誤?我現在正在嘗試這個超過3個小時,並沒有真正知道它爲什麼不工作。
不,那是錯誤的信息 - 注射框架能夠調用私有和保護的方法爲好。事實上,最好的做法是使注射方法不應該從外部被呼叫保護或私人。 – Constantin