0
我正在使用SmartGWT在GAE上編寫GWT項目。SmartGWT - 凌駕tranformRequest和transformResponse
我有一個DB對象,每個都有一個「父」對象和「兒子」,我用TreeGrid來表示它們。我已經有了一個GWT-RPC服務來獲取給定節點的兒子。
我現在需要的是以某種方式擴展DataSource類st當打開一個樹節點時,我將能夠使用我自己的服務去獲取它的子 - 然後將它們返回爲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