CellTableヘッダーのチェックボックスのonClickの処理
質問
テキストとチェックボックスを含む列を持つCellTableを作成しようとしています。このチェックボックスは、[すべて選択]チェックボックスとして使用されます(下の図を参照してください。「cb」はチェックボックスです)。現在、Headerから派生したクラスを使用しており、そのrenderメソッドをオーバーライドして、テキストとチェックボックスを出力しています。onBrowserEvent()をオーバーライドしていますが、onChangeイベントのみが表示されます。これは、チェックボックスが正しく機能しないことを除いて正常に機能します。誰かがこれについて何か考えがありますか? ジェネラコディセタグプレ
チェックボックスで発生している問題は、チェックボックスがオンになっていない場合、最初は「チェック済み」プロパティがtrueであっても、チェックボックスを表示するには(少なくともChromeでは)2回クリックする必要があることです。ワンクリックで正しくチェックを外します。
ここにいくつかのコードがあります:
CellTable列を設定します: ジェネラコディセタグプレ
すべてのヘッダーを選択: ジェネラコディセタグプレ
解決
ヘッダーをレンダリングするたびにチェックボックスがオフになっているようです。これにより、セルテーブルが再レンダリングされるたびに選択状態が消去される可能性があります。
チェックされた状態を保存し、チェックボックスを状態とともにレンダリングしてみてください。あなたはallSelected
を使っている途中のようですが、それを使用していないだけです。
編集これは、Zanata用に作成したばかりの実用的な実装です( SearchResultsView.java )。 HasValueインターフェイスは、値の変更イベントを標準的な方法で処理できるように実装されています。レンダリングメソッドをオーバーライドしていません。オーバーライドする場合は、getValue()
を使用して、チェックボックスをオンにするかオフにするかを決定してください。選択/選択解除ロジックは、関連するプレゼンタークラスで処理されます( SearchResultsPresenter.java )。
ジェネラコディセタグプレ