 
     /**
      *  TODO
-     *  -  
-     * 
+     *  - Remove implements IFormItem  
+     *  - Remove canvasLayout skin part once FormItemLayout is ready
+     *  - Remove measuredColumnWidths and layoutColumnWidths once 
+     *    FormItemLayout and FormLayout are ready
      * 
      * 
      *  ISSUES:
      *  - Ideally this would subclass Label, but Label is not a SkinnableComponent
-     *  - Should we use text or label property?
+     *  - Should we use text or label property? (PARB says label)
      *  - What if we don't implement column spanning?
      * 
      */ 

            return _layoutColumnWidths;
        }
        
        private var _label:String;
        private var labelChanged:Boolean = false;
                
        public function get label():String
        {
            return _label;
        }
        
        public function set label(value:String):void
        {
            if (value == _label)
                return;
            
            _label = value;
            labelChanged = true;
            invalidateProperties();
            
        }
        
        override protected function partAdded(partName:String, instance:Object):void
        {
            super.partAdded(partName, instance);
            
            if (instance == labelDisplay)
            {
                labelDisplay.text = label;
            }
        }
        
        override protected function commitProperties():void
        {
            super.commitProperties();

        //--------------------------------------------------------------------------
        
        /**
         *   A reference to the visual element that displays this FormItem's label.
         */
        [Bindable]
        [SkinPart(required="false")]
        public var labelDisplay:TextBase;
        
        
        [SkinPart(required="false")]
        public var canvasLayout:Canvas;
        
