Suponiendo que lo que quiere es obligar a la casilla de verificación para la "selección" y seleccionar fácilmente un grupo de elementos programáticamente (sutileza: seleccione elementos, lo que dará como resultado que se marque la casilla de verificación, en lugar de marcar casillas), usará un MultiSelectionModel
.
Encontrará código de ejemplo en http://gwt.google.com/samples/Showcase/Showcase.html#!CwCellTable, es decir:
final MultiSelectionModel<ContactInfo> selectionModel = new MultiSelectionModel<ContactInfo>(
ContactDatabase.ContactInfo.KEY_PROVIDER);
cellTable.setSelectionModel(selectionModel,
DefaultSelectionEventManager.<ContactInfo> createCheckboxManager());
…
Column<ContactInfo, Boolean> checkColumn = new Column<ContactInfo, Boolean>(
new CheckboxCell(true, false)) {
@Override
public Boolean getValue(ContactInfo object) {
// Get the value from the selection model.
return selectionModel.isSelected(object);
}
};
cellTable.addColumn(checkColumn, SafeHtmlUtils.fromSafeConstant("<br/>"));
cellTable.setColumnWidth(checkColumn, 40, Unit.PX);
Luego, para seleccionar un elemento (y tiene su casilla de verificación comprueba automáticamente), usted sólo tiene que hacer:
selectionModel.setSelected(item, true);
y de manera similar puede obtener el conjunto de todos los elementos seleccionados con selectionModel.getSelectedSet()
.
Gracias por la respuesta, pero no es mi caso: no quiero marcar/desmarcar mediante una selección de tabla, sino más bien usando un conjunto de botones fuera de la mesa. El enlace se encuentra entre el elemento de la columna y un botón fuera de la tabla – Noya
El controlador de clic del botón * simplemente * tiene que "seleccionar" los elementos apropiados en el modelo de selección ('clear()' + 'setSelected (item, true)') , y el estado de las casillas de verificación se actualizaría en consecuencia (automáticamente). –
@ThomasBroyer ¿Cómo podría seleccionar todos los elementos en varias páginas con un 'AsyncDataProvider'? – Nobody