java - GWT CellTable con selección de casilla de verificación y evento de clic de fila
gwt-2.2-celltable (2)
¡Encontré una solución! En lugar de usar createCheckboxManager()
, use createCustomManager()
pasando por argumento un EventTranslator
que extienda el CheckboxEventTranslator
y haga una delegación del método translateSelectionEvent
, interceptando solo los eventos ignorados por el super ( CheckboxEventTranslator
).
El código fuente:
table.setSelectionModel(selectionModel,
DefaultSelectionEventManager.createCustomManager(
new DefaultSelectionEventManager.CheckboxEventTranslator<T>() {
@Override
public SelectAction translateSelectionEvent(CellPreviewEvent<T> event) {
SelectAction action = super.translateSelectionEvent(event);
if (action.equals(SelectAction.IGNORE)) {
GWT.log("DO WHAT YOU WANT!!!");
return SelectAction.IGNORE;
}
return action;
}
}
)
);
¿Cómo llamar a un método cuando se hace clic en una fila utilizando el modelo de selección de casilla de verificación?
Estoy configurando el modelo de selección de casilla de verificación de esta manera:
table.setSelectionModel(selectionModel,
DefaultSelectionEventManager.<T> createCheckboxManager(0));
Crea una función a la que llamas,
table.setSelectionModel(selectionModel, ClassName.myMethod(0));
static <T> DefaultSelectionEventManager<T> myMethod(int column) {
//call whatever functions you want
return DefaultSelectionEventManager.<T> createCheckboxManager(column);
}