user905374 の解決策は実際に機能しました。最初の投稿で、既に a を使用して解決策を試しましたが、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
それともバグがありますか?
アップデート
単なる私の使い方ミスでした。問題は、何も処理しないと思っていても(コンストラクターの 2 番目のパラメーター) に設定handlesSelection
したことです。に設定すると問題が解決します。true
CheckboxCell
false
結論:自分で選択を処理しない場合は、選択モデル (例: SingleSelectionModel
) を使用し、コンストラクターのhandlesSelection
パラメーターを true に設定しないでください。true
CheckboxCell