ILazyTree(TreePath)ContentProvider
を使用している場合、並べ替えとフィルタリングはTreeViewers
でサポートされていません。だからViewerFilters
またはSorters/Comparators
をあなたのTreeViewに設定しても何の効果もありません。おそらくこれは現時点では見えない要素を含め、すべての要素を知らないことに関連しています。ここでは、この声明への支援にILazyTreeContentProviderで並べ替えとフィルタリングを使用するより良い方法はありますか
がorg.eclipse.jface.viewers.TreeViewer
クラスからjavadocの抜粋です:
コンテンツプロバイダが
ILazyTreeContentProvider
またはILazyTreePathContentProvider
ある場合は、基礎となるツリーは は{@link SWT#を使用して作成する必要があります{0link #setUseHashlookup(boolean)}を呼び出すことによって、ツリービューアは がソートまたはフィルタリングをサポートせず、ハッシュ検索を有効にする必要があります。
私が今見ている唯一の解決策は、既に注文されている各ノードの子供を取得することです。動的ソートが必要な場合、つまりソート順序を実行時にdescまたはascの順序で切り替えることができる場合は、たとえば、子を埋めて更新するときにソートのブール型フラグを監視する独自の解決策が必要です。
あなたはおそらくより多くのjface APIを含むより良い解決策を知っていますか?
私は、ソースからまっすぐに出てくることを知っています - 「自分でモデルを分類しなければなりません」。 VonCを指摘してくれてありがとう!自分のソート機能の実装に戻る... – Svilen