GWT: модель множественного выбора не обновляет статус ячейки в некоторых случаях
Я использую GWT MultiSelectionModel в CellTable, в котором у меня есть флажок в одном столбце и виджет в другом столбце. Я добавил обработчики для обновления статуса выбора на основе кликов пользователей. Если пользователь нажимает на любую часть любого из столбцов при выборе ячейки, состояние обновляется правильно, и ячейка становится белой от светло-синего. Однако, если пользователь нажимает на флажок и ячейка выбрана, флажок снимается, но ячейка остается синей. Еще более странно: эта проблема не возникает, если у меня есть несколько точек останова до выполнения кода обновления статуса.
Во всех остальных случаях состояние ячейки и состояние флажка обновляются корректно. Обратите внимание, что я не использую интерфейс ProvidesKeys, так как объект не изменяется.
Кто-нибудь может мне с этим помочь? Спасибо за вашу помощь.
2 ответа
Вы пытались использовать CheckBoxCell
для вашего столбца флажка и, в частности, CheckboxCell(boolean dependsOnSelection, boolean handlesSelection)
конструктор (мимоходом true
к обоим параметрам)?
У меня почти такая же проблема, когда я использую MultiSelectionModel. Мой обходной путь - видеть столбец флажка как особый, а затем обрабатывать его вручную. Сказать:
myDataGrid.addCellPreviewHandler(
@Override
public void onCellPreview(final CellPreviewEvent<MyCellData> event){
if("click".equals(event.getNativeEvent().getType()) && 0 != event.getColumn()){
doWhatYouWant();
}
}
)