Problem: Knoten im TreeViewer sollen sortiert werden.
Lösung: Der ViewSorter erledigt die Sortierung. In unserem Beispiel werden die Knoten alphabetisch sortiert. Im ersten Teil dieses Artikels wurde ein Beispiel vorbereitet. Im diesem Teil soll die Sortierung hinzugefügt werden.
Schritt 1: Erzeuge die Klasse
StructureViewerComparator
.
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerComparator;
public class StructureViewerComparator extends ViewerComparator {
@Override
public int compare(Viewer viewer, Object e1, Object e2) {
if ((e1 instanceof MyTreeNode) && (e2 instanceof MyTreeNode)){
return e2.toString().compareTo(e1.toString());
}
return 0;
}
}
Schritt 2: In der
View
Klasse, wird in der createPartControl
Methode dem Viewer ein neuer Comparator vom Typ StructureViewerComparator
hinzugefügt.
public void createPartControl(Composite parent) {
viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL
| SWT.V_SCROLL);
viewer.setContentProvider(new TreeContentProvider());
viewer.setInput(new MyTreeNode(0,""));
viewer.setComparator(new StructureViewerComparator()); //Comparator hinzugefügt
}
Schritt 3: Code ausführen!