簡體   English   中英

RCP E4 @UIEventTopic未調用

[英]RCP E4 @UIEventTopic not called

我是RCP Eclipse 4的新手,到目前為止已經閱讀了很多教程。 我們必須為大學做一個項目工作,所以我需要與它取得聯系。

我們正在使用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個多小時,並沒有真正知道為什么它不起作用。

我無法確切地說出問題所在,但我的第一個猜測是, ClientDetailPart中的方法應該是公共的。 注入框架只能調用公共方法。

您的ClientDetailPart是否在另一個捆綁包中? 如果是這樣,您是否還添加了DI所需的必需包?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM