2017-06-12 90 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 –

相關問題