Offenbar, wenn ILazyTree(TreePath)ContentProvider
verwendet wird Sortierung und Filterung wird von TreeViewers
nicht unterstützt. Die Einstellung von ViewerFilters
oder Sorters/Comparators
zu Ihrem TreeView wird also nichts nützen. Vielleicht hängt das damit zusammen, dass man nicht alle Elemente kennt, einschließlich derer, die im Moment nicht sichtbar sind.Gibt es eine bessere Möglichkeit zur Sortierung und Filterung mit ILazyTreeContentProvider
Zur Untermauerung dieser Aussage hier ist javadoc Auszug aus org.eclipse.jface.viewers.TreeViewer
Klasse:
Wenn der Content-Provider ein
ILazyTreeContentProvider
oder einILazyTreePathContentProvider
ist, muss der zugrunde liegenden Baum sein erstellt mit der {@link SWT # VIRTUAL} style bit, der Tree Viewer unterstützt nicht Sortierung oder Filterung, und Hash-Lookup muss durch Aufruf von {@link #setUseHashlookup (boolean)} aktiviert werden.
Die einzige Lösung, die ich im Moment sehe, ist, die Kinder für jeden bereits bestellten Knoten zu bekommen. Wenn Sie eine dynamische Sortierung benötigen, d. H. Während der Laufzeit die Sortierreihenfolge in desc- oder asc-Reihenfolge wechseln können, müssen Sie eine eigene Lösung dafür finden, indem Sie beispielsweise beim Füllen und Aktualisieren von untergeordneten Elementen ein boolesches Flag überwachen.
Kennen Sie möglicherweise bessere Lösungen, vielleicht mehr jface API beteiligt?
Ich sehe, so kommt direkt von der Quelle - "Sie müssen die Sortierung selbst (in Ihrem Modell) tun". Danke, dass du das von VonC! Zurück zur Implementierung eigener Sortierfunktionen ... – Svilen