Eclipse RCP:如何在其他视图中监听CheckboxTableViewer选择

时间:2015-02-11 11:55:59

标签: java swt eclipse-rcp jface

我有一个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,但无法找到接入点:(。

1 个答案:

答案 0 :(得分:2)

您可以编写自己的ISelectionProvider实现,它返回已检查的元素,而不是使用由TableViewer实现的返回所选元素的默认提供程序。