         // Finally, we'll add the in-line styles
         // to the head of the proto chain.
         inheritingStyles = styleDeclaration ?
-        				   styleDeclaration.addStyleToProtoChain(inheritChain, this) :
-        				   inheritChain;
+                           styleDeclaration.addStyleToProtoChain(inheritChain, this) :
+                           inheritChain;
 
         nonInheritingStyles = styleDeclaration ?
-        					  styleDeclaration.addStyleToProtoChain(nonInheritChain, this) :
-        					  nonInheritChain;
-    }
-
-    /**
-	 *  @inheritDoc
+                              styleDeclaration.addStyleToProtoChain(nonInheritChain, this) :
+                              nonInheritChain;
+    }
+
+    /**
+     *  @inheritDoc
      *  
      *  @langversion 3.0
      *  @playerversion Flash 9

     */
    public function getClassStyleDeclarations():Array
    {
		var className:String = getQualifiedClassName(this)
		className = className.replace("::", ".");

		var decls:Array = [];

		while (className != null &&
			   className != "mx.core.UIComponent" &&
			   className != "mx.core.UITextField")
		{
			var s:CSSStyleDeclaration =
				StyleManager.getStyleDeclaration(className);
			
			if (s)
			{
			 	decls.unshift(s);
			}
			
			try
			{
				className = getQualifiedSuperclassName(getDefinitionByName(className));
				className = className.replace("::", ".");
			}
			catch(e:ReferenceError)
			{
				className = null;
			}
		}	

		return decls;
    }

	//--------------------------------------------------------------------------
	//
	//  Event handlers
	//
	//--------------------------------------------------------------------------

	/**
	 *  The event handler to position the tooltip.
	 *
	 *  @param event The event object.
	 *  
	 *  @langversion 3.0
	 *  @playerversion Flash 9
	 *  @playerversion AIR 1.1
	 *  @productversion Flex 3
	 */
	protected function toolTipShowHandler(event:ToolTipEvent):void
	{
		var toolTip:IToolTip = event.toolTip;

		// Calculate global position of label.
        var sm:ISystemManager = systemManager.topLevelSystemManager;
        var sbRoot:DisplayObject = sm.getSandboxRoot();
        var screen:Rectangle;
		var pt:Point = new Point(0, 0);
		pt = localToGlobal(pt);
		pt = sbRoot.globalToLocal(pt);			
		
		toolTip.move(pt.x, pt.y + (height - toolTip.height) / 2);

        if (sm != sbRoot)
        {

        }
    }

    //--------------------------------------------------------------------------
    //
    //  Methods
    //
    //--------------------------------------------------------------------------

    /**
     *  If Flex calls the <code>LayoutManager.invalidateProperties()</code> 
     *  method on this ILayoutManagerClient, then
     *  this function is called when it's time to commit property values.
     *  
     *  @langversion 3.0
     *  @playerversion Flash 9
     *  @playerversion AIR 1.1
     *  @productversion Flex 3
     */
    public function validateProperties():void
    {
        invalidatePropertiesFlag = false;
        if (_listData)
        {
            var dg:DataGrid = DataGrid(_listData.owner);

            var column:DataGridColumn =
                dg.columns[_listData.columnIndex];

            text = _listData.label;
            
            if (_data is DataGridColumn)
                wordWrap = dg.columnHeaderWordWrap(column);
            else
                wordWrap = dg.columnWordWrap(column);
            
            if (DataGrid(_listData.owner).variableRowHeight)
                multiline = true;
            
            var dataTips:Boolean = dg.showDataTips;
            if (column.showDataTips == true)
                dataTips = true;
            if (column.showDataTips == false)
                dataTips = false;
            if (dataTips)
            {
                if (!(_data is DataGridColumn) && (textWidth > width 
                    || column.dataTipFunction || column.dataTipField 
                    || dg.dataTipFunction || dg.dataTipField))
                {
                    toolTip = column.itemToDataTip(_data);
                }
                else
                {
                    toolTip = null;
                }
            }
            else
            {
                toolTip = null;
            }
        }
        else
        {
            text = " ";
            toolTip = null;
        }
    }

    /**
     *  If Flex calls the <code>LayoutManager.invalidateSize()</code>
     *  method on this ILayoutManagerClient, then
     *  this function is called when it's time to do measurements.
     *
     *  @param recursive If <code>true</code>, call this method
     *  on the object's children.
     *  
     *  @langversion 3.0
     *  @playerversion Flash 9
     *  @playerversion AIR 1.1
     *  @productversion Flex 3
     */
    public function validateSize(recursive:Boolean = false):void
    {
        invalidateSizeFlag = false;
        validateNow();
    }

    /**
     *  If Flex calls <code>LayoutManager.invalidateDisplayList()</code> 
     *  method on this ILayoutManagerClient, then
     *  this function is called when it's time to update the display list.
     *  
     *  @langversion 3.0
     *  @playerversion Flash 9
     *  @playerversion AIR 1.1
     *  @productversion Flex 3
     */
    public function validateDisplayList():void
    {
        validateNow();
    }

    /**
     *  @copy mx.core.UIComponent#clearStyle()
     *  
     *  @langversion 3.0
     *  @playerversion Flash 9
     *  @playerversion AIR 1.1
     *  @productversion Flex 3
     */
    public function clearStyle(styleProp:String):void
    {
        setStyle(styleProp, undefined);
    }

    /**
     *  @inheritDoc
     *  
     *  @langversion 3.0
     *  @playerversion Flash 9
