PostSelectionListener已添加到当前工作台窗口中:
getWorkbenchWindow().getSelectionService().addPostSelectionListener(listener);
但是,即使将图形查看器设置为图形编辑器的网站,上述监听器也无法识别正在GraphicalViewer
中显示的GraphicalEditor
中的选择更改。 ; s SelectionProvider
:
getSite().setSelectionProvider(getGraphicalViewer());
我直接向图形查看器添加了ISelectionChangedListener
,并且每次选择更改时都会调用其selectionChanged
方法(就像它应该的那样)。
有没有人知道什么可能导致这个问题?
此外,
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getSelectionService().getSelection()
始终返回正确的选择,即使选择更改未由首先提到的选择侦听器注册。
答案 0 :(得分:0)
我终于找到了我的问题的解决方案,虽然我不知道为什么它是一个解决方案。
GraphicalEditor
类将查看器设置为createPartControl(Composite)
方法中的网站选择提供程序。
我覆盖了这个方法来自己配置查看器,但我没有在这里设置选择提供程序,但稍后在另一个方法中。改变这种方式解决了这个问题。