【问题标题】:Eclipse RCP: How to listen to CheckboxTableViewer selection in other viewEclipse RCP:如何在其他视图中收听 CheckboxTableViewer 选择
【发布时间】:2015-02-11 22:19:35
【问题描述】:

我有一个 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());
    }
};

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

【问题讨论】:

    标签: java swt eclipse-rcp jface


    【解决方案1】:

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

    【讨论】:

    • 谢谢。你的意思是我的班级应该实现ISelectionProvider,而在getSelection() 中我应该返回getCheckedElements()?我想我必须将选中的元素包装在 ISelection?
    • 是的,类似的。
    猜你喜欢
    • 2013-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多