我有一个Eclipse RCP,其视图的Control是CheckboxTableViewer。
我想使用WorkbenchPage的SelectionService(出于松散耦合的原因)来响应在编辑器中检查/取消选中视图中的操作。
所以我在视图的getSite().setSelectionProvider(myTableViewer);
方法中createPartControl()
。
另外,我在编辑器中创建了一个监听器字段:
private ISelectionListener mylistener = new ISelectionListener() {
public void selectionChanged(IWorkbenchPart sourcepart, ISelection selection) {
System.out.println(((IStructuredSelection) selection).size());
}
};
不幸的是,我只获得了在控制台中打印出来的行的数量,而不是已检查元素的数量。我试图以某种方式将myTableViewer.getCheckedElements()
传递给SelectionProvider
,但无法找到接入点:(。
答案 0 :(得分:2)
您可以编写自己的ISelectionProvider
实现,它返回已检查的元素,而不是使用由TableViewer
实现的返回所选元素的默认提供程序。