1 package net.systemeD.potlatch2 {
3 import flash.events.Event;
4 import flash.events.MouseEvent;
5 import mx.containers.Panel;
6 import net.systemeD.halcyon.connection.*;
7 import net.systemeD.potlatch2.controller.*;
8 import net.systemeD.potlatch2.tools.*;
11 Floating toolbox palette
14 ** Should have a close box, and be able to be activated from the top bar
15 ** Should be automatically positioned at bottom-right of canvas on init
16 ** Should float above tagViewer, not beneath it
17 ** Icons should be disabled depending on what's selected (setEntity can do this)
18 ** Straighten, circularise, reverse way direction, parallelise
19 ** Remove annoying Illustrator cruft from SVG icons!
23 public class Toolbox extends Panel{
25 private var entity:Entity;
26 private var controller:EditController;
28 public function Toolbox(){
32 public function init(controller:EditController):void {
33 this.controller=controller;
36 override protected function createChildren():void {
37 super.createChildren();
38 super.titleBar.addEventListener(MouseEvent.MOUSE_DOWN,handleDown);
39 super.titleBar.addEventListener(MouseEvent.MOUSE_UP,handleUp);
42 public function setEntity(entity:Entity):void {
46 private function handleDown(e:Event):void {
50 private function handleUp(e:Event):void {
54 // --------------------------------------------------------------------------------
55 // Individual toolbox actions
57 public function doDelete():void {
58 if (entity is Node) { controller.connection.unregisterPOI(Node(entity)); }
59 entity.remove(MainUndoStack.getGlobalStack().addAction);
61 if (controller.state is SelectedWayNode) {
62 controller.setState(new SelectedWay(SelectedWayNode(controller.state).selectedWay));
64 controller.setState(new NoSelection());
68 public function doQuadrilateralise():void {
70 Quadrilateralise.quadrilateralise(Way(entity));
74 public function doStraighten():void {
76 Straighten.straighten(Way(entity),controller.map);
80 public function doCircularise():void {
82 Circularise.circularise(Way(entity),controller.map);