Java 如何在Eclipse4中设置UI部件的输入?

Java 如何在Eclipse4中设置UI部件的输入?,java,eclipse,jfreechart,e4,Java,Eclipse,Jfreechart,E4,我正在使用Eclipse4应用程序。我正在使用eventBroker将值从一个部分传递到另一个部分。如果打开了多个零件(选项卡类型),如何将值传递给当前选定的零件(选项卡)?我正在使用@UIEventTopic获取零件的值。但问题是,这些值会复制到所有选项卡。换句话说,我试图在不同的选项卡中显示不同的JFreechart,但这些图表会复制到以前的选项卡中 谁能给我提些建议吗 提前感谢事件代理始终向处理事件的任何对象广播,您不能使用它发送到特定的对象 如果您在处理程序中,您可以在@Execute方

我正在使用Eclipse4应用程序。我正在使用eventBroker将值从一个部分传递到另一个部分。如果打开了多个零件(选项卡类型),如何将值传递给当前选定的零件(选项卡)?我正在使用@UIEventTopic获取零件的值。但问题是,这些值会复制到所有选项卡。换句话说,我试图在不同的选项卡中显示不同的JFreechart,但这些图表会复制到以前的选项卡中

谁能给我提些建议吗


提前感谢

事件代理始终向处理事件的任何对象广播,您不能使用它发送到特定的对象

如果您在处理程序中,您可以在@Execute方法中获取当前部分,并直接在类中设置一个值-类似于:

@Execute
public void execute(@Named(IServiceConstants.ACTIVE_PART) MPart activePart)
{
  Object part = activePart.getObject();

  if (part instanceof MyClass)
   {
     ((MyClass)part).setValue(xxxx);
   }
}
更新:

如果您在另一个零件中,请使用
EPartService
获取激活零件:

@Inject
EPartService partService;

...

MPart activePart = partService.getActivePart();

Object part = activePart.getObject();

if (part instanceof MyClass)
 {
    ((MyClass)part).setValue(xxxx);
 }

您也可以使用
EPartService.findPart(“零件id”)
查找具有给定id的零件。

但在我的代码中,我需要在一个零件中进行选择,它应该在当前打开的另一个零件中绘制图表。“activePart”给出我在其中进行选择的零件的值。但我想知道我将要发送值的部分。我也不能使用findPart,因为我正在使用partdescriptor创建动态零件。您必须找到某种方法来标识目标。在某个地方或类似的地方保留动态创建的零件表。即使我跟踪动态创建的零件。如何查找当前选定的活动零件。?我完全搞糊涂了。活动部分就是您正在单击的部分,您必须有一些其他机制来确定在哪些其他部分中显示数据。