/* * 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.plugin.jsapi.gwt.client.exporter.map.controller.measuredistance; import org.geomajas.annotation.Api; import org.geomajas.gwt.client.controller.MeasureDistanceContext; import org.geomajas.gwt.client.controller.MeasureDistanceController; import org.geomajas.gwt.client.controller.MeasureDistanceHandler; import org.geomajas.plugin.jsapi.client.map.Map; import org.geomajas.plugin.jsapi.client.map.controller.InfoHandler; import org.geomajas.plugin.jsapi.client.map.controller.MapController; import org.timepedia.exporter.client.Export; import org.timepedia.exporter.client.ExportPackage; /** * SmartGWT implementation of {@link MeasureDistanceController}. * * @author Jan De Moerloose * @since 1.0.0 */ @Api @Export @ExportPackage("org.geomajas.jsapi.map.controller") public class MeasureDistanceInfoControllerImpl extends MapController { private MeasureDistanceController controller; private InfoHandler infoHandler; public MeasureDistanceInfoControllerImpl() { } public MeasureDistanceInfoControllerImpl(Map map, MeasureDistanceController controller) { super(map, controller); this.controller = controller; } @Override public void setInfoHandler(InfoHandler infoHandler) { this.infoHandler = infoHandler; controller.clearHandlers(); controller.addHandler(new MeasureDistanceHandlerImpl()); } /** * Passes through to {@link InfoHandler}. * * @author Jan De Moerloose * */ private class MeasureDistanceHandlerImpl implements MeasureDistanceHandler { @Override public void onChange(State state, MeasureDistanceContext context) { infoHandler.onInfo(new MeasureDistanceInfo(state, context)); } } }