Java 如何允许视图侦听其他视图的选择?
我正在开发一个带有EMF和GMF的插件。 它有两个视图,我希望在第一个视图中选择一个元素时,第二个元素被刷新 实际上我使用了这个命令:Java 如何允许视图侦听其他视图的选择?,java,eclipse,eclipse-plugin,eclipse-gmf,Java,Eclipse,Eclipse Plugin,Eclipse Gmf,我正在开发一个带有EMF和GMF的插件。 它有两个视图,我希望在第一个视图中选择一个元素时,第二个元素被刷新 实际上我使用了这个命令: getViewSite().getPage().addSelectionListener(this); 但它只允许我在编辑器中收听选择 我怎样才能修好它? 我如何确保在加载插件时刷新视图? 当前,当我启动插件时,它是空的,只要我点击编辑器,它就会被刷新 谢谢, 卢卡你可以: 或 侦听特定视图/编辑器中的选择更改。我想在第二个方法中,partId是我要观察的视图
getViewSite().getPage().addSelectionListener(this);
但它只允许我在编辑器中收听选择
我怎样才能修好它?
我如何确保在加载插件时刷新视图?
当前,当我启动插件时,它是空的,只要我点击编辑器,它就会被刷新
谢谢,
卢卡你可以:
或
侦听特定视图/编辑器中的选择更改。我想在第二个方法中,partId是我要观察的视图,对吗?嗨,我终于有时间测试您了。它不起作用。我是否必须添加作为选择提供程序正在侦听的视图?目前我是这样做的:
getSite().setSelectionProvider(查看器);其中
viewer`是tableViewer
@lucaghera:“我必须添加我作为选择提供程序正在收听的视图吗?”是的,并且以您给出的方式。嗯……那么为什么它不起作用呢?我使用了您建议的方法:getViewSite().getWorkbenchWindow().getSelectionService().addSelectionListener(InstanceView.ID,this)代码>实际上它是有效的。这是一个我没有移除的旧控件。好的是,它不使用您建议的方法就可以工作。事实上,我在问题中提出的方法已经足够了:D谢谢你给我的时间!
getViewSite().getWorkbenchWindow().getSelectionService().addSelectionListener(this)
getViewSite().getWorkbenchWindow().getSelectionService().addSelectionListener(partId, this)