Как заставить JXTreeTable сортировать его верхние элементы

Я знаю (я посмотрел на источники;)), что сортировка на JXTreeTable была отключена.

Однако я хотел бы разрешить сортировку по всем столбцам только на основе значений прямых потомков корневого узла.

Скажем, у меня есть такая структура:

Name       / Date       / File UID
(Root)
|- Mr. X   / 1996/10/22 / AE123F6D
|--- File1 / 2012/01/10 / DFC2345Q
|--- File2 / 2012/01/11 / D321FEC6
|- Mrs. Y  / 1975/03/03 / G2GF35EZ
|--- File3 / 2012/02/29 / 35GERR32
|--- File4 / 2012/01/22 / LKJY2342
.
.
.

Я хочу добиться сортировки по 3 столбцам только на узлах первого уровня. Скажем, я хочу отсортировать по возрастанию, в итоге это будет так:

Name       / Date       / File UID
(Root)
|- Mrs. Y  / 1975/03/03 / G2GF35EZ
|--- File3 / 2012/02/29 / 35GERR32
|--- File4 / 2012/01/22 / LKJY2342
|- Mr. X   / 1996/10/22 / AE123F6D
|--- File1 / 2012/01/10 / DFC2345Q
|--- File2 / 2012/01/11 / D321FEC6
.
.
.

На мой взгляд, это напоминает простую сортировку таблиц (поэтому иерархическое ограничение, вызываемое для отключения сортировки, снято).

Я вижу 2 возможности сделать это:

Повторно включите механизм сортировки, доступный в JXTable, чтобы извлечь выгоду из всего, что уже реализовано (сортировка, сортировка нажатием на заголовки, ...) и сортировать только узлы первого уровня (так как у их потомков все еще будет тот же родитель) ,Реализовать базовые вещи, которые мне нужны (сортировка, главным образом, щелкая по заголовкам), иметь список идентификаторов-строк-моделей в JXSortableTreeModel, который я сортирую и переопределяю convertRowIndexToModel, который позволит (я думаю) отображать мой элемент, отсортированный так, как я хочу.

Мой любимый, конечно, первый, но я не знаю, как этого добиться. Первое ограничение заключается в том, что я не знаю, как повторно включить сортировку, поскольку JXTreeTable переопределяет setSortable () (и все связанные методы), и я не знаю, как получить прямой доступ к реализации метода в JXTable (это проблема Java). ). Я мог бы просто скопировать код JXTreeTable и удалить переопределения, но, на мой взгляд, это не вариант.

Скажем, я решаю это, как бы я ограничил сортировку узлами первого уровня? Даже посмотрев на источник, я не знаю, как это сделать.

Со вторым я теряю все преимущества существующего кода, но я вижу практический способ достичь того, чего я хочу (на данный момент, по крайней мере. Кто знает, не захочет ли фильтровать данные по всем строкам?).

Есть ли другой путь? Если нет, какое из моих решений я должен выбрать? Какие-нибудь проницательные комментарии?

Спасибо заранее!

Ответы на вопрос(2)

Ваш ответ на вопрос