1 package net.systemeD.potlatch2.controller {
3 import net.systemeD.potlatch2.EditController;
4 import net.systemeD.halcyon.connection.*;
5 import net.systemeD.halcyon.Globals;
7 public class DragPOINode extends ControllerState {
8 private var isDraggingStarted:Boolean = false;
9 private var isNew:Boolean = false;
11 private var downX:Number;
12 private var downY:Number;
13 private var dragstate:uint=NOT_MOVED;
14 private const NOT_DRAGGING:uint=0;
15 private const NOT_MOVED:uint=1;
16 private const DRAGGING:uint=2;
18 public function DragPOINode(node:Node, event:MouseEvent, newNode:Boolean) {
25 override public function processMouseEvent(event:MouseEvent, entity:Entity):ControllerState {
27 if (event.type==MouseEvent.MOUSE_UP) {
28 return new SelectedPOINode(firstSelected as Node);
30 } else if ( event.type == MouseEvent.MOUSE_MOVE) {
32 if (dragstate==NOT_DRAGGING) {
34 } else if (dragstate==NOT_MOVED && Math.abs(downX - event.localX) < 3 && Math.abs(downY - event.localY) < 3) {
46 private function dragTo(event:MouseEvent):ControllerState {
47 (firstSelected as Node).lat = controller.map.coord2lat(event.localY);
48 (firstSelected as Node).lon = controller.map.coord2lon(event.localX);
52 public function forceDragStart():void {
56 override public function enterState():void {
57 controller.map.setHighlight(firstSelected, { selected: true } );
58 Globals.vars.root.addDebug("**** -> "+this);
60 override public function exitState(newState:ControllerState):void {
61 controller.map.setHighlight(firstSelected, { selected: false } );
62 Globals.vars.root.addDebug("**** <- "+this);
64 override public function toString():String {