1 package net.systemeD.potlatch2 {
2 import net.systemeD.halcyon.Map;
3 import net.systemeD.halcyon.MapController;
4 import net.systemeD.halcyon.connection.*;
5 import net.systemeD.potlatch2.controller.*;
9 public class EditController implements MapController {
12 private var tagViewer:TagViewer;
14 private var state:ControllerState;
15 private var _connection:Connection;
18 public function EditController(map:Map, tagViewer:TagViewer) {
20 this.tagViewer = tagViewer;
21 setState(new NoSelection());
23 map.parent.addEventListener(MouseEvent.MOUSE_MOVE, mapMouseEvent);
24 map.parent.addEventListener(MouseEvent.MOUSE_UP, mapMouseEvent);
25 map.parent.addEventListener(MouseEvent.MOUSE_DOWN, mapMouseEvent);
26 map.parent.addEventListener(MouseEvent.CLICK, mapMouseEvent);
27 map.parent.addEventListener(KeyboardEvent.KEY_UP, keyUpHandler);
30 public function setActive():void {
31 map.setController(this);
32 _connection = map.connection;
35 public function get map():Map {
39 public function get connection():Connection {
43 public function setTagViewer(entity:Entity):void {
44 tagViewer.setEntity(entity);
47 private function keyUpHandler(event:KeyboardEvent):void {
48 trace("key code "+event.keyCode);
49 var newState:ControllerState = state.processKeyboardEvent(event);
53 private function mapMouseEvent(event:MouseEvent):void {
54 map.stage.focus = map.parent;
56 var mapLoc:Point = map.globalToLocal(new Point(event.stageX, event.stageY));
57 event.localX = mapLoc.x;
58 event.localY = mapLoc.y;
60 var newState:ControllerState = state.processMouseEvent(event, null);
64 public function entityMouseEvent(event:MouseEvent, entity:Entity):void {
65 map.stage.focus = map.parent;
66 //if ( event.type == MouseEvent.MOUSE_DOWN )
67 event.stopPropagation();
69 var mapLoc:Point = map.globalToLocal(new Point(event.stageX, event.stageY));
70 event.localX = mapLoc.x;
71 event.localY = mapLoc.y;
73 var newState:ControllerState = state.processMouseEvent(event, entity);
77 public function setState(newState:ControllerState):void {
78 if ( newState == state )
83 newState.setController(this);
84 newState.setPreviousState(state);