Решение пользователя 905374 действительно сработало. В своем первом сообщении я упомянул, что уже пробовал решение с selectionModel
, и оно не сработало. Это было частично правдой. Это работает, но только если таблица НЕ содержит CheckboxCell
.
Следуя рабочему и нерабочему примеру. Я думаю, что это может быть ошибка, но я не уверен, что я что-то пропустил.
final CellTable<LicenceDto> licenseTable = new CellTable<LicenceDto>();
final SingleSelectionModel<LicenceDto> selectionModel = new SingleSelectionModel<LicenceDto>();
licenseTable.setSelectionModel(selectionModel);
//--- If I add this column, the selection does work.
Column<LicenceDto, String> workingColumn = new Column<LicenceDto, String>(new TextCell()) {
@Override
public String getValue(LicenceDto object) {
return "Works";
}
};
workingColumn.setFieldUpdater(new FieldUpdater<LicenceDto, String>() {
@Override
public void update(int index, LicenceDto object, String value) {
;
}
});
licenseTable.addColumn(workingColumn);
//--- If I add this column, the selection does NOT work anymore.
Column<LicenceDto, Boolean> notWorkingColumn = new Column<LicenceDto, Boolean>(new CheckboxCell(true, true)) {
@Override
public Boolean getValue(LicenceDto object) {
return object.getEnabled();
}
};
notWorkingColumn.setFieldUpdater(new FieldUpdater<LicenceDto, Boolean>() {
@Override
public void update(int index, LicenceDto object, Boolean value) {
presenter.enableLicense(object, value);
}
});
licenseTable.addColumn(notWorkingColumn);
Вы даже можете объединить несколько ячеек и добавить их в таблицу (например, LinkActionCell
и т. д.). Пока нет CheckboxCell
, синий выбор с SingleSelectionModel
работает как шарм. Кто-нибудь видит, что я делаю неправильно с этим CheckboxCell
или это ошибка?
ОБНОВЛЕНИЕ
Это была просто моя ошибка использования. Проблема заключалась в том, что я установил handlesSelection
в true
(второй параметр конструктора CheckboxCell
), даже если думал, что ничего не обрабатываю. Установка его на false
решает проблему.
Итог: используйте модель выбора (например, SingleSelectionModel
) и не устанавливайте для параметра handlesSelection
значение true
конструктора CheckboxCell
значение true, если вы не обрабатываете выбор самостоятельно.
person
Adrian
schedule
14.02.2013