1 package net.systemeD.potlatch2.controller {
3 import flash.display.DisplayObject;
4 import flash.ui.Keyboard;
5 import net.systemeD.potlatch2.EditController;
6 import net.systemeD.halcyon.connection.*;
7 import net.systemeD.halcyon.MapPaint;
8 import net.systemeD.halcyon.WayUI;
9 import net.systemeD.halcyon.Globals;
11 public class SelectedMultiple extends ControllerState {
12 protected var initSelection:Array;
14 public function SelectedMultiple(sel:Array) {
15 initSelection=sel.concat();
18 override public function processMouseEvent(event:MouseEvent, entity:Entity):ControllerState {
19 if (event.type==MouseEvent.MOUSE_MOVE || event.type==MouseEvent.ROLL_OVER || event.type==MouseEvent.MOUSE_OUT) { return this; }
20 var focus:Entity = getTopLevelFocusEntity(entity);
22 if ( event.type == MouseEvent.MOUSE_DOWN && entity && event.ctrlKey ) {
24 controller.map.setHighlight(entity, { selected: toggleSelection(entity) });
25 controller.updateSelectionUI();
27 if (selectCount>1) { return this; }
28 return controller.findStateForSelection(selection);
30 var cs:ControllerState = sharedMouseEvents(event, entity);
31 return cs ? cs : this;
34 override public function processKeyboardEvent(event:KeyboardEvent):ControllerState {
35 var cs:ControllerState = sharedKeyboardEvents(event);
36 return cs ? cs : this;
39 override public function enterState():void {
40 selection=initSelection.concat();
41 for each (var entity:Entity in selection) {
42 controller.map.setHighlight(entity, { selected: true, hover: false });
44 controller.updateSelectionUI();
45 controller.map.setPurgable(selection,false);
46 Globals.vars.root.addDebug("**** -> "+this+" "+selection);
49 override public function exitState(newState:ControllerState):void {
50 controller.map.setPurgable(selection,true);
51 for each (var entity:Entity in selection) {
52 controller.map.setHighlight(entity, { selected: false, hover: false });
55 if (!newState.isSelectionState()) { controller.updateSelectionUI(); }
56 Globals.vars.root.addDebug("**** <- "+this);
59 override public function toString():String {
60 return "SelectedMultiple";