java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RemoteServerInstancesManagementPanel.java
... ...
@@ -5,6 +5,7 @@ import static com.sap.sse.security.ui.client.component.DefaultActionsImagesBarCe
5 5
6 6
import java.util.ArrayList;
7 7
import java.util.Collections;
8
+import java.util.Comparator;
8 9
import java.util.HashSet;
9 10
import java.util.List;
10 11
import java.util.Set;
... ...
@@ -17,6 +18,7 @@ import com.google.gwt.safehtml.shared.SafeHtml;
17 18
import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
18 19
import com.google.gwt.user.cellview.client.AbstractCellTable;
19 20
import com.google.gwt.user.cellview.client.Column;
21
+import com.google.gwt.user.cellview.client.ColumnSortEvent.ListHandler;
20 22
import com.google.gwt.user.cellview.client.TextColumn;
21 23
import com.google.gwt.user.client.Window;
22 24
import com.google.gwt.user.client.rpc.AsyncCallback;
... ...
@@ -74,7 +76,9 @@ public class RemoteServerInstancesManagementPanel extends SimplePanel implements
74 76
remoteServersPanel.setContentWidget(remoteServersContentPanel);
75 77
serverDataProvider = new ListDataProvider<>();
76 78
filteredServerTablePanel = createFilteredServerTablePanel();
77
- remoteServersTable = createRemoteServersTable(tableResources);
79
+ final ListHandler<RemoteSailingServerReferenceDTO> sortHandler = new ListHandler<>(serverDataProvider.getList());
80
+ remoteServersTable = createRemoteServersTable(tableResources, sortHandler);
81
+ remoteServersTable.addColumnSortHandler(sortHandler);
78 82
serverDataProvider.addDataDisplay(remoteServersTable);
79 83
remoteServersContentPanel.add(filteredServerTablePanel);
80 84
remoteServersContentPanel.add(remoteServersTable);
... ...
@@ -122,11 +126,17 @@ public class RemoteServerInstancesManagementPanel extends SimplePanel implements
122 126
}
123 127
124 128
private FlushableCellTable<RemoteSailingServerReferenceDTO> createRemoteServersTable(
125
- CellTableWithCheckboxResources tableResources) {
129
+ CellTableWithCheckboxResources tableResources, ListHandler<RemoteSailingServerReferenceDTO> sortHandler) {
126 130
RemoteServerInstancesManagementTableWrapper wrapper = new RemoteServerInstancesManagementTableWrapper(
127 131
stringMessages, errorReporter, filteredServerTablePanel.getAllListDataProvider(), tableResources);
128
- wrapper.addColumn(createTextColumn(RemoteSailingServerReferenceDTO::getName), stringMessages.name());
129
- wrapper.addColumn(createTextColumn(RemoteSailingServerReferenceDTO::getUrl), stringMessages.url());
132
+ final TextColumn<RemoteSailingServerReferenceDTO> nameColumn = createTextColumn(RemoteSailingServerReferenceDTO::getName);
133
+ nameColumn.setSortable(true);
134
+ sortHandler.setComparator(nameColumn, Comparator.comparing(s -> s.getName() != null ? s.getName() : ""));
135
+ wrapper.addColumn(nameColumn, stringMessages.name());
136
+ final TextColumn<RemoteSailingServerReferenceDTO> urlColumn = createTextColumn(RemoteSailingServerReferenceDTO::getUrl);
137
+ urlColumn.setSortable(true);
138
+ sortHandler.setComparator(urlColumn, Comparator.comparing(s -> s.getUrl() != null ? s.getUrl() : ""));
139
+ wrapper.addColumn(urlColumn, stringMessages.url());
130 140
wrapper.addColumn(createEventsColumn(), stringMessages.events());
131 141
wrapper.addColumn(createActionsColumn(), stringMessages.actions());
132 142
wrapper.setEmptyTableWidget(new Label(stringMessages.noSailingServerInstancesYet()));