gpt4 book ai didi

java - RCP E4 @UIEventTopic 未调用

转载 作者:行者123 更新时间:2023-12-01 06:18:43 25 4
gpt4 key购买 nike

我是 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 中的方法应该是公共(public)的。注入(inject)框架只能调用公共(public)方法。

您的 ClientDetailPart 是否在另一个 bundle 中?如果是这样,您是否还添加了 DI 所需的 bundle ?

关于java - RCP E4 @UIEventTopic 未调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16651043/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com