如何在eclipse e4中将值从一个视图发送到其他视图?

时间:2014-03-24 16:03:27

标签: java eclipse e4

我正在使用纯eclipse e4应用程序。我创建了一个处理程序和两个部分。使用处理程序我选择了文件,并在其中一个部分显示“Part A”。 A部分有一个带复选框的tableviewer。从表查看器复选框中选择特定文件后,我需要从这些选定文件中计算出一些值,并在第二部分的某种图形中显示它们,如B部分所示。我需要在B部分中选择所选文件,以便我可以处理这些文件和使用Jfreechart我可以在B部分显示图表。

我的问题是如何将值从A部分传递给B部分?

1 个答案:

答案 0 :(得分:3)

您可以使用e4 Event Broker执行此操作。

在想要发送事件的部分中注入事件代理:

@Inject
private IEventBroker eventBroker; 

要异步发送数据,请使用:

eventBroker.post("base_topic/data_event", data); 

同步发送使用:

eventBroker.send("base_topic/data_event", data); 

在您想要接收数据的部分中使用:

@Inject
@Optional
void dataEvent(@EventTopic("base_topic/data_event") DataType data) 

如果您希望在UI线程上接收数据,请使用@UIEventTopic而不是@EventTopic

事件主题名称是你决定的,我刚刚在这里使用了一个例子。

注意:由于这会使用注入,因此代码必须类似于MPart类(或者您必须自己进行注入)。

更多详情here