create new ways w00t! and extend old ones
[potlatch2.git] / net / systemeD / potlatch2 / controller / NoSelection.as
1 package net.systemeD.potlatch2.controller {
2         import flash.events.*;
3     import net.systemeD.potlatch2.EditController;
4     import net.systemeD.halcyon.connection.*;
5
6     public class NoSelection extends ControllerState {
7         public function NoSelection() {
8         }
9  
10         override public function processMouseEvent(event:MouseEvent, entity:Entity):ControllerState {
11             var focus:Entity = getTopLevelFocusEntity(entity);
12             if ( event.type == MouseEvent.CLICK )
13                 if ( focus is Way )
14                     return new SelectedWay(focus as Way);
15                 else if ( focus is Node )
16                     trace("select poi");
17                 else if ( focus == null )
18                     return new CreateWay(event);
19             else if ( event.type == MouseEvent.MOUSE_OVER )
20                 controller.map.setHighlight(focus, "hover", true);
21             else if ( event.type == MouseEvent.MOUSE_OUT )
22                 controller.map.setHighlight(focus, "hover", false);
23                 
24             return this;
25         }
26         
27         public static function getTopLevelFocusEntity(entity:Entity):Entity {
28             if ( entity is Node ) {
29                 for each (var parent:Entity in entity.parentWays) {
30                     return parent;
31                 }
32                 return entity;
33             } else if ( entity is Way ) {
34                 return entity;
35             } else {
36                 return null;
37             }
38         }
39     }
40 }