Skip to content

Commit 1d69a30

Browse files
bug6122: refactoring
1 parent f5105e2 commit 1d69a30

File tree

12 files changed

+66
-294
lines changed

12 files changed

+66
-294
lines changed

java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractLeaderboardConfigPanel.java

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
import java.util.Set;
1111
import java.util.function.Consumer;
1212

13-
import com.google.gwt.cell.client.CheckboxCell;
1413
import com.google.gwt.core.client.GWT;
1514
import com.google.gwt.core.client.Scheduler;
1615
import com.google.gwt.core.client.Scheduler.ScheduledCommand;
@@ -402,21 +401,7 @@ protected SelectionCheckboxColumn<StrippedLeaderboardDTO> createSortableSelectio
402401
tableResources.cellTableStyle().cellTableCheckboxDeselected(),
403402
tableResources.cellTableStyle().cellTableCheckboxColumnCell(),
404403
new NameBasedStrippedLeaderboardDTOEntityIdentityComparator(), listDataProvider, leaderboardTable);
405-
final CheckboxCell selectAllCell = new CheckboxCell();
406-
final Header<Boolean> selectAllHeader = new Header<Boolean>(selectAllCell) {
407-
private boolean checked = false;
408-
@Override
409-
public Boolean getValue() {
410-
return checked;
411-
}};
412-
selectAllHeader.setUpdater(value -> {
413-
List<StrippedLeaderboardDTO> visibleLeaderbords = filteredLeaderboardList.getList();
414-
for (final StrippedLeaderboardDTO l : visibleLeaderbords) {
415-
leaderboardSelectionModel.setSelected(l, value);
416-
}
417-
value = !value;
418-
});
419-
selectionCheckboxColumn.setSortable(false);
404+
final Header<Boolean> selectAllHeader = selectionCheckboxColumn.createHeader();
420405
leaderboardTable.addColumn(selectionCheckboxColumn, selectAllHeader);
421406
return selectionCheckboxColumn;
422407
}

java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/DeviceConfigurationListComposite.java

Lines changed: 23 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,10 @@
2525
import com.sap.sse.gwt.adminconsole.AdminConsoleTableResources;
2626
import com.sap.sse.gwt.client.ErrorReporter;
2727
import com.sap.sse.gwt.client.celltable.AbstractSortableTextColumn;
28-
import com.sap.sse.gwt.client.celltable.BaseCelltable;
2928
import com.sap.sse.gwt.client.celltable.EntityIdentityComparator;
29+
import com.sap.sse.gwt.client.celltable.FlushableCellTable;
3030
import com.sap.sse.gwt.client.celltable.RefreshableMultiSelectionModel;
31+
import com.sap.sse.gwt.client.celltable.SelectionCheckboxColumn;
3132
import com.sap.sse.security.shared.HasPermissions;
3233
import com.sap.sse.security.shared.HasPermissions.DefaultActions;
3334
import com.sap.sse.security.shared.impl.SecuredSecurityTypes;
@@ -37,14 +38,12 @@
3738
import com.sap.sse.security.ui.client.component.EditOwnershipDialog;
3839
import com.sap.sse.security.ui.client.component.SecuredDTOOwnerColumn;
3940
import com.sap.sse.security.ui.client.component.editacl.EditACLDialog;
40-
import com.google.gwt.cell.client.CheckboxCell;
41-
import com.google.gwt.user.cellview.client.Column;
4241
import com.google.gwt.user.cellview.client.Header;
4342

