如何在eclipse e4中设置UI部分的输入?

时间:2014-04-22 09:14:18

标签: java eclipse jfreechart e4

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

任何人都可以向我推荐一些想法吗?

提前致谢

1 个答案:

答案 0 :(得分:1)

事件代理总是广播到处理事件的任何事情,你不能用它来发送给一个特定的东西。

如果你在Handler中,你可以在@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("part id")查找具有给定ID的部分。