どうやら、ILazyTree(TreePath)ContentProvider
並べ替えとフィルタリングの使用が でサポートされていない場合TreeViewers
。ViewerFilters
そのため、 TreeView にorを設定Sorters/Comparators
しても何の役にも立ちません。おそらくこれは、現時点で見えていない要素も含めて、すべての要素を把握していないことに関係しています。
このステートメントをサポートするために、org.eclipse.jface.viewers.TreeViewer
クラスからの javadoc の抜粋を次に示します。
コンテンツ プロバイダが
ILazyTreeContentProvider
または のILazyTreePathContentProvider
場合、基になるツリーは {@link SWT#VIRTUAL} スタイル ビットを使用して作成する必要があり、ツリー ビューアは並べ替えやフィルタリングをサポートしません。{@link #setUseHashlookup を呼び出してハッシュ ルックアップを有効にする必要があります。 (ブール値)}.
現時点で唯一の解決策は、すでに注文されている各ノードの子を取得することです。動的な並べ替えが必要な場合、つまり、実行時に降順または昇順で並べ替え順序を切り替えることができるようにする必要がある場合は、独自の解決策を考え出す必要があります。たとえば、子の入力および更新時に並べ替えのブール フラグを監視します。
おそらくより良い解決策、おそらくより多くのjface APIを含むことに気づいていますか?