     
 import flash.display.DisplayObject;
 import flash.events.Event;
+import flash.geom.Matrix;
+import flash.geom.Rectangle;
 import flash.text.TextFieldAutoSize;
 
 import mx.core.LayoutElementUIComponentUtils;
 import mx.core.UIComponent;
 import mx.core.UITextField;
 
+import spark.components.Grid;
 import spark.components.IGridItemRenderer;
 import spark.components.supportClasses.GridColumn;
 

    
    /**
     *  @private
     */
    override protected function measure():void
    {
        super.measure();
        
        // labelDisplay layout: padding of 3 on left and right and padding of 5 on top and bottom.
        
        measuredHeight = LayoutElementUIComponentUtils.getPreferredBoundsHeight(labelDisplay, null) + 6;
        measuredWidth = LayoutElementUIComponentUtils.getPreferredBoundsWidth(labelDisplay, null) + 10;
    }
    
    /**
     *  @private
     */
    override protected function updateDisplayList(width:Number, height:Number):void
    {
        super.updateDisplayList(width, height);

        // labelDisplay layout: padding of 5 on left and right and padding of 5 on top.
        
        labelDisplay.setActualSize(width - 10, height - 5);
        
        // GridLayout/layoutItemRenderers() assumes that after validating the renderer 
        // (see GridLayout/layoutGridElement) renderer.getPreferredBoundsHeight() will
        // return a value that reflects the column's current width.
        measuredHeight = LayoutElementUIComponentUtils.getPreferredBoundsHeight(labelDisplay, null) + 6;        
        
        labelDisplay.move(5, 5);
    }

        super();
    }
    
    /**
     *  Padding added to the labelDisplay's textWidth and textHeight properties to compute 
     *  the renderer's measured width and height.
     */
    private static const TEXT_WIDTH_PADDING:Number = 15;
    private static const TEXT_HEIGHT_PADDING:Number = 10;
    
    //--------------------------------------------------------------------------
    //
    //  Properties 
