我有一个很奇怪的问题——如何对有釉的 TreeList 进行排序?我在 SWT NatTable 中使用它,当我的数据提供者设置为 GlazedListsDataProvider 并在其中包含 TreeList 时,排序以一种非常奇怪的方式工作。如果我将 GlazedListsDataProvider 与 SortedList 一起使用,它工作正常。
例如,我的树看起来像这样:
Root
Node1
Child1
Child2
Node2
Child3
我只需要对节点 1 和节点 2 内的子项进行排序,将它们分别排序(这样只有 child1 和 child2 会改变它们的位置)。但是,排序后如下所示:
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。