/*---------------- FILE HEADER --------------------------------------- This file is part of Geoide. Copyright (C) 2005-2006 by: IDgis B.V. http://www.idgis.nl This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Contact: Herman Assink IDgis bv P.O. Box 15 7450 AA Holten The Netherlands E-Mail: herman.assink@idgis.nl * @version 1.4.0 * @author IDgis team * ------------------------------------------------------------------------*/ import nl.idgis.giclient.geoma.LinearRing; import nl.idgis.giclient.geoma.Point; import nl.idgis.giclient.gui.mapviewer.MapGeometry; import nl.idgis.giclient.gui.mapviewer.MapViewer; import nl.idgis.giclient.modes.MapViewerEditCreate; import nl.idgis.giclient.geoma.Circle; import nl.idgis.giclient.util.Strings; class nl.idgis.giclient.modes.MapViewerCreateCircle extends MapViewerEditCreate { private var mv:MapViewer = null; function MapViewerCreateCircle(mapViewer:MapViewer) { this.mv = mapViewer; } function performPress(mapViewer:MapViewer,pressX:Number,pressY:Number, worldPoint:Point):Void { var point:Point = null; if (worldPoint == null) { point = mapViewer.pixel2Point(pressX, pressY); } else { point = worldPoint; } if (mapViewer.getGeometryLayer().getSelectedMapGeometry() == null) { createGeometry(mapViewer, point); } else { _root["apiInterpreter"].onChangeGeometry(mapViewer.getGeometryLayer().getSelectedMapGeometry().getGeometry(), true); mapViewer.getGeometryLayer().setSelectedMapGeometry(null); mapViewer.ruler.setActiveMode(mapViewer.ruler.getDefaultEditMode()); _root.frameWork["frames"]["textInputFrame"].removeMovieClip(); } } function performMouseMove(mapViewer:MapViewer):Void { var selectedMapGeometry:MapGeometry = mapViewer.getGeometryLayer().getSelectedMapGeometry(); if (selectedMapGeometry != null && mapViewer.isRollingOver()) { var point:Point = mapViewer.pixel2Point(mapViewer._xmouse,mapViewer._ymouse); Circle(selectedMapGeometry.getGeometry()).setPointXY(point.getX(), point.getY()); selectedMapGeometry.onChangeGeometry(); } } private function createGeometry(mapViewer:MapViewer, point:Point):Void { var points:Array = new Array(point, point); var linearRing:LinearRing = new LinearRing(point.getSRS(), points); var circle:Circle = new Circle(point.getSRS(), linearRing); addGeometry(mapViewer, circle); setDrawingMapGeometry(mapViewer); var initObject:Object = {scrollContent: "lib://TextInputFrame", paneTitle: Strings.getFile("Geoide").getString("UserInput"), isScrolling: false, resizable: false, hasShader: false, doorzichtig:false, _x:100, _y:100}; initObject["contentProperties"] = new Object(); initObject["contentProperties"]["question"] = //"Voer de straal van de cirkel in:"; (Strings.getFile("Geoide").getString("InputCircleRadius")); initObject["contentProperties"]["inputType"] = "Number"; initObject["contentProperties"]["returnObject"] = this; _root.frameWork.makeFrame("textInputFrame",initObject,200,100); mv = mapViewer; } function catchUserInput(rad:Number):Void { if (rad == null) { _root.frameWork["frames"]["textInputFrame"].removeMovieClip(); } else { if (rad > 0) { var selectedMapGeometry:MapGeometry = mv.getGeometryLayer().getSelectedMapGeometry(); Circle(selectedMapGeometry.getGeometry()).setRadius(rad, true); selectedMapGeometry.onChangeGeometry(); _root["apiInterpreter"].onChangeGeometry(selectedMapGeometry.getGeometry(), true); mv.getGeometryLayer().setSelectedMapGeometry(null); mv.ruler.setActiveMode(mv.ruler.getDefaultEditMode()); _root.frameWork["frames"]["textInputFrame"].removeMovieClip(); } } } }