Some more doco.
[potlatch2.git] / net / systemeD / potlatch2 / mapfeatures / EditorFactory.as
index bfa0ab0..af09546 100644 (file)
@@ -5,16 +5,20 @@ package net.systemeD.potlatch2.mapfeatures {
     import flash.display.*;
 
 
     import flash.display.*;
 
 
+       /** Instantiates specific editing controls such as textboxes and speed limit selectors depending on the tags of a given entity. This class has child classes that instantiate the appropriate
+       * editors correctly.
+       */
        public class EditorFactory {
            private static const PRIORITY_HIGHEST:uint = 10;
            private static const PRIORITY_HIGH:uint = 8;
            private static const PRIORITY_NORMAL:uint = 5;
            private static const PRIORITY_LOW:uint = 2;
            private static const PRIORITY_LOWEST:uint = 0;
        public class EditorFactory {
            private static const PRIORITY_HIGHEST:uint = 10;
            private static const PRIORITY_HIGH:uint = 8;
            private static const PRIORITY_NORMAL:uint = 5;
            private static const PRIORITY_LOW:uint = 2;
            private static const PRIORITY_LOWEST:uint = 0;
-       
+
+        /** Returns a specific subclass of EditorFactory as appropriate for the type: "freetext", "checkbox", "choice", "slider", "number", "speed", "route", "turn". Otherwise null. */
         public static function createFactory(inputType:String, inputXML:XML):EditorFactory {
             switch ( inputType ) {
         public static function createFactory(inputType:String, inputXML:XML):EditorFactory {
             switch ( inputType ) {
-            
+
             case "freetext": return new FreeTextEditorFactory(inputXML);
             case "checkbox": return new CheckboxEditorFactory(inputXML);
             case "choice": return new ChoiceEditorFactory(inputXML);
             case "freetext": return new FreeTextEditorFactory(inputXML);
             case "checkbox": return new CheckboxEditorFactory(inputXML);
             case "choice": return new ChoiceEditorFactory(inputXML);
@@ -23,12 +27,13 @@ package net.systemeD.potlatch2.mapfeatures {
             case "speed": return new SpeedEditorFactory(inputXML);
             case "route": return new RouteEditorFactory(inputXML);
             case "turn": return new TurnRestrictionEditorFactory(inputXML);
             case "speed": return new SpeedEditorFactory(inputXML);
             case "route": return new RouteEditorFactory(inputXML);
             case "turn": return new TurnRestrictionEditorFactory(inputXML);
-            
+
             }
             }
-            
+
             return null;
         }
 
             return null;
         }
 
+        /** Translates a priority string ("highest") to a const (PRIORITY_HIGHEST). */
         public static function getPriority(priority:String):uint {
             switch ( priority ) {
             case "highest": return PRIORITY_HIGHEST;
         public static function getPriority(priority:String):uint {
             switch ( priority ) {
             case "highest": return PRIORITY_HIGHEST;
@@ -39,32 +44,42 @@ package net.systemeD.potlatch2.mapfeatures {
             default: return PRIORITY_NORMAL;
             }
         }
             default: return PRIORITY_NORMAL;
             }
         }
-        
+
+        /** Default Presence behaviour: onTagMatch */
         public var presence:Presence = Presence.getPresence("onTagMatch");
         public var presence:Presence = Presence.getPresence("onTagMatch");
+
+        /** Default sorting: PRIORITY_NORMAL */
         public var sortOrder:uint = PRIORITY_NORMAL;
         public var sortOrder:uint = PRIORITY_NORMAL;
+
+        /** Default category: "Standard" */
         public var category:String = "Standard";
         public var category:String = "Standard";
-        
+
         private var _name:String;
         private var _description:String;
         private var _name:String;
         private var _description:String;
-        
+
+        /** The default EditorFactory extracts name, description and category from the provided map features XML subtree. */
         public function EditorFactory(inputXML:XML) {
             _name = String(inputXML.@name);
             _description = String(inputXML.@description);
             category = String(inputXML.@category);
         }
         public function EditorFactory(inputXML:XML) {
             _name = String(inputXML.@name);
             _description = String(inputXML.@description);
             category = String(inputXML.@category);
         }
-        
+
+        /** Whether the tags on an entity correspond to those for the edit control. By default, returns true - must be overriden by more useful behaviour. */
         public function areTagsMatching(entity:Entity):Boolean {
             return true;
         }
 
         public function areTagsMatching(entity:Entity):Boolean {
             return true;
         }
 
+        /** A subclass must provide an actual edit control. This returns null. */
         public function createEditorInstance(entity:Entity):DisplayObject {
             return null;
         }
         public function createEditorInstance(entity:Entity):DisplayObject {
             return null;
         }
-        
+
+        /** The name of the field/tag/edit control, as defined in map features XML. */
         public function get name():String {
             return _name;
         }
 
         public function get name():String {
             return _name;
         }
 
+        /** The label given to the edited field, as defined in map features XML. */
         public function get description():String {
             return _description;
         }
         public function get description():String {
             return _description;
         }