4e63c8baafcb8b6af5dc790a188ec810650a07ad
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())); |