0

我正在使用 NatTable 显示具有多列的树。树被展平为用于创建 TreeList 的 SortedList。

EventList<Person> eventList = GlazedLists.eventList(perfStats.getFlattenedTree());
TransformedList<Person, Person> rowObjectsGlazedList = GlazedLists.threadSafeList(eventList);
SortedList<Person> sortedList = new SortedList<(rowObjectsGlazedList, null);
TreeList treeList = new TreeList(sortedList, treeFormat, TreeList.nodesStartCollapsed());

这可以显示树。但是,现在我的问题是如何正确排序?

期望的结果是对根进行正确排序,然后对内部的子项进行正确排序,依此类推。

现在,我正在使用 GlazedListsSortModel,它对扁平树进行排序,然后从不起作用的树中构建显示。

任何帮助或只是指出我正确的方向将不胜感激!

4

1 回答 1

0

使用 a 时,TreeList您通过a 传入Comparator树结构TreeList#Format。这是确保正确创建树所必需的,因为它是从List. 因此,即使通过 应用了排序SortedList, theComparatorTreeList#Format最终也会获胜。

因此,为了解决您的要求,您需要实现TreeList#Format将列排序考虑在内的 a。例如,这可以通过使用 NatTable 来完成SortableTreeComparator。您可以查看我们的TreeGridExample以了解它的外观。

在GroupByComparator中可以看到一个更扩展的版本,它用于支持通过 GroupBy 功能按列排序。

于 2019-06-04T04:49:25.007 回答