Mittwoch, 5. Dezember 2012

Eclipse RCP / SWT - TreeViewer Sortierreihenfolge Teil 2

Eclipse 3.7

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!

Keine Kommentare:

Kommentar veröffentlichen