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

时间:2017-09-13 11:35:07

标签: java treeview eclipse-rcp jface

我需要为我正在处理的项目添加多选功能。 到目前为止,SelectionChangedlistener已被使用,但该选项无法进行多项选择。

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

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

1 个答案:

答案 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();
  }
};