All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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;
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy