Apparently if using ILazyTree(TreePath)ContentProvider
sorting and filtering is not supported by TreeViewers
. So setting ViewerFilters
or Sorters/Comparators
to your TreeView won't do any good. Perhaps this is related to not knowing all elements, including those not visible at the moment.
In support to this statement here is javadoc excerpt from org.eclipse.jface.viewers.TreeViewer
class:
If the content provider is an
ILazyTreeContentProvider
or anILazyTreePathContentProvider
, the underlying Tree must be created using the {@link SWT#VIRTUAL} style bit, the tree viewer will not support sorting or filtering, and hash lookup must be enabled by calling {@link #setUseHashlookup(boolean)}.
The only solution I see at the moment is to get the children for each node already ordered. If you need dynamic sorting, i.e., being able to switch sorting order in desc or asc order during run time, then you need to come up with your own solution for this, monitoring a boolean flag of sorts when filling and updating children for example.
Are you aware possibly of better solutions, perhaps more jface API involving?