2016-06-20 9 views
1

Ich habe eine Eclipse-SWT-Tabelle. Es enthält mehrere Zeilen (mit Zeilenüberschriften) und mehrere Spalten (mit Spaltenüberschriften). Beim Klicken auf eine Spaltenüberschrift möchte ich alle Zeilen abwählen und nur die Spaltenüberschrift (oder alle Zellen dieser Spalte) markieren. Ist das möglich?Wählen Sie nur Spaltenüberschrift und keine Zeile in einer SWT-Tabelle nach dem Klicken auf Spaltenüberschrift

Ich habe bereits einen Listener für die Auswahl der Spaltenüberschrift registriert und bin in der Lage, die Auswahl auf die angegebene Spalte zu setzen, wählt dann aber immer auch automatisch die erste Zeile aus. Ich habe versucht mit SWT.FULL_SELECTION und SWT.SINGLE als Stil meiner Tabelle, aber es ändert nur die Art, wie die Zeile markiert ist, aber ich möchte nur die Spaltenkopfzeile (oder optional alle Zellen dieser Spalte) und keine Zeilen markieren.

Ist es möglich? Hat jemand das gleiche Problem?

Antwort

1

Ich stieß auf das gleiche Problem und ich fürchte, dass Sie das in SWT nicht tun können.

Ich löste durch Nachahmung der Auswahl einer Spalte; Ich färbte die Zellen so, als wären sie ausgewählt, und ließ die "echte" Auswahl fallen.

Sie sollten Ihren eigenen TableViewer erweitern und die getSelection() -Methode überschreiben, um anzuzeigen, dass Sie jetzt auch diese imitierte Art der Auswahl haben. (Und aus einer UX-Perspektive sollten Sie sicherstellen, dass sich ein Kopierbefehl (d. H. Strg + C) verhält, wie Benutzer es erwarten.)