/*---------------- 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.Geometry; import nl.idgis.giclient.geoma.LineSegment; import nl.idgis.giclient.geoma.Point; import nl.idgis.giclient.gui.mapviewer.MapGeometry; import nl.idgis.giclient.util.Pixel; import nl.idgis.giclient.config.Colors; class nl.idgis.giclient.gui.mapviewer.MapLineSegment extends MapGeometry { function performEvent(eventObject:Object):MapGeometry { var mapGeometry:MapGeometry = null; var mode:String = eventObject["mode"]; var type:String = eventObject["type"]; if ((mode == "GeneralEdit") && (type == "MouseDown")) { var double:Boolean = Boolean(eventObject["double"]); var delKey:Boolean = Boolean(eventObject["delKey"]); // TODO DEL & DOUBLE COMBO RULE if (delKey) { var superGeometry:Geometry = geometry.getSuperGeometry().getSuperGeometry(); if (superGeometry != null) { superGeometry.removeGeometry(geometry.getSuperGeometry()); _root["apiInterpreter"].onChangeGeometry(superGeometry, true); // TODO EVENT MODEL // TODO EVENT MODEL _parent._parent.draw(); _parent._parent.onChangeGeometry("ADDREMOVE"); } mapGeometry = this; } if (double) { var pixel:Pixel = Pixel(eventObject["pixel"]); var point:Point = geometryLayer.getMapViewer().pixel2Point(pixel.getX(), pixel.getY()); geometry.getSuperGeometry().addPointN(point, LineSegment(geometry).getN()); _root["apiInterpreter"].onChangeGeometry(geometry.getSuperGeometry(), true); // TODO EVENT MODEL if (_parent._parent instanceof MapGeometry) { // TODO EVENT MODEL _parent._parent.draw(); } _parent.onChangeGeometry("ADDREMOVE"); // TODO EVENT MODEL mapGeometry = this; } } return mapGeometry; } /* function drawAsNormal():Void { clear(); var lineSegment:LineSegment = LineSegment(geometry); var points:Array = lineSegment.getPoints(); var pixel0:Pixel = geometryLayer.getMapViewer().point2Pixel(points[0].getX(), points[0].getY()); var pixel1:Pixel = geometryLayer.getMapViewer().point2Pixel(points[1].getX(), points[1].getY()); moveTo(pixel0.getX(),pixel0.getY()); lineStyle(10, 0x000000, 0); lineTo(pixel1.getX(), pixel1.getY()); moveTo(pixel0.getX(),pixel0.getY()); lineStyle(1, Colors.editColor, 100); lineTo(pixel1.getX(), pixel1.getY()); }*/ function drawAsActive(geometry:Geometry):Void { clear(); var lineSegment:LineSegment = LineSegment(geometry); var points:Array = lineSegment.getPoints(); var pixel0:Pixel = geometryLayer.getMapViewer().point2Pixel(points[0].getX(), points[0].getY()); var pixel1:Pixel = geometryLayer.getMapViewer().point2Pixel(points[1].getX(), points[1].getY()); moveTo(pixel0.getX(),pixel0.getY()); lineStyle(10, 0x000000, 0); lineTo(pixel1.getX(), pixel1.getY()); moveTo(pixel0.getX(),pixel0.getY()); lineStyle(1, Colors.currentColor, 100); lineTo(pixel1.getX(), pixel1.getY()); } }