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.MOUSE_DOWN ) {
- if ( entity is Way ) {
- return new SelectedWay(focus as Way);
- } else if ( focus is Node ) {
- return new DragPOINode(entity as Node,event,false);
- } else if ( entity is Node && focus is Way ) {
- return new DragWayNode(focus as Way,entity as Node,event,false);
- }
- } 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]);
+ 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);
- } else if ( event.type == MouseEvent.ROLL_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 ) {
}
+ 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);
}