我是 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 个小时,并没有真正明白为什么它不起作用。