0

GWT2.1CellTableで機能するプログレスバーセルを作成中です。これまでのところ、他のセルレンダリングと一貫性のある方法で、セルが単純なhtmlプログレスバーをレンダリングしています。新しい値を受け取った後、どういうわけかプログレスバーのセルの値を更新する必要があります。AsyncDataProviderでupdateRowDataメソッドを使用する必要がありますか?

また、CellTable / DataProvider / ..アーキテクチャ内にポーリングコードを含める論理的な場所はありますか?多分PollingAsyncDataProviderか何か。あなたのアイデアを共有してください!

返信ありがとうございます!

4

1 に答える 1

0

AsyncDataProviderはデータをコピーせず、データを参照するだけなので、updateRowDataを使用したくない場合は、プロバイダーの値を直接変更できます。たとえば、データプロバイダーを次のようなリストで既に初期化した場合。

asyncDataProvider.updateRowData(0, listOfProgressValues);

次のように、listOfProgressValuesを使用してプロバイダーのデータに直接アクセスできます。

listOfProgressValues.set(2, 0.4)

ただし、CellTableでredrawを呼び出さない限り、変更は表示されません。すべてがHTMLでレンダリングされるため、単一のセルのみを再描画する方法がわかりません。

ポーリングコードをDataProviderの外に配置すると思います。私はDataProviderのアイデアを、データをテーブルにプッシュするためのメカニズムと見なしています。それだけです。DataProviderが表示を再描画したり、プログラムの他の部分と対話したりする責任を負わせたくありません。

于 2010-10-07T14:32:52.530 に答える