org.jresearch.commons.gwt.client.service.CustomTools Maven / Gradle / Ivy
package org.jresearch.commons.gwt.client.service;
import javax.annotation.Nonnull;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.sencha.gxt.data.shared.loader.PagingLoadConfig;
import com.sencha.gxt.data.shared.loader.PagingLoadResult;
import com.sencha.gxt.data.shared.loader.PagingLoader;
/** Helper class to create data loader by remote service */
public abstract class CustomTools {
@SuppressWarnings("unused")
@Nonnull
public PagingLoader> getLoader(final C config) {
final PagingLoader> loader = new PagingLoader>(new ServiceRpcProxy(this)) {
@Override
protected C newLoadConfig() {
return createLoadConfig();
}
};
loader.setRemoteSort(true);
loader.addLoaderHandler(new ReentrantLoadPreventListener>());
if (config != null) {
loader.useLoadConfig(config);
}
return loader;
}
abstract protected C createLoadConfig();
@SuppressWarnings("null")
public PagingLoader> getLoader() {
return getLoader((C) null);
}
public abstract void customLoad(C loadConfig, AsyncCallback> callback);
}