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");
- }
- } 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;
- return new CreateWay(event);
- } 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 ) {
+ var undo:CompositeUndoableAction = new CompositeUndoableAction("Begin way");
+ var startNode:Node = controller.connection.createNode(
+ {},
+ controller.map.coord2lat(event.localY),
+ 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);
}