如何使用 Ctrl 为 TreeViewer 启用多项选择

How to enable multiple selection with Ctrl for TreeViewer

我需要为我正在处理的项目添加多选功能。 到现在用的是SelectionChangedlistener但是那个没有多选的选项

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

这是我目前最好的选择。

要启用多选,请使用 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();
  }
};