Я пытаюсь реализовать сортировку дерева, реализованного с помощью NatTable, но я не могу понять, как это работает. Моя проблема заключается в том, что после сортировки любого столбца, отличного от дерева, дочерние узлы могут перемещаться к недопустимому родительскому элементу. Хотя порядок элементов правилен на всех уровнях иерархии. Поэтому в основном я не понимаю цели TreeList.Format.getComparator()
и как она связана с компараторами, зарегистрированными для столбцов, и я не понимаю, когда и почему узел может изменить родителя.Сортировка дерева, реализованного с помощью NatTable
Я начал с примером TreeGridExample и мне удалось создать тестовые данные, с которыми у меня есть такая же проблема
private void createDatums() {
createDatum(null, "a", 2);
createDatum("a", "aa1", 0);
createDatum(null, "b", 0);
createDatum("b", "bb1", 0);
createDatum(null, "m", 1);
createDatum(null, "n", 0);
}
Если сортировать столбец bar
, bb1
узла прыжков с b
в n
и при сортировке удаляется, он снова имеет значение b
Я читал обе дискуссии, но я до сих пор не могу найти причину, по которой узлы меняют родителя. Поскольку у меня есть wroten, у меня такая же проблема, даже с примером кода NatTable. – Joel
Насколько я помню, дерево создается переходом по списку в порядке DFS. Вы должны объединить его с объектом древовидного формата, который управляет иерархией. –