diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SmartphoneTrackingEventManagementPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SmartphoneTrackingEventManagementPanel.java index 73bf8289249..ad701c892df 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SmartphoneTrackingEventManagementPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SmartphoneTrackingEventManagementPanel.java @@ -2,6 +2,7 @@ package com.sap.sailing.gwt.ui.adminconsole; import java.util.ArrayList; import java.util.Collections; +import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -60,6 +61,7 @@ import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO; import com.sap.sse.common.Util; import com.sap.sse.common.Util.Pair; import com.sap.sse.common.Util.Triple; +import com.sap.sse.common.util.NaturalComparator; import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.async.MarkedAsyncCallback; import com.sap.sse.gwt.client.dialog.DataEntryDialog; @@ -130,12 +132,29 @@ public class SmartphoneTrackingEventManagementPanel extends AbstractLeaderboardC return leaderboard.name; } }; + leaderboardNameColumn.setSortable(true); + leaderboardColumnListHandler.setComparator(leaderboardNameColumn, new Comparator() { + @Override + public int compare(StrippedLeaderboardDTO o1, StrippedLeaderboardDTO o2) { + return new NaturalComparator(false).compare(o1.name, o2.name); + } + }); + TextColumn leaderboardDisplayNameColumn = new TextColumn() { @Override public String getValue(StrippedLeaderboardDTO leaderboard) { return leaderboard.getDisplayName() != null ? leaderboard.getDisplayName() : ""; } }; + leaderboardDisplayNameColumn.setSortable(true); + leaderboardColumnListHandler.setComparator(leaderboardDisplayNameColumn, + new Comparator() { + @Override + public int compare(StrippedLeaderboardDTO o1, StrippedLeaderboardDTO o2) { + return new NaturalComparator(false).compare(o1.getDisplayName(), o2.getDisplayName()); + } + }); + ImagesBarColumn leaderboardActionColumn = new ImagesBarColumn( new RaceLogTrackingEventManagementImagesBarCell(stringMessages));