4443
public class DeviceConfigurationListComposite extends Composite {
4544
protected static AdminConsoleTableResources tableResource = GWT.create(AdminConsoleTableResources.class);
4645

47-
private final RefreshableMultiSelectionModel<DeviceConfigurationWithSecurityDTO> refreshableConfigurationSelectionModel;
46+
private RefreshableMultiSelectionModel<DeviceConfigurationWithSecurityDTO> refreshableConfigurationSelectionModel;
4847
private final CellTable<DeviceConfigurationWithSecurityDTO> configurationTable;
4948
protected ListDataProvider<DeviceConfigurationWithSecurityDTO> configurationsDataProvider;
5049

@@ -69,25 +68,11 @@ public DeviceConfigurationListComposite(SailingServiceWriteAsync sailingServiceW
6968
noConfigurationsLabel.setWordWrap(false);
7069
panel.add(noConfigurationsLabel);
7170
configurationsDataProvider = new ListDataProvider<DeviceConfigurationWithSecurityDTO>();
72-
refreshableConfigurationSelectionModel = new RefreshableMultiSelectionModel<>(
73-
new EntityIdentityComparator<DeviceConfigurationWithSecurityDTO>() {
74-
@Override
75-
public boolean representSameEntity(DeviceConfigurationWithSecurityDTO dto1,
76-
DeviceConfigurationWithSecurityDTO dto2) {
77-
return Util.equalsWithNull(dto1.id, dto2.id);
78-
}
79-
80-
@Override
81-
public int hashCode(DeviceConfigurationWithSecurityDTO t) {
82-
return t.id == null ? 0 : t.id.hashCode();
83-
}
84-
}, configurationsDataProvider);
8571
configurationTable = createConfigurationTable(userService);
8672
configurationTable.setVisible(true);
87-
configurationTable.setSelectionModel(refreshableConfigurationSelectionModel);
73+
refreshTable();
8874
panel.add(configurationTable);
8975
initWidget(mainPanel);
90-
refreshTable();
9176
}
9277

9378
public void refreshTable() {
@@ -120,40 +105,31 @@ public RefreshableMultiSelectionModel<DeviceConfigurationWithSecurityDTO> getSel
120105
}
121106

122107
private CellTable<DeviceConfigurationWithSecurityDTO> createConfigurationTable(final UserService userService) {
123-
CellTable<DeviceConfigurationWithSecurityDTO> table = new BaseCelltable<DeviceConfigurationWithSecurityDTO>(
124-
/* pageSize */10000, tableResource);
108+
final FlushableCellTable<DeviceConfigurationWithSecurityDTO> table = new FlushableCellTable<>(10000, tableResource);
125109
configurationsDataProvider.addDataDisplay(table);
126110
table.ensureDebugId("DeviceConfigurationList");
127111
table.setWidth("100%");
128112
ListHandler<DeviceConfigurationWithSecurityDTO> columnSortHandler = new ListHandler<DeviceConfigurationWithSecurityDTO>(
129113
configurationsDataProvider.getList());
130114
table.addColumnSortHandler(columnSortHandler);
131-
CheckboxCell headerCheckboxCell = new CheckboxCell();
132-
Header<Boolean> selectAllHeader = new Header<Boolean>(headerCheckboxCell) {
133-
private boolean checked = false;
134-
@Override
135-
public Boolean getValue() {
136-
return checked;
137-
}
138-
};
139-
selectAllHeader.setUpdater(value -> {
140-
List<DeviceConfigurationWithSecurityDTO> visible = configurationsDataProvider.getList();
141-
for (DeviceConfigurationWithSecurityDTO cfg : visible) {
142-
refreshableConfigurationSelectionModel.setSelected(cfg, value);
143-
}
144-
value = !value;
145-
});
146-
Column<DeviceConfigurationWithSecurityDTO, Boolean> selectionColumn =
147-
new Column<DeviceConfigurationWithSecurityDTO, Boolean>(new CheckboxCell(true, false)) {
148-
@Override
149-
public Boolean getValue(DeviceConfigurationWithSecurityDTO object) {
150-
return refreshableConfigurationSelectionModel.isSelected(object);
151-
}
152-
};
153-
selectionColumn.setFieldUpdater((index, object, value) ->
154-
refreshableConfigurationSelectionModel.setSelected(object, value));
155-
selectionColumn.setSortable(false);
156-
table.addColumn(selectionColumn, selectAllHeader);
115+
final SelectionCheckboxColumn<DeviceConfigurationWithSecurityDTO> checkColumn = new SelectionCheckboxColumn<DeviceConfigurationWithSecurityDTO>(
116+
tableResource.cellTableStyle().cellTableCheckboxSelected(),
117+
tableResource.cellTableStyle().cellTableCheckboxDeselected(),
118+
tableResource.cellTableStyle().cellTableCheckboxColumnCell(),
119+
new EntityIdentityComparator<DeviceConfigurationWithSecurityDTO>() {
120+
@Override
121+
public boolean representSameEntity(DeviceConfigurationWithSecurityDTO a, DeviceConfigurationWithSecurityDTO b) {
122+
return Util.equalsWithNull(a.id, b.id);
123+
}
124+
@Override
125+
public int hashCode(DeviceConfigurationWithSecurityDTO t) {
126+
return t.id == null ? 0 : t.id.hashCode();
127+
}
128+
}, configurationsDataProvider, table);
129+
final Header<Boolean> selectAllHeader = checkColumn.createHeader();
130+
table.addColumn(checkColumn, selectAllHeader);
131+
refreshableConfigurationSelectionModel = checkColumn.getSelectionModel();
132+
table.setSelectionModel(refreshableConfigurationSelectionModel, checkColumn.getSelectionManager());
157133
TextColumn<DeviceConfigurationWithSecurityDTO> identifierNameColumn = new TextColumn<DeviceConfigurationWithSecurityDTO>() {
158134
@Override
159135
public String getValue(DeviceConfigurationWithSecurityDTO config) {

java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EventListComposite.java

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,6 @@
8282
import com.sap.sse.security.ui.client.component.SecuredDTOOwnerColumn;
8383
import com.sap.sse.security.ui.client.component.editacl.EditACLDialog;
8484
import com.google.gwt.user.cellview.client.Header;
85-
import com.google.gwt.cell.client.CheckboxCell;
8685

8786
/**
8887
* A composite showing the list of all sailing events
@@ -374,20 +373,7 @@ public void onSuccess(Void result) {
374373
configureTableColumnSortHandler(listHandler, eventSelectionCheckboxColumn,
375374
eventNameColumn, venueNameColumn, startEndDateColumn, isPublicColumn, courseAreasColumn,
376375
leaderboardGroupsColumn, groupColumn, userColumn);
377-
eventSelectionCheckboxColumn.setSortable(false);
378-
CheckboxCell selectAllCell = new CheckboxCell();
379-
Header<Boolean> selectAllHeader = new Header<Boolean>(selectAllCell) {
380-
@Override
381-
public Boolean getValue() {
382-
return false;
383-
}};
384-
selectAllHeader.setUpdater(value -> {
385-
List<EventDTO> visibleEvents = eventListDataProvider.getList();
386-
for (EventDTO e : visibleEvents) {
387-
refreshableEventSelectionModel.setSelected(e, value);
388-
}
389-
value = !value;
390-
});
376+
final Header<Boolean> selectAllHeader = eventSelectionCheckboxColumn.createHeader();
391377
table.addColumn(eventSelectionCheckboxColumn, selectAllHeader);
392378
table.addColumn(eventNameColumn, stringMessages.event());
393379
table.addColumn(venueNameColumn, stringMessages.venue());

java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/IgtimiDevicesPanel.java

Lines changed: 2 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
import java.util.HashSet;
1616
import java.util.Set;
1717

18-
import com.google.gwt.cell.client.CheckboxCell;
1918
import com.google.gwt.cell.client.SafeHtmlCell;
2019
import com.google.gwt.core.client.GWT;
2120
import com.google.gwt.i18n.client.NumberFormat;
@@ -376,21 +375,7 @@ public SafeHtml getValue(IgtimiDeviceWithSecurityDTO device) {
376375
.create(userService.getUserManagementWriteService(), type, roleDefinition -> refreshDevices(), stringMessages);
377376
actionColumn.addAction(DefaultActionsImagesBarCell.ACTION_CHANGE_ACL, DefaultActions.CHANGE_ACL,
378377
configACL::openDialog);
379-
devicesSelectionCheckboxColumn.setSortable(false);
380-
CheckboxCell devicesSelectAllCell = new CheckboxCell();
381-
Header<Boolean> devicesSelectAllHeader = new Header<Boolean>(devicesSelectAllCell) {
382-
@Override
383-
public Boolean getValue() {
384-
return false;
385-
}
386-
};
387-
devicesSelectAllHeader.setUpdater(value -> {
388-
for (IgtimiDeviceWithSecurityDTO device : filteredDevices.getList()) {
389-
devicesSelectionCheckboxColumn.getSelectionModel().setSelected(device, value);
390-
}
391-
value = !value;
392-
});
393-
// add columns to table:
378+
final Header<Boolean> devicesSelectAllHeader = devicesSelectionCheckboxColumn.createHeader();
394379
table.addColumn(devicesSelectionCheckboxColumn, devicesSelectAllHeader);
395380
table.addColumn(deviceIdColumn, stringMessages.id());
396381
table.addColumn(deviceNameColumn, stringMessages.name());
@@ -507,21 +492,7 @@ public int hashCode(IgtimiDataAccessWindowWithSecurityDTO t) {
507492
.create(userService.getUserManagementWriteService(), type, roleDefinition -> refreshDataAccessWindows(), stringMessages);
508493
actionColumn.addAction(DefaultActionsImagesBarCell.ACTION_CHANGE_ACL, DefaultActions.CHANGE_ACL,
509494
configACL::openDialog);
510-
dawsSelectionCheckboxColumn.setSortable(false);
511-
CheckboxCell dawSelectAllCell = new CheckboxCell();
512-
Header<Boolean> dawSelectAllHeader = new Header<Boolean>(dawSelectAllCell) {
513-
@Override
514-
public Boolean getValue() {
515-
return false;
516-
}
517-
};
518-
dawSelectAllHeader.setUpdater(value -> {
519-
boolean newState = value != null && value;
520-
for (IgtimiDataAccessWindowWithSecurityDTO daw : filteredDAWs.getList()) {
521-
dawsSelectionCheckboxColumn.getSelectionModel().setSelected(daw, newState);
522-
}
523-
});
524-
// add columns to table:
495+
final Header<Boolean> dawSelectAllHeader = dawsSelectionCheckboxColumn.createHeader();
525496
table.addColumn(dawsSelectionCheckboxColumn, dawSelectAllHeader);
526497
table.addColumn(dawIdColumn, stringMessages.id());
527498
table.addColumn(dawSerialNumberColumn, stringMessages.serialNumber());

java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardGroupConfigPanel.java

Lines changed: 4 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
import java.util.function.Function;
1919
import java.util.stream.Collectors;
2020

21-
import com.google.gwt.cell.client.CheckboxCell;
2221
import com.google.gwt.core.client.GWT;
2322
import com.google.gwt.dom.client.Style.FontWeight;
2423
import com.google.gwt.dom.client.Style.Unit;
@@ -281,21 +280,7 @@ public String getValue(StrippedLeaderboardDTO leaderboard) {
281280
};
282281
leaderboardsTable.setWidth("100%");
283282
leaderboardsTable.addColumnSortHandler(leaderboardsListHandler);
284-
leaderboardTableSelectionColumn.setSortable(false);
285-
CheckboxCell selectAllCell = new CheckboxCell();
286-
Header<Boolean> selectAllHeader = new Header<Boolean>(selectAllCell) {
287-
private boolean checked = false;
288-
@Override
289-
public Boolean getValue() {
290-
return checked;
291-
}};
292-
selectAllHeader.setUpdater(value -> {
293-
List<StrippedLeaderboardDTO> visibleEvents = leaderboardsProvider.getList();
294-
for (StrippedLeaderboardDTO e : visibleEvents) {
295-
refreshableLeaderboardsSelectionModel.setSelected(e, value);
296-
}
297-
value = !value;
298-
});
283+
final Header<Boolean> selectAllHeader = leaderboardTableSelectionColumn.createHeader();
299284
leaderboardsTable.addColumn(leaderboardTableSelectionColumn, selectAllHeader);
300285
leaderboardsTable.addColumn(leaderboardsNameColumn, stringMessages.leaderboardName());
301286
leaderboardsTable.addColumn(leaderboardsRacesColumn, stringMessages.races());
@@ -401,22 +386,7 @@ public int hashCode(StrippedLeaderboardDTO t) {
401386
return t.getName().hashCode();
402387
}
403388
}, groupDetailsProvider, groupDetailsTable);
404-
groupDetailsTableSelectionColumn.setSortable(false);
405-
CheckboxCell groupDetailsSelectAllCell = new CheckboxCell();
406-
Header<Boolean> groupDetailsSelectAllHeader = new Header<Boolean>(groupDetailsSelectAllCell) {
407-
private boolean checked = false;
408-
@Override
409-
public Boolean getValue() {
410-
return checked;
411-
}
412-
};
413-
groupDetailsSelectAllHeader.setUpdater(value -> {
414-
List<StrippedLeaderboardDTO> visibleLeaderboardsInGroup = groupDetailsProvider.getList();
415-
for (StrippedLeaderboardDTO leaderboard : visibleLeaderboardsInGroup) {
416-
groupDetailsTableSelectionColumn.getSelectionModel().setSelected(leaderboard, value);
417-
}
418-
value = !value;
419-
});
389+
final Header<Boolean> groupDetailsSelectAllHeader = groupDetailsTableSelectionColumn.createHeader();
420390
groupDetailsTable.setWidth("100%");
421391
groupDetailsTable.addColumn(groupDetailsTableSelectionColumn, groupDetailsSelectAllHeader);
422392
groupDetailsTable.addColumn(groupDetailsNameColumn, stringMessages.leaderboardName());
@@ -627,23 +597,8 @@ public int hashCode(LeaderboardGroupDTO t) {
627597
return t.getId().hashCode();
628598
}
629599
}, groupsFilterablePanel.getAllListDataProvider(), groupsTable);
630-
leaderboardTableSelectionColumn.setSortable(false);
631-
CheckboxCell groupsSelectAllCell = new CheckboxCell();
632-
Header<Boolean> groupsSelectAllHeader = new Header<Boolean>(groupsSelectAllCell) {
633-
private boolean checked = false;
634-
@Override
635-
public Boolean getValue() {
636-
return checked;
637-
}
638-
};
639-
groupsSelectAllHeader.setUpdater(value -> {
640-
List<LeaderboardGroupDTO> visibleGroups = groupsProvider.getList();
641-
for (LeaderboardGroupDTO group : visibleGroups) {
642-
refreshableGroupsSelectionModel.setSelected(group, value);
643-
}
644-
value = !value;
645-
});
646-
groupsTable.setWidth("100%");
600+
final Header<Boolean> groupsSelectAllHeader = leaderboardTableSelectionColumn.createHeader();
601+
groupsTable.setWidth("100%");
647602
groupsTable.addColumn(leaderboardTableSelectionColumn, groupsSelectAllHeader);
648603
groupsTable.addColumn(groupNameColumn, stringMessages.name());
649604
groupsTable.addColumn(groupDescriptionColumn, stringMessages.description());

java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaListComposite.java

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import java.util.List;
1414

1515
import com.google.gwt.cell.client.AbstractCell;
16-
import com.google.gwt.cell.client.CheckboxCell;
1716
import com.google.gwt.core.client.GWT;
1817
import com.google.gwt.event.shared.HandlerRegistration;
1918
import com.google.gwt.safehtml.shared.SafeHtml;
@@ -306,21 +305,7 @@ public String getValue(RegattaDTO leaderboard) {
306305
stringMessages);
307306
actionsColumn.addAction(RegattaConfigImagesBarCell.ACTION_CHANGE_ACL, DefaultActions.CHANGE_ACL,
308307
regattaDTO -> configACL.openDialog(regattaDTO));
309-
regattaSelectionCheckboxColumn.setSortable(false);
310-
CheckboxCell selectAllCell = new CheckboxCell();
311-
Header<Boolean> selectAllHeader = new Header<Boolean>(selectAllCell) {
312-
private boolean checked = false;
313-
@Override
314-
public Boolean getValue() {
315-
return checked;
316-
}};
317-
selectAllHeader.setUpdater(value -> {
318-
List<RegattaDTO> visibleRegattas = regattaListDataProvider.getList();
319-
for (RegattaDTO e : visibleRegattas) {
320-
refreshableRegattaMultiSelectionModel.setSelected(e, value);
321-
}
322-
value = !value;
323-
});
308+
final Header<Boolean> selectAllHeader = regattaSelectionCheckboxColumn.createHeader();
324309
table.addColumn(regattaSelectionCheckboxColumn, selectAllHeader);
325310
table.addColumn(regattaNameColumn, stringMessages.regattaName());
326311
table.addColumn(regattaCanBoatsOfCompetitorsChangePerRaceColumn, stringMessages.canBoatsChange());

0 commit comments

Comments
 (0)