|
|
|
|
|
|
|
|
private CheckBox selectAllCheckBox; |
|
|
private CheckBox selectAllCheckBox; |
|
|
private boolean userSelectionAllowed = true; |
|
|
private boolean userSelectionAllowed = true; |
|
|
private boolean enabled = true; |
|
|
private boolean enabled = true; |
|
|
|
|
|
private HandlerRegistration headerClickHandler; |
|
|
|
|
|
|
|
|
SelectionColumn(final Renderer<Boolean> selectColumnRenderer) { |
|
|
SelectionColumn(final Renderer<Boolean> selectColumnRenderer) { |
|
|
super(selectColumnRenderer); |
|
|
super(selectColumnRenderer); |
|
|
|
|
|
|
|
|
}); |
|
|
}); |
|
|
selectAllCheckBox.setValue(selected); |
|
|
selectAllCheckBox.setValue(selected); |
|
|
|
|
|
|
|
|
addHeaderClickHandler(new HeaderClickHandler() { |
|
|
|
|
|
@Override |
|
|
|
|
|
public void onClick(GridClickEvent event) { |
|
|
|
|
|
if (!userSelectionAllowed) { |
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
CellReference<?> targetCell = event.getTargetCell(); |
|
|
|
|
|
int defaultRowIndex = getHeader().getRows() |
|
|
|
|
|
.indexOf(getDefaultHeaderRow()); |
|
|
|
|
|
|
|
|
headerClickHandler = addHeaderClickHandler( |
|
|
|
|
|
new HeaderClickHandler() { |
|
|
|
|
|
@Override |
|
|
|
|
|
public void onClick(GridClickEvent event) { |
|
|
|
|
|
if (!userSelectionAllowed) { |
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
if (targetCell.getColumnIndex() == 0 && targetCell |
|
|
|
|
|
.getRowIndex() == defaultRowIndex) { |
|
|
|
|
|
selectAllCheckBox.setValue( |
|
|
|
|
|
!selectAllCheckBox.getValue(), true); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
CellReference<?> targetCell = event |
|
|
|
|
|
.getTargetCell(); |
|
|
|
|
|
int defaultRowIndex = getHeader().getRows() |
|
|
|
|
|
.indexOf(getDefaultHeaderRow()); |
|
|
|
|
|
|
|
|
|
|
|
if (targetCell.getColumnIndex() == 0 |
|
|
|
|
|
&& targetCell |
|
|
|
|
|
.getRowIndex() == defaultRowIndex) { |
|
|
|
|
|
selectAllCheckBox.setValue( |
|
|
|
|
|
!selectAllCheckBox.getValue(), |
|
|
|
|
|
true); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
// Select all with space when "select all" cell is active |
|
|
// Select all with space when "select all" cell is active |
|
|
addHeaderKeyUpHandler(new HeaderKeyUpHandler() { |
|
|
addHeaderKeyUpHandler(new HeaderKeyUpHandler() { |
|
|
|
|
|
|
|
|
getEscalator().getBody().refreshRows(0, |
|
|
getEscalator().getBody().refreshRows(0, |
|
|
getEscalator().getBody().getRowCount()); |
|
|
getEscalator().getBody().getRowCount()); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void cleanup() { |
|
|
|
|
|
if (headerClickHandler != null) { |
|
|
|
|
|
headerClickHandler.removeHandler(); |
|
|
|
|
|
headerClickHandler = null; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
|
|
|
|
|
|
return; |
|
|
return; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (this.selectionColumn != null) { |
|
|
|
|
|
selectionColumn.cleanup(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
if (this.selectColumnRenderer != null) { |
|
|
if (this.selectColumnRenderer != null) { |
|
|
if (this.selectColumnRenderer instanceof ComplexRenderer) { |
|
|
if (this.selectColumnRenderer instanceof ComplexRenderer) { |
|
|
// End of Life for the old selection column renderer. |
|
|
// End of Life for the old selection column renderer. |