以编程方式激发 RCP 选择事件
2022-09-01 18:49:58
在我的 Eclipse RCP 应用程序中,我使用选择服务,如这篇不错的文章中所述。在一个视图中有一个注册为选择提供程序的树查看器:
getSite().setSelectionProvider(viewer);
另一个视图是从 TreeViewer 接收事件:
selectionListener = new ISelectionListener() {
public void selectionChanged(IWorkbenchPart part, ISelection selection) {
pageSelectionChanged(part, selection);
}
};
getSite().getPage().addSelectionListener(selectionListener);
一切正常,如果事件被触发,我的正常鼠标点击。我想通过选择树中的项目来以编程方式触发选择事件:
treeViewer.setSelection(new StructuredSelection(element),true);
这不起作用。方法选择在接收方视图中不调用Changed。此问题在此论坛帖子中讨论。没有解决办法。
编辑
没有正确的方法来处理鼠标触发的单击,其方式与以编程方式选择相同。单击鼠标将激活以编程方式选择的视图所不激活的视图。
我的解决方案是以与第一个视图相同的方式注册第二个视图。之后,两个视图都直接从活动编辑器获取选择事件。Selection Service