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

org.jresearch.commons.gwt.client.service.ReentrantLoadPreventListener Maven / Gradle / Ivy

package org.jresearch.commons.gwt.client.service;

import java.util.logging.Level;
import java.util.logging.Logger;

import org.jresearch.commons.gwt.client.resource.UtilsRs;

import com.sencha.gxt.data.shared.loader.BeforeLoadEvent;
import com.sencha.gxt.data.shared.loader.LoadEvent;
import com.sencha.gxt.data.shared.loader.LoadExceptionEvent;
import com.sencha.gxt.data.shared.loader.LoaderHandler;

public class ReentrantLoadPreventListener implements LoaderHandler {

	private static Logger LOGGER = Logger.getLogger("org.jresearch.commons.gwt.shared.service.CustomTools"); //$NON-NLS-1$

	private boolean loading = false;

	@Override
	public void onBeforeLoad(final BeforeLoadEvent le) {
		le.getLoadConfig();
		if (loading) {
			le.setCancelled(true);
			if (LOGGER.isLoggable(Level.INFO)) {
				LOGGER.log(Level.INFO, UtilsRs.FMT.doubleLoading(le.getLoadConfig()));
			}
		} else {
			loading = true;
			if (LOGGER.isLoggable(Level.FINER)) {
				LOGGER.log(Level.FINER, UtilsRs.FMT.loading(le.getLoadConfig()));
			}
		}
	}

	@Override
	public void onLoadException(final LoadExceptionEvent event) {
		loading = false;
	}

	@Override
	public void onLoad(final LoadEvent event) {
		loading = false;
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy