2011-01-16 16 views
0

私はAsyncCallsを作成しており、データでいくつかのコレクション(java.util.List)を埋めています。これらのコールバックにはかなりの時間がかかります。コレクションが満杯になるまでに、UIは完全にロードされます。GWT - java.util.Listの変更時にウィジェットを更新します。

ただし、データを表示するはずのウィジェットには何も表示されません。彼らが初期化されたとき、コレクションはまだ空だったので。

私のコレクションに何とか私のウィジェットを強制する必要があります「ねえ、私はあなたのためにそのデータを持っています!しかし、私はどのようにわからない。私はいくつかのオブザーバーのパターンを考えていたが、私は本当に確実ではない。

どうすればこの問題を解決できますか?良い例があります!

答えて

3

データバインディングはコールバックで行う必要があります。だから、あなたのウィジェットはsetData()関数を持っているか、それをコンストラクタに残しておきたいなら、コールバックを取得したらウィジェットを初期化する必要があります。 GWT Doc

service.getCollection(dbName, new AsyncCallback() { 
    public void onSuccess(Items[] result) { 
    // Fill the data (result) here 
    } 

    public void onFailure(Throwable caught) { 

    } 
}); 
+0

完璧に簡単! :) – Xorty

0

より良いアプローチはMVP patternを使用することです。

関連する問題