/** * Author: Bob Chen */ package com.jcommerce.gwt.client.service; import java.util.HashMap; import java.util.List; import java.util.Map; import com.extjs.gxt.ui.client.data.BasePagingLoader; import com.extjs.gxt.ui.client.data.PagingLoadConfig; import com.extjs.gxt.ui.client.data.PagingLoadResult; import com.extjs.gxt.ui.client.data.RpcProxy; import com.google.gwt.user.client.rpc.AsyncCallback; import com.jcommerce.gwt.client.IShopServiceAsync; import com.jcommerce.gwt.client.form.BeanObject; import com.jcommerce.gwt.client.util.MyRpcProxy; public class PagingListService extends RemoteService { public BasePagingLoader getLoader(final String model, final List<String> wantedFields) { Map<String,List<String>> _wantedFields = new HashMap<String, List<String>>(); _wantedFields.put(model, wantedFields); return getLoader(model, _wantedFields); } public BasePagingLoader getLoader(final String model, final Map<String,List<String>> wantedFields) { // if (model == null) { // throw new RuntimeException("model = null"); // } // // final IShopServiceAsync service = getService(); // MyProxy proxy = new MyProxy() { // public void load(Object loadConfig, AsyncCallback callback) { // service.getPagingList(model, criteria, wantedFields, (PagingLoadConfig) loadConfig, callback); // } // }; // // // loader // BasePagingLoader loader = new BasePagingLoader(proxy); // loader.setRemoteSort(true); // // return loader; return getLoader(model, null, wantedFields); } public BasePagingLoader<PagingLoadResult<BeanObject>> getLoader(final String model, final Criteria criteria, final Map<String,List<String>> wantedFields) { if (model == null) { throw new RuntimeException("model = null"); } final IShopServiceAsync service = getService(); MyRpcProxy<PagingLoadResult<BeanObject>> proxy = new MyRpcProxy<PagingLoadResult<BeanObject>>() { public void load(Object loadConfig, AsyncCallback callback) { service.getPagingList(model, criteria, wantedFields == null ? null : wantedFields.get(model), (PagingLoadConfig) loadConfig, callback); } }; proxy.setCriteria(criteria); // loader BasePagingLoader<PagingLoadResult<BeanObject>> loader = new BasePagingLoader<PagingLoadResult<BeanObject>>(proxy); loader.setRemoteSort(true); return loader; } public BasePagingLoader getLoader(final String model) { // if (model == null) { // throw new RuntimeException("model = null"); // } // // final IShopServiceAsync service = getService(); // MyProxy proxy = new MyProxy() { // public void load(Object loadConfig, AsyncCallback callback) { // service.getPagingList(model, criteria, (PagingLoadConfig) loadConfig, callback); // } // }; // // // loader // BasePagingLoader loader = new BasePagingLoader(proxy); // loader.setRemoteSort(true); // // return loader; return getLoader(model, null, null); } public BasePagingLoader getLoader(final String model, final Criteria criteria) { // if (model == null) { // throw new RuntimeException("model = null"); // } // // final IShopServiceAsync service = getService(); // MyProxy proxy = new MyProxy() { // public void load(Object loadConfig, AsyncCallback callback) { // service.getPagingList(model, criteria, (PagingLoadConfig) loadConfig, callback); // } // }; // proxy.setCriteria(criteria); // // // loader // BasePagingLoader loader = new BasePagingLoader(proxy); // loader.setRemoteSort(true); // // return loader; return getLoader(model, criteria, null); } public abstract class MyProxy extends RpcProxy { Criteria criteria = null; public void setCriteria(Criteria criteria) { this.criteria = criteria; } } }