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();
    }
  }
)
Другие вопросы по тегам