/*
* 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.geometry.Coordinate;
import org.geomajas.gwt.client.controller.MeasureDistanceContext;
import org.geomajas.gwt.client.controller.MeasureDistanceHandler.State;
import org.geomajas.gwt.client.spatial.geometry.Geometry;
import org.timepedia.exporter.client.Export;
import org.timepedia.exporter.client.ExportPackage;
import org.timepedia.exporter.client.Exportable;
/**
* Info object for {@link MeasureDistanceInfoControllerImpl}.
*
* @author Jan De Moerloose
* @since 1.15.0
*
*/
@Api
@Export
@ExportPackage("org.geomajas.jsapi.map.controller")
public class MeasureDistanceInfo implements MeasureDistanceContext, Exportable {
private State state;
private MeasureDistanceContext context;
/**
* Constructor for GWT exporter.
*/
public MeasureDistanceInfo() {
}
/**
* Create an info for the current state and context.
*
* @param state
* @param context
*/
public MeasureDistanceInfo(State state, MeasureDistanceContext context) {
this.state = state;
this.context = context;
}
@Override
public Geometry getGeometry() {
return context.getGeometry();
}
@Override
public double getPreviousDistance() {
return context.getPreviousDistance();
}
@Override
public double getCurrentDistance() {
return context.getCurrentDistance();
}
@Override
public double getPreviousArea() {
return context.getPreviousArea();
}
@Override
public double getCurrentArea() {
return context.getCurrentArea();
}
@Override
public double getRadius() {
return context.getRadius();
}
@Override
public Coordinate getPreviousCoordinate() {
return context.getPreviousCoordinate();
}
@Override
public Coordinate getCurrentCoordinate() {
return context.getCurrentCoordinate();
}
/**
* Get the state of the controller.
* @see {@link MeasureDistanceHandler.State}
*
* @return
*/
public String getState() {
return state.name();
}
}