我需要为我正在处理的项目添加多选功能。
到目前为止,SelectionChangedlistener
已被使用,但该选项无法进行多项选择。
是否有支持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();
}
};