私はGWTでSmartGWTを使用してGAEでプロジェクトを書いています。SmartGWT - tranformRequestとtransformResponseをオーバーライド
私は、それぞれが "父"オブジェクトと "息子"を持つオブジェクトを持つDBを持っており、それらを表現するためにTreeGridを使用しています。私はすでにGWT-RPCサービスを持っており、与えられたノードの子を取得します。
私が今必要とするのは、ツリーノードが開かれたときに何らかの形でDataSourceクラスを拡張することです。私自身のサービスを使用して息子をフェッチしてから、TreeGridが使用できるものとして返すことができます。 。
私はtransformRequestとtransformResponseをオーバーライドすると思いますが、どう考えているのか分かりません。すべてのコードサンプル/説明は非常に高く評価されます!
これは私がこれまで持っているものである - それもリモートで正しいだと確信していない:
budgetTree.setDataSource(new DataSource() {
@Override
protected Object transformRequest(final DSRequest dsRequest) {
expensesService.getExpensesByYear(2008,
new AsyncCallback<ExpenseRecord[]>() {
@Override
public void onSuccess(ExpenseRecord[] result) {
System.out.println("Returned " + result.length + " expense record ");
dsRequest.setAttribute("dsResult", result);
}
@Override
public void onFailure(Throwable caught) {
System.out.println("Failed to run query");
}
});
return dsRequest;
}
@Override
protected void transformResponse(DSResponse response, DSRequest request,
Object data) {
Record[] recs = request.getAttributeAsRecordArray("dsResult");
response.setData(recs);
super.transformResponse(response, request, data);
}
});
ありがとうございます!私はデフォルトのtransformResponse関数を使うべきですか、それともそれをオーバーライドする必要がありますか? – Yossale
transformResponse()をオーバーライドする必要がないレスポンスをさらに変換しない場合は、 – Abhijith