Не очень чисто.Я бы не стал делать это на производстве - по соображениям производительности - это грубое решение, но оно должно работать для большого количества категорий (до нескольких сотен).
Предположим, что представление можно использовать для поиска по категориям.(похоже, чтобы показать одну категорию).Тогда все, что вам нужно, это список категорий в правильном порядке - на основе итогов, а не в алфавитном порядке.Поэтому в первом цикле выполните цикл по всем категориям (используйте NotesNavigator с кешем) и сохраните их в виде пары значений - (категория, итоги).Это может быть Map [String, Double] или Set [Category], где Category - это POJO с атрибутами category и total.В обоих случаях вам понадобится ваш собственный компаратор.Если ваши категории иерархические, используйте только категорию верхнего уровня (сортировка древовидной структуры более сложна).
Например:
Австралия (5) Бразилия (10) Чили (7)
будет сортироваться как
Бразилия (10) Чили (7) Австралия (5)
Кэшэта коллекция в viewScope (при условии, что итоговые значения «статичны» в течение короткого периода времени, пользователю потребуется перезагрузить страницу, чтобы получить обновленные данные).
Передать эту коллекцию в ретранслятор с помощью простой таблицы данных (или представления или ретранслятора).) показывая только выбранную категорию.
GUI будет немного странным для пейджеров (пейджер для категорий и пейджер для содержимого категории), но я надеюсь, вы справитесь с этим.