/*---------------- 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.gui.mapviewer.CircleInputFrame; import nl.idgis.giclient.config.Colors; import nl.idgis.giclient.geoma.Circle; 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.MapViewerSelectByGeometry; import nl.idgis.giclient.util.Strings; class nl.idgis.giclient.modes.MapViewerSelectByCircle extends MapViewerSelectByGeometry { private var geometryInputFrame:CircleInputFrame = null; private var mv:MapViewer = null; function performPress(mapViewer:MapViewer,pressX:Number,pressY:Number, point:Point):Void { this.mapViewer = mapViewer; if(newGeometry){ selectionGeometry = null; newGeometry = false; } if (point == null) { point = mapViewer.pixel2Point(mapViewer._xmouse, mapViewer._ymouse); } if (selectionGeometry == null) { if (selectionMapGeometry != null) { removeMapGeometry(mapViewer); } var points:Array = new Array(point, point); var linearRing:LinearRing = new LinearRing(point.getSRS(), points); selectionGeometry = new Circle(point.getSRS(), linearRing); selectionMapGeometry = MapGeometry(mapViewer.getGeometryLayer().addMapGeometry(selectionGeometry, MapGeometry.SELECTION, Colors.selectionGeometryColor, "")); selectionMapGeometry.onChangeGeometry(); 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); geometryInputFrame = CircleInputFrame(_root.frameWork["frames"]["textInputFrame"].getScrollContent()); } else { _root.frameWork["frames"]["textInputFrame"].removeMovieClip(); setSelection(); newGeometry = true; showBufferFrame(); } mv = mapViewer; } function catchUserInput(radius:Number):Void{ if (radius == null) { newGeometry = true; selectionMapGeometry.removeMovieClip(); _root.frameWork["frames"]["textInputFrame"].removeMovieClip(); } else { Circle(selectionGeometry).setRadius(radius); selectionMapGeometry.onChangeGeometry(); _root.frameWork["frames"]["textInputFrame"].removeMovieClip(); setSelection(); newGeometry = true; showBufferFrame(mapViewer); } } function performMouseMove(mapViewer:MapViewer):Void { if (!newGeometry) { var point:Point = mapViewer.pixel2Point(mapViewer._xmouse,mapViewer._ymouse); selectionGeometry.setPointXY(point.getX(), point.getY()); selectionMapGeometry.onChangeGeometry(); // TODO EVENT MODEL geometryInputFrame.onChangeGeometry(); // ?? } } }