2017-09-13 7 views
0

Ich muss dem Projekt, an dem ich arbeite, eine Mehrfachauswahlfunktionalität hinzufügen. Bisher wird SelectionChangedlistener verwendet, aber das hat keine Option für die Mehrfachauswahl.So aktivieren Sie die Mehrfachauswahl mit Strg für TreeViewer

Gibt es einen Listenertyp, der Ctrl-Klick-Auswahl unterstützt, die ich hier hinzufügen könnte?

Das wäre meine beste Option derzeit.

+0

Ah ja, danke –

Antwort

2

Multi-Auswahl zu aktivieren, erstellen Sie den Baum-Viewer mit der SWT.MULTI Stil Flagge,

Zum Beispiel:

TreeViewer viewer = new TreeViewer(parent, SWT.MULTI); 

Die ISelectionChangedListener wird auf Einzelauswahl sowie Multi-Auswahl benachrichtigt. Die ausgewählten Elemente werden in SelectionChangedEvent::getSelection gehalten.

Siehe den Code für ein Beispiel eines Auswahl Zuhörer, die alle ausgewählten Elemente extrahiert:

ISelectionChangedListener listener = new ISelectionChangedListener() { 
    @Override 
    public void selectionChanged(SelectionChangedEvent event) { 
    IStructuredSelection selection = (IStructuredSelection)event.getSelection(); 
    List<?> selectedElements = selection.toList(); 
    } 
}; 

Wenn Sie RCP-Plattformen der Version 4.8 und höher zielen, können Sie auch event.getStructuredSelection() nutzen und ersparen sich das Besetzung. Zum Beispiel:

ISelectionChangedListener listener = new ISelectionChangedListener() { 
    @Override 
    public void selectionChanged(SelectionChangedEvent event) { 
    IStructuredSelection selection = event.getStructuredSelection(); 
    List<?> selectedElements = selection.toList(); 
    } 
}; 
+0

Ja, aber wie kann ich die Strg-Taste als entscheidenden Faktor in diesem Zusammenhang festgelegt? Ich meine, so dass die Auswahl tatsächlich passiert –

+1

@MadalinBranea Sobald SWT.MULTI verwendet wird Strg + Klick sollte funktionieren (es sei denn, Sie verwenden macOS, wenn es Cmd + Click ist) –

Verwandte Themen