Eclipse RCP:如何在其他视图中收听 CheckboxTableViewer 选择
Eclipse RCP: How to listen to CheckboxTableViewer selection in other view
我有一个 Eclipse RCP,其视图的控件是 CheckboxTableViewer。
我想使用 WorkbenchPage 的 SelectionService(出于耦合松散的原因)对编辑器视图中的 check/uncheck 操作作出反应。
所以我在视图的 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
,但找不到访问点 :(.
您可以编写自己的 ISelectionProvider
实现,其中 returns 选中的元素,而不是使用 TableViewer
实现的默认提供程序,其中 returns 选中的元素。
我有一个 Eclipse RCP,其视图的控件是 CheckboxTableViewer。
我想使用 WorkbenchPage 的 SelectionService(出于耦合松散的原因)对编辑器视图中的 check/uncheck 操作作出反应。
所以我在视图的 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
,但找不到访问点 :(.
您可以编写自己的 ISelectionProvider
实现,其中 returns 选中的元素,而不是使用 TableViewer
实现的默认提供程序,其中 returns 选中的元素。