MultipleSelectionModel が添付された CellTable があります。データを変更した後、テーブルを更新し、新しいデータをサーバーから再ロードする必要があります。
ただし、新しく読み込まれたデータのチェックボックスの状態を更新する必要があります。そのため、selectionModel.getSelectedSet() を使用して選択ボックスをクエリできますが、テーブル内でこれらのオブジェクトを見つけて「チェック」する必要があります。
オブジェクトのコンテンツが変更され、GWT コンポーネントの内部でマップのキーとして使用されるため、これらのオブジェクトに対して、equals/hashCode で ID のみを使用する「ラッパー」を作成する必要がありました。
したがって、基本的には、イベントを発生させる前に selectedSet を保存し、それを繰り返して setSelected メソッドを呼び出します。
Set<T> selectedSet = selectionModel.getSelectedSet();
RangeChangeEvent.fire(table,...)
if (selectedSet != null)
for (T obj : selectedSet) {
selectionModel.setSelected(obj,true);
}
}
より良いアプローチはありますか?