/*---------------- 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.Envelope; import nl.idgis.giclient.geoma.Point; import nl.idgis.giclient.gis.CentreScale; import nl.idgis.giclient.gui.mapviewer.MapViewer; import nl.idgis.giclient.modes.MapViewerAction; class nl.idgis.giclient.modes.MapViewerZoomIn implements MapViewerAction { function enter(mapViewer:MapViewer):Void { } function exit(mapViewer:MapViewer):Void { } function performPress(mapViewer:MapViewer,pressX:Number,pressY:Number, worldPoint:Point):Void { mapViewer.zoomDragging = true; mapViewer["mapCustomCursor"].setDragging(true); } function performRelease(mapViewer:MapViewer):Void { } function performMouseUp(mapViewer:MapViewer):Void { var rectX2:Number = mapViewer._xmouse; var rectY2:Number = mapViewer._ymouse; if (mapViewer.zoomDragging) { mapViewer.zoomDragging = false; if ((Math.abs(mapViewer.rectX - rectX2) <= mapViewer.clickTolerance) && (Math.abs(mapViewer.rectY - rectY2) <= mapViewer.clickTolerance)) { var coordX:Number = mapViewer.ruler.getGIS().getCurrentCentreScale().getCoordX(mapViewer.mapWidth, rectX2, mapViewer.ruler.getGIS().getCoordPixFactor()); var coordY:Number = mapViewer.ruler.getGIS().getCurrentCentreScale().getCoordY(mapViewer.mapHeight, rectY2, mapViewer.ruler.getGIS().getCoordPixFactor()); mapViewer.ruler.getGIS().zoomIn(coordX, coordY); } else { var currentCentreScale:CentreScale = mapViewer.ruler.getGIS().getCurrentCentreScale(); var envelope:Envelope = currentCentreScale.toEnvelopeWithBox(mapViewer.mapWidth, mapViewer.mapHeight, mapViewer.rectX, mapViewer.rectY, rectX2, rectY2, mapViewer.ruler.getGIS().getCoordPixFactor()); var newCentreScale:CentreScale = envelope.toCentreScale(Stage.width, Stage.height - 100, mapViewer.ruler.getGIS().getCoordPixFactor()); mapViewer.ruler.getGIS().setCurrentCentreScale(newCentreScale.getCentreX(), newCentreScale.getCentreY(), newCentreScale.getScale()); } } } function performMouseMove(mapViewer:MapViewer):Void { } function performDrag(mapViewer:MapViewer):Void { mapViewer["dragBox"].clear(); mapViewer["dragBox"].lineStyle(1, 0x000000, 100); mapViewer["dragBox"].moveTo(mapViewer.rectX, mapViewer.rectY); mapViewer["dragBox"].lineTo(mapViewer._xmouse, mapViewer.rectY); mapViewer["dragBox"].lineTo(mapViewer._xmouse, mapViewer._ymouse); mapViewer["dragBox"].lineTo(mapViewer.rectX, mapViewer._ymouse); mapViewer["dragBox"].lineTo(mapViewer.rectX, mapViewer.rectY); } function onKeyPress(mapViewer:MapViewer):Void { } }