Apparentemente se l'uso di ordinamento e filtro ILazyTree(TreePath)ContentProvider
non è supportato da TreeViewers
. Quindi impostare ViewerFilters
o Sorters/Comparators
sul TreeView non servirà a nulla. Forse questo è legato al non conoscere tutti gli elementi, compresi quelli non visibili al momento.Esiste un modo migliore per utilizzare l'ordinamento e il filtro con ILazyTreeContentProvider
A sostegno di questa affermazione qui è javadoc estratto da org.eclipse.jface.viewers.TreeViewer
classe:
Se il fornitore di contenuti è un
ILazyTreeContentProvider
o unILazyTreePathContentProvider
, l'Albero di fondo deve essere creato utilizzando il {@link SWT # VIRTUAL}, il visualizzatore ad albero non supporta l'ordinamento o il filtro e la ricerca hash deve essere abilitata chiamando {@link #setUseHashlookup (booleano)}.
L'unica soluzione che vedo in questo momento è quello di ottenere i bambini per ogni nodo già ordinato. Se hai bisogno di un ordinamento dinamico, cioè di poter commutare l'ordinamento in ordine decrescente o asc durante il tempo di esecuzione, allora devi trovare la tua soluzione per questo, monitorando un flag booleano di sorta durante il riempimento e l'aggiornamento dei bambini, ad esempio.
Siete a conoscenza di soluzioni migliori, forse più API jface che coinvolgono?
Vedo, quindi, venendo direttamente da The Source - "Dovrai fare l'ordinamento da solo (nel tuo modello)". Grazie per averlo segnalato VonC! Torna a implementare la propria funzionalità di ordinamento ... – Svilen