2015-02-11 84 views
1

我有一个Eclipse RCP,其视图的Control是CheckboxTableViewer。Eclipse RCP:如何在其他视图中侦听CheckboxTableViewer选择

我想使用WorkbenchPage的SelectionService(出于松散耦合的原因)来响应在编辑器中查看/取消选中视图中的操作。

所以我在视图的createPartControl()方法中做了getSite().setSelectionProvider(myTableViewer);

另外,我在编辑器中创建一个监听器领域:

private ISelectionListener mylistener = new ISelectionListener() { 
    public void selectionChanged(IWorkbenchPart sourcepart, ISelection selection) { 
     System.out.println(((IStructuredSelection) selection).size()); 
    } 
}; 

不幸的是,我只得到那些在控制台中选择打印出来,选中的元素的数量不限次数。我试图通过myTableViewer.getCheckedElements()SelectionProvider不知何故,却找不到一个接入点:(。

回答

2

你可以写自己实现ISelectionProvider它通过TableViewer返回的返回选中的元素,而不是使用实施的默认提供选择的元素

+0

谢谢。你的意思是我的类应该实现'ISelectionProvider',并且在getSelection()中我应该返回'getCheckedElements()'?我想我必须将选中的元素包装在' ISelection'? – QueNuevo 2015-02-11 12:38:31

+1

是的。 – 2015-02-11 13:15:00

相关问题