2017-06-12 2 views
1

Ich habe einen Treeviewer mit 4-5 Zeilen. Wenn ich auf irgendeine Zeile klicke, wird sie ausgewählt, aber wenn ich irgendwo anders im Viewer klicke (Bereich außer den hinzugefügten Zeilen), bleibt die Auswahl in der Zeile, in der ich zuletzt ausgewählt habe.Die Auswahl von Zeilen in Jface Treeviewer konnte nicht aufgehoben werden

Was ich will ist, wenn Benutzer klicken auf leeren Bereich von Treeviewer, sollte es Auswahl entfernen.

Ich habe bereits versucht unter:

  1. treeviewer does not deselect the tree item

  2. Selection der Baumreihe zu deaktivieren - aber nicht erreicht Kontrolle nicht da

Antwort

0

ich das gleiche Problem konfrontiert Eines Tages, aber leider habe ich keine gute Lösung für das Problem gefunden.

Aber ich habe eine Abhilfe:

  1. hinzufügen Maus nach unten Zuhörer zum TreeViewer
  2. getItem Methode der Verwendung TreeViewer und mit der Maus-Koordinaten von Ereignis zu.
  3. Überprüfen Sie, ob Artikel von getItem Methode erhalten
  4. null ist, wenn es null ist, rufen treeViewer.setSelection (StructuredSelection.EMPTY)

, die es ist.

Ich bin mir nicht sicher, ob es eine Art Bug in Jface/SWT ist.

+0

Dies ist OK, aber dies wird die Auswahl löschen, wenn Sie auf den 'Twistie' klicken, um einen Abschnitt des Baums zu erweitern/zu reduzieren. –

+0

@ greg-449 - Ich bin mir nicht sicher, aber es ist nicht meine vorherige Auswahl zu löschen und funktioniert wie erwartet. Ich erstelle Baumansicht mit Stil SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI –

Verwandte Themen