Java 如何在Eclipse4中设置UI部件的输入?
我正在使用Eclipse4应用程序。我正在使用eventBroker将值从一个部分传递到另一个部分。如果打开了多个零件(选项卡类型),如何将值传递给当前选定的零件(选项卡)?我正在使用@UIEventTopic获取零件的值。但问题是,这些值会复制到所有选项卡。换句话说,我试图在不同的选项卡中显示不同的JFreechart,但这些图表会复制到以前的选项卡中 谁能给我提些建议吗Java 如何在Eclipse4中设置UI部件的输入?,java,eclipse,jfreechart,e4,Java,Eclipse,Jfreechart,E4,我正在使用Eclipse4应用程序。我正在使用eventBroker将值从一个部分传递到另一个部分。如果打开了多个零件(选项卡类型),如何将值传递给当前选定的零件(选项卡)?我正在使用@UIEventTopic获取零件的值。但问题是,这些值会复制到所有选项卡。换句话说,我试图在不同的选项卡中显示不同的JFreechart,但这些图表会复制到以前的选项卡中 谁能给我提些建议吗 提前感谢事件代理始终向处理事件的任何对象广播,您不能使用它发送到特定的对象 如果您在处理程序中,您可以在@Execute方
提前感谢事件代理始终向处理事件的任何对象广播,您不能使用它发送到特定的对象 如果您在处理程序中,您可以在@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创建动态零件。您必须找到某种方法来标识目标。在某个地方或类似的地方保留动态创建的零件表。即使我跟踪动态创建的零件。如何查找当前选定的活动零件。?我完全搞糊涂了。活动部分就是您正在单击的部分,您必须有一些其他机制来确定在哪些其他部分中显示数据。