我是新来的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