From 5a51e29861f8361cc9997b12d30eedfce92fcb70 Mon Sep 17 00:00:00 2001 From: ScarletRedMan Date: Wed, 14 Feb 2024 17:40:23 +0700 Subject: [PATCH] Implemented sorting UserSearchList --- .../ru/dragonestia/picker/cp/page/UserSearchPage.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/control-panel/src/main/java/ru/dragonestia/picker/cp/page/UserSearchPage.java b/control-panel/src/main/java/ru/dragonestia/picker/cp/page/UserSearchPage.java index aeaed8f..bc44b9f 100644 --- a/control-panel/src/main/java/ru/dragonestia/picker/cp/page/UserSearchPage.java +++ b/control-panel/src/main/java/ru/dragonestia/picker/cp/page/UserSearchPage.java @@ -60,10 +60,15 @@ public class UserSearchPage extends VerticalLayout { private Grid createUserGrid() { var grid = new Grid(); - grid.addColumn(RUser::getId).setHeader("Identifier") + grid.addColumn(RUser::getId).setHeader("Identifier").setSortable(true) .setFooter("Found %s users".formatted(cachedUsers.size())); - grid.addColumn(user -> user.getDetail(UserDetails.COUNT_ROOMS)).setTextAlign(ColumnTextAlign.CENTER).setHeader("Linked with rooms"); + grid.addColumn(user -> user.getDetail(UserDetails.COUNT_ROOMS)).setComparator((user1, user2) -> { + var r1 = Integer.parseInt(user1.getDetail(UserDetails.COUNT_ROOMS)); + var r2 = Integer.parseInt(user2.getDetail(UserDetails.COUNT_ROOMS)); + + return Integer.compare(r1, r2); + }).setTextAlign(ColumnTextAlign.CENTER).setHeader("Linked with rooms"); grid.addComponentColumn(user -> { var button = new Button("Details"); @@ -74,6 +79,7 @@ public class UserSearchPage extends VerticalLayout { return button; }).setHeader("Manage"); + grid.setMultiSort(true, Grid.MultiSortPriority.APPEND); return grid; }