/* * This is part of Geomajas, a GIS framework, http://www.geomajas.org/. * * Copyright 2008-2015 Geosparc nv, http://www.geosparc.com/, Belgium. * * The program is available in open source according to the GNU Affero * General Public License. All contributions in this program are covered * by the Geomajas Contributors License Agreement. For full licensing * details, see LICENSE.txt in the project root. */ package org.geomajas.gwt2.client.event; import com.google.gwt.event.shared.GwtEvent; import org.geomajas.annotation.Api; import org.geomajas.gwt2.client.map.render.TileLevelRenderer; /** * Event that is fired when a tile level has been rendered. This is used by resolution-based layer renderers, and it is * up to them to determine when that is. * * @author Pieter De Graef * @since 2.0.0 */ @Api(allMethods = true) public class TileLevelRenderedEvent extends GwtEvent<TileLevelRenderedHandler> { private final double resolution; private final TileLevelRenderer renderer; /** * Create an event for the specified resolution. * * @param resolution the resolution that was rendered * @deprecated use {@link #TileLevelRenderedEvent(TileLevelRenderer)} instead */ @Deprecated public TileLevelRenderedEvent(double resolution) { this.resolution = resolution; this.renderer = null; } /** * Create an event for the specified renderer. * * @param renderer the renderer that has just rendered. * @since 2.1.0 */ public TileLevelRenderedEvent(TileLevelRenderer renderer) { this.renderer = renderer; this.resolution = -1; } @Override public Type<TileLevelRenderedHandler> getAssociatedType() { return TileLevelRenderedHandler.TYPE; } @Override protected void dispatch(TileLevelRenderedHandler handler) { handler.onScaleLevelRendered(this); } /** * Get the resolution that was just rendered. * * @return The resolution that was just rendered. * @deprecated use {@link #getRenderer()} and get the resolution from the tileLevel. */ @Deprecated public double getResolution() { if (resolution == -1) { throw new UnsupportedOperationException( "Trying to get the resolution, but this event only provides the renderer"); } return resolution; } /** * Get the renderer that has just rendered. * * @return the renderer. * @since 2.1.0 */ public TileLevelRenderer getRenderer() { return renderer; } }