AsyncCallback
GWT-RPC サービスに接続してデータを取得する呼び出しがあります。そのデータを、クエリの結果を格納するための静的メソッドを持つクラスに格納しようとしています。ただし、静的データ メンバーにデータが入力されていないことに気付きました。AsyncCallback 呼び出しに SC.logWarn(...) を入れて AsyncCallback 呼び出しを「遅く」すると、静的データ メンバーが適切に読み込まれます。
final AsyncCallback<Set<MyData>> dataCallback =
new AsyncCallback<Set<MyData>>()
{
@Override
public void onSuccess(Set<MyData> aDataType)
{
for (MyData data : aDataType)
{
String someData = aDataType.getData();
Record rec = new Record();
rec.setAttribute("data", someData);
getDataSource().addData(rec);
}
LocalUiCache.setLocalCache(new ResultSet(getDataSource()));
}
};
MyDataService.RPC.getInstance().getData(dataCallback);
...
public class LocalUiCache
{
private static ResultSet localCache;
/**
* @return the localCache
*/
public static ResultSet getLocalCache()
{
return localCache;
}
/**
* @param aLocalCache the localCache to set
*/
public static void setLocalCache(ResultSet aLocalCache)
{
localCache = aLocalCache;
}
}