Я пытаюсь реализовать сортировку дерева, реализованную с помощью NatTable, но я не могу понять, как это работает. Моя проблема в том, что после сортировки любого столбца, отличного от столбца «дерево», дочерние узлы могут перейти к недопустимому родителю. Хотя порядок элементов правильный на всех уровнях иерархии. Так что в основном я не понимаю цели TreeList.Format.getComparator()
и как это связано с компараторами, зарегистрированными для столбцов, и я не понимаю, когда и почему узел может изменить своего родителя.
Я начал с примера 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