Here is a simple column header that selects/ de-selects all rows in a table. When all rows are checked, the header becomes checked automatically. Clicking o the checkbox in the header causes either to select or de-select all rows.

I am using the selection model and the data list provider to do the selection magic.
May not work for everyone….
And here is my custom header:
public final class CheckboxHeader extends Header { private final MultiSelectionModel selectionModel; private final ListDataProvider provider; public CheckboxHeader(MultiSelectionModel selectionModel, ListDataProvider provider) { super(new CheckboxCell()); this.selectionModel = selectionModel; this.provider = provider; } @Override public Boolean getValue() { boolean allItemsSelected = selectionModel.getSelectedSet().size() == provider .getList().size(); return allItemsSelected; } @Override public void onBrowserEvent(Context context, Element elem, NativeEvent event) { InputElement input = elem.getFirstChild().cast(); Boolean isChecked = input.isChecked(); for (TYPE element : provider.getList()) { selectionModel.setSelected(element, isChecked); } } }





