问题
How to call a method when some row is clicked using the checkbox selection model?
I'm setting the checkbox selection model like this:
table.setSelectionModel(selectionModel,
DefaultSelectionEventManager.<T> createCheckboxManager(0));
回答1:
I found a solution! Instead of using createCheckboxManager()
, use createCustomManager()
passing by argument an EventTranslator
that extends the CheckboxEventTranslator
and do a delegation of the translateSelectionEvent
method, intercepting only the events ignored by the super (CheckboxEventTranslator
).
The source code:
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;
}
}
)
);
回答2:
Create a function that you call,
table.setSelectionModel(selectionModel, ClassName.myMethod(0));
static <T> DefaultSelectionEventManager<T> myMethod(int column) {
//call whatever functions you want
return DefaultSelectionEventManager.<T> createCheckboxManager(column);
}
来源:https://stackoverflow.com/questions/5637598/gwt-celltable-with-checkbox-selection-and-on-row-click-event