Skip to content

Commit d8a5416

Browse files
committed
bug6122: factored checkbox header creation into SelectionCheckboxColumn.createHeader
1 parent e9db8d1 commit d8a5416

File tree

2 files changed

+29
-24
lines changed

2 files changed

+29
-24
lines changed

java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/coursecreation/MarkPropertiesPanel.java

Lines changed: 2 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import com.google.gwt.user.cellview.client.AbstractCellTable;
2626
import com.google.gwt.user.cellview.client.Column;
2727
import com.google.gwt.user.cellview.client.ColumnSortEvent.ListHandler;
28+
import com.google.gwt.user.cellview.client.Header;
2829
import com.google.gwt.user.client.Window;
2930
import com.google.gwt.user.client.rpc.AsyncCallback;
3031
import com.google.gwt.user.client.ui.AbstractImagePrototype;
@@ -58,8 +59,6 @@
5859
import com.sap.sse.security.ui.client.component.EditOwnershipDialog;
5960
import com.sap.sse.security.ui.client.component.SecuredDTOOwnerColumn;
6061
import com.sap.sse.security.ui.client.component.editacl.EditACLDialog;
61-
import com.google.gwt.cell.client.CheckboxCell;
62-
import com.google.gwt.user.cellview.client.Header;
6362

6463
public class MarkPropertiesPanel extends FlowPanel implements FilterablePanelProvider<MarkPropertiesDTO>{
6564
private static AdminConsoleResources resources = GWT.create(AdminConsoleResources.class);
@@ -185,21 +184,7 @@ public int hashCode(MarkPropertiesDTO t) {
185184
return t.getUuid().hashCode();
186185
}
187186
}, filterableMarkProperties.getAllListDataProvider(), markPropertiesTable);
188-
final CheckboxCell selectAllCell = new CheckboxCell();
189-
Header<Boolean> selectAllHeader = new Header<Boolean>(selectAllCell) {
190-
@Override
191-
public Boolean getValue() {
192-
return false;
193-
}
194-
};
195-
checkColumn.setSortable(false);
196-
selectAllHeader.setUpdater(value -> {
197-
for (MarkPropertiesDTO mp : markPropertiesListDataProvider.getList()) {
198-
if (refreshableSelectionModel != null) {
199-
refreshableSelectionModel.setSelected(mp, value);
200-
}
201-
}
202-
});
187+
final Header<Boolean> selectAllHeader = checkColumn.createHeader();
203188
markPropertiesTable.addColumn(checkColumn, selectAllHeader);
204189
markPropertiesTable.setColumnWidth(checkColumn, 40, Unit.PX);
205190
// id
@@ -334,13 +319,6 @@ public void onSuccess(Void result) {
334319
markPropertiesTable.addColumn(actionsColumn, stringMessages.actions());
335320
refreshableSelectionModel = checkColumn.getSelectionModel();
336321
markPropertiesTable.setSelectionModel(checkColumn.getSelectionModel(), checkColumn.getSelectionManager());
337-
refreshableSelectionModel.addSelectionChangeHandler(e -> {
338-
if (refreshableSelectionModel.getSelectedSet().isEmpty()) {
339-
selectAllCell.setViewData(/* key */ selectAllHeader.getValue(), false);
340-
} else if (refreshableSelectionModel.getSelectedSet().size() == markPropertiesListDataProvider.getList().size()) {
341-
selectAllCell.setViewData(/* key */ selectAllHeader.getValue(), true);
342-
}
343-
});
344322
}
345323

346324
public void refreshMarkProperties() {

java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/celltable/SelectionCheckboxColumn.java

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.sap.sse.gwt.client.celltable;
22

33
import com.google.gwt.cell.client.Cell.Context;
4+
import com.google.gwt.cell.client.CheckboxCell;
45
import com.google.gwt.dom.client.BrowserEvents;
56
import com.google.gwt.dom.client.NativeEvent;
67
import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
@@ -83,6 +84,32 @@ private SelectionCheckboxColumn(BetterCheckboxCell checkboxCell, String checkbox
8384
this.checkboxColumnCellCSSClass = checkboxColumnCellCSSClass;
8485
this.selectionEventTranslator = createSelectionEventTranslator();
8586
this.selectionModel = createSelectionModel(entityIdentityComparator);
87+
this.setSortable(false);
88+
}
89+
90+
public Header<Boolean> createHeader() {
91+
final CheckboxCell selectAllCell = new CheckboxCell();
92+
final Header<Boolean> selectAllHeader = new Header<Boolean>(selectAllCell) {
93+
@Override
94+
public Boolean getValue() {
95+
return false;
96+
}
97+
};
98+
selectAllHeader.setUpdater(value -> {
99+
for (final T mp : listDataProvider.getList()) {
100+
if (selectionModel != null) {
101+
selectionModel.setSelected(mp, value);
102+
}
103+
}
104+
});
105+
selectionModel.addSelectionChangeHandler(e -> {
106+
if (selectionModel.getSelectedSet().isEmpty()) {
107+
selectAllCell.setViewData(/* key */ selectAllHeader.getValue(), false);
108+
} else if (selectionModel.getSelectedSet().size() == listDataProvider.getList().size()) {
109+
selectAllCell.setViewData(/* key */ selectAllHeader.getValue(), true);
110+
}
111+
});
112+
return selectAllHeader;
86113
}
87114

88115
/**

0 commit comments

Comments
 (0)