package com.jcommerce.gwt.client.panels; import com.extjs.gxt.ui.client.data.BaseListLoader; import com.extjs.gxt.ui.client.data.RpcProxy; import com.jcommerce.gwt.client.service.Criteria; import com.jcommerce.gwt.client.service.RemoteService; public class MyPagingListService extends RemoteService { public BaseListLoader getLoader(final String model) { if (model == null) { throw new RuntimeException("model = null"); } /** * This class is just an attempt to use DataReader to convert data. * It works well, however, we decide not to adopt this way in our application. */ // to bypass a compile error when build with ant // [javac] D:\JCommerce\JCommerceGae\admin\com\jcommerce\gwt\client\panels\MyPagingListService.java:60: // type parameter com.extjs.gxt.ui.client.data.ListLoadResult is not within its bound // final ISpecialServiceAsync service = getSpecialService(); // MyProxy<ListLoadResult> proxy = new MyProxy<ListLoadResult>() { // public void load(Object loadConfig, AsyncCallback<ListLoadResult> callback) { // service.getMyPaymentMetaList((ListLoadConfig)loadConfig, callback); // } // }; // // // convert from ListLoadResult<Map<String, Object>> to ListLoadResult<BeanObject> // DataReader<ListLoadResult> reader = new DataReader<ListLoadResult>() { // // public ListLoadResult<BeanObject> read(Object loadConfig, Object data) { // System.out.println("my reader: "+data.getClass().getName()); // List<BeanObject> destdatas = new ArrayList<BeanObject>(); // ListLoadResult<Map<String, Object>> casteddata = (ListLoadResult)data; // List<Map<String, Object>> origdatas = casteddata.getData(); // for(Map<String, Object> origdata:origdatas) { // destdatas.add(new BeanObject(ModelNames.PAYMENT_META, origdata)); // } // // ListLoadResult<BeanObject> res = new BaseListLoadResult<BeanObject>(destdatas); // return res; // } // // }; // // loader // BaseListLoader loader = new BaseListLoader<ListLoadResult>(proxy, reader); // loader.setRemoteSort(true); // return loader; return null; } public abstract class MyProxy<D> extends RpcProxy<D> { Criteria criteria = null; public void setCriteria(Criteria criteria) { this.criteria = criteria; } } }