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

org.geomajas.gwt2.client.map.render.TileLevelRenderer Maven / Gradle / Ivy

The newest version!
/*
 * 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.map.render;

import com.google.web.bindery.event.shared.HandlerRegistration;

import org.geomajas.gwt2.client.event.TileLevelRenderedHandler;
import org.geomajas.gwt2.client.map.View;

/**
 * Renderer for a specific tile level for a layer based on fixed scales.
 *
 * @author Pieter De Graef
 */
public interface TileLevelRenderer {

	/**
	 * Get the tile level for this renderer. Tile levels have a fixed resolution for each layer. This means that a
	 * certain tile level may lie at different resolutions for different layers.
	 *
	 * @return The tile level.
	 */
	int getTileLevel();

	/**
	 * Render the required tiles for the given view. If the resolution in this view is not the resolution represented by
	 * this renderer, it will calculate the bounding box of the view on it's own resolution. It other words, the
	 * renderer will make sure the requested view will be rendered (but in it's own resolution).
	 *
	 * @param view The view to visualize.
	 */
	void render(View view);

	/**
	 * Cancel rendering. If there are any requests underway to the server, these can all be canceled.
	 */
	void cancel();

	/**
	 * Is the requested view rendered or not?
	 *
	 * @param view The view to check. It may be that the view has a different resolution than what is rendered in this
	 *             renderer. In that case, this renderer will calculate how that view applies on it's own resolution.
	 * @return true or false.
	 */
	boolean isRendered(View view);

	/**
	 * Add a handler for catching {@link TileLevelRenderedEvent}s.
	 *
	 * @param handler The handler to catch the events.
	 * @return A registration to the handler.
	 */
	HandlerRegistration addTileLevelRenderedHandler(TileLevelRenderedHandler handler);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy