GWT: модель множественного выбора в некоторых случаях не обновляет статус таблицы ячеек.

Я использую GWT MultiSelectionModel в CellTable, в котором у меня есть флажок в одном столбце и виджет в другом столбце. Я добавил обработчики для обновления статуса выбора на основе кликов пользователя. Если пользователь щелкает любую часть любого столбца, когда ячейка выбрана, статус обновляется правильно, и ячейка меняет цвет со светло-голубого на белый. Однако, если пользователь щелкает флажок и ячейка выбрана, флажок снимается, но ячейка по-прежнему остается синей. Еще более странно: эта проблема не возникает, если у меня есть несколько точек останова до выполнения кода обновления статуса.

Во всех остальных случаях состояние ячейки и состояние флажка обновляются правильно. Обратите внимание, что я не использую интерфейс ProvidesKeys, поскольку объект не меняется.

Кто-нибудь может мне с этим помочь? Спасибо за вашу помощь.


person AshD    schedule 01.06.2013    source источник


Ответы (2)


Пробовали ли вы использовать CheckBoxCell для столбца флажка и, в частности, CheckboxCell(boolean dependsOnSelection, boolean handlesSelection) (путем передачи true в оба параметра)?

person Andrea Boscolo    schedule 01.06.2013

У меня почти такая же проблема, когда я использую MultiSelectionModel. Каков мой обходной путь, так это увидеть столбец флажка как особый, а затем справиться с ним вручную. Сказать:

myDataGrid.addCellPreviewHandler(
  @Override
  public void onCellPreview(final CellPreviewEvent<MyCellData> event){
    if("click".equals(event.getNativeEvent().getType()) && 0 != event.getColumn()){
      doWhatYouWant();
    }
  }
)
person dongxu    schedule 01.06.2013