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

org.jresearch.commons.gwt.client.model.localization.L18nStoreWithLoader Maven / Gradle / Ivy

package org.jresearch.commons.gwt.client.model.localization;

import java.util.List;

import org.fusesource.restygwt.client.Method;
import org.fusesource.restygwt.client.MethodCallback;
import org.fusesource.restygwt.client.REST;
import org.jresearch.commons.gwt.client.service.LocalizationRestService;
import org.jresearch.commons.gwt.shared.model.localization.LocaleModel;

import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import com.sencha.gxt.data.client.loader.RpcProxy;
import com.sencha.gxt.data.shared.loader.ListLoadConfig;
import com.sencha.gxt.data.shared.loader.ListLoadResult;
import com.sencha.gxt.data.shared.loader.ListLoadResultBean;
import com.sencha.gxt.data.shared.loader.ListLoader;
import com.sencha.gxt.data.shared.loader.LoadResultListStoreBinding;

@Singleton
public class L18nStoreWithLoader extends L18nStore {

	private final ListLoader> loader;

	@Inject
	public L18nStoreWithLoader(final LocalizationRestService service) {
		final RpcProxy> proxy = new RpcProxy>() {
			@Override
			public void load(final ListLoadConfig loadConfig, final AsyncCallback> callback) {
				REST.withCallback(new MethodCallback>() {
					@Override
					public void onFailure(final Method method, final Throwable exception) {
						callback.onFailure(exception);
					}

					@Override
					public void onSuccess(final Method method, final List response) {
						callback.onSuccess(new ListLoadResultBean<>(response));
					}
				}).call(service).getLanguages();
			}
		};
		loader = new ListLoader<>(proxy);
		loader.addLoadHandler(new LoadResultListStoreBinding>(this));
	}

	public ListLoader> getLoader() {
		return loader;
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy