1 package net.systemeD.potlatch2.controller {
3 import flash.ui.Keyboard;
4 import net.systemeD.potlatch2.EditController;
5 import net.systemeD.halcyon.connection.*;
6 import net.systemeD.halcyon.MapPaint;
8 public class SelectedMarker extends ControllerState {
9 protected var initMarker:Marker;
10 protected var layer:MapPaint;
12 public function SelectedMarker(marker:Marker, layer:MapPaint) {
17 protected function selectMarker(marker:Marker):void {
18 if ( firstSelected is Marker && Marker(firstSelected)==marker )
22 editableLayer.setHighlight(marker, { selected: true });
24 controller.updateSelectionUI(layer);
28 protected function clearSelection(newState:ControllerState):void {
30 editableLayer.setHighlight(firstSelected, { selected: false });
32 if (!newState.isSelectionState()) { controller.updateSelectionUI(); }
36 override public function processMouseEvent(event:MouseEvent, entity:Entity):ControllerState {
37 if (event.type==MouseEvent.MOUSE_MOVE) { return this; }
38 if (event.type==MouseEvent.MOUSE_UP) { return this; }
39 var cs:ControllerState = sharedMouseEvents(event, entity);
40 return cs ? cs : this;
43 override public function processKeyboardEvent(event:KeyboardEvent):ControllerState {
44 switch (event.keyCode) {
46 var cs:ControllerState = sharedKeyboardEvents(event);
47 return cs ? cs : this;
50 public function deletePOI():ControllerState {
51 return new NoSelection();
54 override public function enterState():void {
55 selectMarker(initMarker);
56 editableLayer.setPurgable(selection,false);
59 override public function exitState(newState:ControllerState):void {
60 editableLayer.setPurgable(selection,true);
61 clearSelection(newState);
64 override public function toString():String {
65 return "SelectedMarker";