SelectionListener无法识别GEF GraphicalViewer上的选择更改

时间:2014-08-25 17:04:34

标签: java eclipse eclipse-plugin eclipse-gef

PostSelectionListener已添加到当前工作台窗口中:

getWorkbenchWindow().getSelectionService().addPostSelectionListener(listener);

但是,即使将图形查看器设置为图形编辑器的网站,上述监听器也无法识别正在GraphicalViewer中显示的GraphicalEditor中的选择更改。 ; s SelectionProvider

getSite().setSelectionProvider(getGraphicalViewer());

我直接向图形查看器添加了ISelectionChangedListener,并且每次选择更改时都会调用其selectionChanged方法(就像它应该的那样)。

有没有人知道什么可能导致这个问题?

此外,

PlatformUI.getWorkbench().getActiveWorkbenchWindow().getSelectionService().getSelection()

始终返回正确的选择,即使选择更改未由首先提到的选择侦听器注册。

1 个答案:

答案 0 :(得分:0)

我终于找到了我的问题的解决方案,虽然我不知道为什么它是一个解决方案。 GraphicalEditor类将查看器设置为createPartControl(Composite)方法中的网站选择提供程序。 我覆盖了这个方法来自己配置查看器,但我没有在这里设置选择提供程序,但稍后在另一个方法中。改变这种方式解决了这个问题。