2017-09-13 100 views
0

我需要为我正在处理的项目添加多选功能。 到目前为止SelectionChangedlistener被使用,但是没有选择多选。如何使用CTRL键为TreeViewer启用多选功能

是否有任何支持Ctrl-click选择的侦听器类型,我可以在这里添加?

这将是我目前最好的选择。

+0

啊是的,谢谢 –

回答

2

为了能够多选,与SWT.MULTI风格标志创建树查看器,

例如:

TreeViewer viewer = new TreeViewer(parent, SWT.MULTI); 

ISelectionChangedListener将在单选和多选通知。所选元素保存在SelectionChangedEvent::getSelection

请参见下面的代码,提取所有选定的元素选择的监听器:

ISelectionChangedListener listener = new ISelectionChangedListener() { 
    @Override 
    public void selectionChanged(SelectionChangedEvent event) { 
    IStructuredSelection selection = (IStructuredSelection)event.getSelection(); 
    List<?> selectedElements = selection.toList(); 
    } 
}; 

如果你的目标的4.8版本RCP平台和更高版本,您还可以使用event.getStructuredSelection()省得自己投。例如:

ISelectionChangedListener listener = new ISelectionChangedListener() { 
    @Override 
    public void selectionChanged(SelectionChangedEvent event) { 
    IStructuredSelection selection = event.getStructuredSelection(); 
    List<?> selectedElements = selection.toList(); 
    } 
}; 
+0

是的,但我如何设置CTRL键作为决定因素在这种情况下? 我的意思是让选择真的发生 –

+1

@MadalinBranea一旦使用了SWT.MULTI,Ctrl + Click应该可以工作(除非你在使用macd的时候是Cmd + Click) –

相关问题