/**
* Author: Bob Chen
*/
package com.jcommerce.gwt.client.service;
import java.util.List;
import com.extjs.gxt.ui.client.data.BaseListLoader;
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;
public class ListService extends RemoteService {
public void listBeans(String model, final Listener listener) {
listBeans(model, null, listener);
}
public abstract class MyProxy extends RpcProxy {
Criteria criteria = null;
public void setCriteria(Criteria criteria) {
this.criteria = criteria;
}
}
public BaseListLoader getLoader(final String model) {
return getLoader(model, null,null);
}
public BaseListLoader getLoader(final String model, final Criteria criteria, final 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.getList(model, criteria, wantedFields, callback);
}
};
proxy.setCriteria(criteria);
// loader
BaseListLoader loader = new BaseListLoader(proxy);
// loader.setRemoteSort(true);
return loader;
}
public void listBeans(final String model, String field, Long value, final Listener listener) {
Criteria criteria = new Criteria();
criteria.addCondition(new Condition(field, Condition.EQUALS, value));
listBeans(model, criteria, listener);
}
public void countBeans(final String model, Criteria criteria, final Listener listener) {
if (model == null) {
throw new RuntimeException("model = null");
}
final IShopServiceAsync service = getService();
service.countBeans(model, criteria, new AsyncCallback<Integer>() {
public synchronized void onSuccess(Integer count) {
if (listener != null) {
listener.onSuccess(count);
}
}
public synchronized void onFailure(Throwable caught) {
System.out.println("ListService: getList onFailure(model="+model+", error="+caught);
if (listener != null) {
listener.onFailure(caught);
}
}
});
}
public void listBeans(final String model, Criteria criteria, final Listener listener) {
if (model == null) {
throw new RuntimeException("model = null");
}
final IShopServiceAsync service = getService();
service.getList(model, criteria, new AsyncCallback<List<BeanObject>>() {
public synchronized void onSuccess(List<BeanObject> result) {
if (listener != null) {
listener.onSuccess(result);
}
}
public synchronized void onFailure(Throwable caught) {
System.out.println("ListService: getList onFailure(model="+model+", error="+caught);
if (listener != null) {
listener.onFailure(caught);
}
}
});
}
public static abstract class Listener {
public void onSuccess(int count) {
}
public void onSuccess(List<BeanObject> beans) {
}
public void onFailure(Throwable caught) {
}
}
}