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