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

Java Eclipse RCP:如何在其他视图中侦听CheckboxTableViewer选择,java,swt,eclipse-rcp,jface,Java,Swt,Eclipse Rcp,Jface,我有一个Eclipse RCP,其视图的控件是CheckboxTableViewer 我想使用WorkbenchPage的SelectionService(出于松耦合的原因)在编辑器中对视图中的选中/取消选中操作做出反应 所以我做了getSite().setSelectionProvider(myTableViewer) 此外,我还在编辑器中创建了一个侦听器字段: private ISelectionListener mylistener = new ISelectionListener() {

我有一个Eclipse RCP,其视图的控件是CheckboxTableViewer

我想使用WorkbenchPage的SelectionService(出于松耦合的原因)在编辑器中对视图中的选中/取消选中操作做出反应

所以我做了
getSite().setSelectionProvider(myTableViewer)createPartControl()
方法中的code>

此外,我还在编辑器中创建了一个侦听器字段:

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

不幸的是,我只得到控制台中打印出来的选中的行数,而不是选中的元素数。我试图以某种方式将
myTableViewer.getCheckedElements()
传递给
SelectionProvider
,但找不到访问点:(.

您可以编写自己的
iSelectProvider
实现,它返回选中的元素,而不是使用由返回选定元素的
TableViewer
实现的默认提供程序。

谢谢。您的意思是我的类应该实现
iSelectProvider
,并在
getSelection()中实现吗
我应该返回
getCheckedElements()
?我想我必须将选中的元素包装在
ISelection
?是这样的。