Очевидно, что при использовании ILazyTree(TreePath)ContentProvider
сортировка и фильтрация не поддерживаются TreeViewers
. Поэтому установка ViewerFilters
или Sorters/Comparators
в TreeView не принесет пользы. Возможно, это связано с незнанием всех элементов, включая те, которые не видны в данный момент.
В поддержку этого утверждения приводится выдержка из org.eclipse.jface.viewers.TreeViewer
класса javadoc:
Если поставщик контента является
ILazyTreeContentProvider
или
ILazyTreePathContentProvider
, лежащее в основе дерево должно быть
созданный с использованием бита стиля {@link SWT # VIRTUAL}, средство просмотра дерева не будет
поддержка сортировки или фильтрации, и поиск по хешу должен быть включен путем вызова
{@link #setUseHashlookup (логическое)}.
Единственное решение, которое я вижу на данный момент, - это получить дочерние элементы для каждого уже заказанного узла. Если вам нужна динамическая сортировка, т. Е. Возможность переключать порядок сортировки в порядке desc или asc во время выполнения, то вам нужно придумать собственное решение для этого, например, отслеживая своего рода логический флаг при заполнении и обновлении потомков.
Вы знаете, возможно, о лучших решениях, возможно, больше jface API с участием?