Java Eclipse RCP:如何在其他视图中侦听CheckboxTableViewer选择
我有一个Eclipse RCP,其视图的控件是CheckboxTableViewer 我想使用WorkbenchPage的SelectionService(出于松耦合的原因)在编辑器中对视图中的选中/取消选中操作做出反应 所以我做了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() {
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
?是这样的。