org.jresearch.commons.gwt.client.service.CustomServiceTools Maven / Gradle / Ivy
package org.jresearch.commons.gwt.client.service;
import java.util.List;
import javax.annotation.Nonnull;
import org.jresearch.commons.gwt.shared.loader.GxtLoadConfig;
import org.jresearch.commons.gwt.shared.loader.LoadConfig;
import org.jresearch.commons.gwt.shared.service.IReadDomainServiceAsync;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.sencha.gxt.data.shared.loader.PagingLoadResult;
import com.sencha.gxt.data.shared.loader.PagingLoadResultBean;
/** Helper class to create data loader by remote service */
public abstract class CustomServiceTools, M, S extends IReadDomainServiceAsync> extends CustomTools {
@Nonnull private final S service;
public CustomServiceTools(@Nonnull final S service) {
assert service != null;
this.service = service;
}
@Override
public void customLoad(final C loadConfig, final AsyncCallback> callback) {
getService().getAll(loadConfig.asLoadConfig(), new AsyncCallback>() {
@Override
public void onFailure(final Throwable caught) {
callback.onFailure(caught);
}
@Override
public void onSuccess(final List result) {
callback.onSuccess(new PagingLoadResultBean<>(result, result.size(), 0));
}
});
}
@Nonnull
public S getService() {
return service;
}
}