X-Git-Url: https://git.openstreetmap.org/potlatch2.git/blobdiff_plain/b6e4b82a190989240657256ab2689828efdc39b0..fb12e33b54092b49dadd8759985c405d982c457d:/net/systemeD/potlatch2/controller/NoSelection.as diff --git a/net/systemeD/potlatch2/controller/NoSelection.as b/net/systemeD/potlatch2/controller/NoSelection.as index d55103b8..83bdb057 100644 --- a/net/systemeD/potlatch2/controller/NoSelection.as +++ b/net/systemeD/potlatch2/controller/NoSelection.as @@ -1,55 +1,37 @@ package net.systemeD.potlatch2.controller { import flash.events.*; + import flash.display.*; import net.systemeD.potlatch2.EditController; import net.systemeD.halcyon.connection.*; import net.systemeD.halcyon.Map; + import net.systemeD.halcyon.MapPaint; + import net.systemeD.halcyon.vectorlayers.VectorLayer; import net.systemeD.halcyon.Globals; public class NoSelection extends ControllerState { public function NoSelection() { } - + override public function processMouseEvent(event:MouseEvent, entity:Entity):ControllerState { var focus:Entity = getTopLevelFocusEntity(entity); - if ( event.type == MouseEvent.CLICK ) { - if ( focus is Way ) { - return new SelectedWay(focus as Way); - } else if ( focus is Node ) { - // *** select node - Globals.vars.root.addDebug("- selected POI from NoSelection"); - } - } else if (event.type==MouseEvent.MOUSE_UP && focus==null && map.dragstate!=map.DRAGGING) { + if (event.type==MouseEvent.MOUSE_UP && focus==null && map.dragstate!=map.DRAGGING) { map.dragstate=map.NOT_DRAGGING; + var undo:CompositeUndoableAction = new CompositeUndoableAction("Begin way"); var startNode:Node = controller.connection.createNode( {}, controller.map.coord2lat(event.localY), - controller.map.coord2lon(event.localX)); - var way:Way = controller.connection.createWay({}, [startNode]); - return new DrawWay(way, true); - } else if ( event.type == MouseEvent.MOUSE_OVER ) { - controller.map.setHighlight(focus, { hover: true }); - } else if ( event.type == MouseEvent.MOUSE_OUT ) { - controller.map.setHighlight(focus, { hover: false }); - } else if ( event.type == MouseEvent.MOUSE_DOWN ) { + controller.map.coord2lon(event.localX), undo.push); + var way:Way = controller.connection.createWay({}, [startNode], undo.push); + MainUndoStack.getGlobalStack().addAction(undo); + return new DrawWay(way, true, false); } + var cs:ControllerState = sharedMouseEvents(event, entity); + if (cs) return cs; return this; } - public static function getTopLevelFocusEntity(entity:Entity):Entity { - if ( entity is Node ) { - for each (var parent:Entity in entity.parentWays) { - return parent; - } - return entity; - } else if ( entity is Way ) { - return entity; - } else { - return null; - } - } - override public function enterState():void { Globals.vars.root.addDebug("**** -> "+this); }