2017-06-12 93 views
1

我有一个4-5行的treeviewer。当我点击任何一行时,它会被选中,但是当我在查看器的其他任何地方(添加行以外的区域)单击时,选择将保留在最近选择的行上。无法取消在Jface Treeviewer中的行

我想要的是,当用户点击treeviewer的空白区域时,它应该删除选择。

我已经试过如下:

  1. treeviewer does not deselect the tree item

  2. 树SelectionListener中取消选择行 - 但是,控制没有达到有

回答

0

我面临同样的问题有一天,但不幸的是我没有找到任何解决这个问题的好方法。

但我做了一个解决办法:

  1. 从事件添加鼠标按下监听到TreeViewer中
  2. 使用TreeViewer中的的getItem方法,并通过鼠标坐标它。
  3. 检查从方法的getItem接收的物品为null
  4. 如果是空,调用treeViewer.setSelection(StructuredSelection.EMPTY)

就是这样。

我不确定它是否是Jface/SWT中的一种错误。

+0

这是好的,但是当你点击'twistie'展开/折叠树的一部分时,这将清除选择。 –

+0

@ greg-449 - 我不确定,但是,它没有清除我以前的选择并按预期工作。我正在使用样式SWT.BORDER |创建树查看器SWT.FULL_SELECTION | SWT.MULTI –

相关问题