Добавление пользовательского компаратора для целочисленной сортировки в Nattable

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

1 ответ

Решение

Сначала комментарий по вашей проблеме. Сортировка чисел и дат в NatTable работает довольно хорошо. На самом деле сортировка всех Comparable типы данных работают нормально с DefaultComparator применяется DefaultSortConfiguration, Но чтобы он работал правильно, вам нужно зарегистрировать соответствующие конвертеры типов данных, как показано в различных примерах NatTable. Без конвертера все данные в NatTable обрабатываются как String, что приводит к "неправильной" сортировке.

Второй на ваш вопрос. Вы можете зарегистрировать пользовательский компаратор следующим образом:

configRegistry.registerConfigAttribute(
    SortConfigAttributes.SORT_COMPARATOR,
    new MyCustomComparator(),
    DisplayMode.NORMAL,
    CUSTOM_COMPARATOR_LABEL);

Так что вам нужно зарегистрировать Comparator для атрибута конфигурации SortConfigAttributes.SORT_COMPARATOR и соответствующий ярлык.

Но если у вас нет подходящего конвертера типов, вам нужно сравнить строки. Так что ИМХО нужно зарегистрировать DisplayConverter и сортировка работает по назначению без необходимости специального компаратора.

Другие вопросы по тегам