かなり奇妙な質問があります-艶をかけられたTreeListをソートする方法は? 私は SWT NatTable で使用しています。データ プロバイダーが GlazedListsDataProvider に設定され、その中に TreeList があると、並べ替えが非常に奇妙な方法で機能します。SortedList で GlazedListsDataProvider を使用している場合、正常に動作します。
たとえば、私のツリーは次のようになります。
Root
Node1
Child1
Child2
Node2
Child3
ノード 1 とノード 2 の内側の子だけを個別に並べ替える必要があります (子 1 と子 2 だけが場所を変更するように)。ただし、ソート後は次のようになります。
Root
Node1
Node2
Child1
Child2
Child3
逆ソート:
Root
Node1
Node2
Child2
Child1
Child3
したがって、基本的には機能しますが(子を正しい方法でソートします)、さらに、ソートすべきではない要素をソートします。そのような行動の理由は何ですか?私のソートアルゴリズムは単純です:
compare (element1, element2) {
if (both elements are under same parent and have same type)
compare
otherwise
return 0
}
次の例で提案されているように並べ替えを行っていますhttp://kari.dy.fi/src/sample/foldertree.zip -つまり、コンパレーターがSortStateで構築された後、TreeListで使用されるTreeFormatに設定しています。
0 を返すことは正しく機能しないと思いますが、他の解決策は見当たりません。または、私のコンパレーターではなく、別の場所に問題がある可能性があります。
ご辛抱いただきありがとうございます。ヒントをいただければ幸いです。敬具、アレックス G.