我需要 GWT CellTable 的“自定义选择模型”。CellTable 中的一列是 Checkbox 列。
基本要求(都在下面的解决方案中工作):
- 行单击(不在复选框上),选择该行并取消选择所有其他行。
- 复选框选择应该只选择/取消选择该行。
以下是我正在使用的代码,但它非常非常慢。任何指导将不胜感激。
final SelectionModel<T> selectionModel = new MultiSelectionModel<T>();
dataTable.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)) {
selectionModel.clear();
return SelectAction.TOGGLE;
}
return action;
}
}
)
);
以下是为 CheckColumn 回调截取的代码。
Column<T, Boolean> checkColumn = new Column<T, Boolean>(
new CheckboxCell(true, false))
{
@Override
public Boolean getValue(T t)
{
// Get the value from the selection model.
return selectionModel.isSelected(t);
}
};