     //
     //--------------------------------------------------------------------------
     
-    /**
-     *  @private
-     */
-    private function get dataGrid():DataGrid
-    {
-        return owner as DataGrid;
-    }
-    
-    /**
-     *  @private
-     */
-    private function get grid():Grid
-    {
-        return dataGrid ? dataGrid.grid : null;
-    }
-    
     private function getColumnAt(columnIndex:int):GridColumn
     {
-        const grid:Grid = grid;
+        const grid:Grid = (dataGrid) ? dataGrid.grid : null;
         if (!grid || !grid.columns)
             return null;
         

import mx.core.IFactory;
import mx.core.IVisualElement;
import mx.core.mx_internal;
import mx.managers.CursorManager;
import mx.managers.CursorManagerPriority;
import mx.managers.IFocusManagerComponent;

import spark.components.supportClasses.ColumnHeaderBarLayout;
import spark.components.supportClasses.GridColumn;
import spark.components.supportClasses.GridLayer;

        invalidateDisplayList();
        dispatchChangeEvent("columnSeparatorChanged");
    }
    
    //----------------------------------
    //  dataGrid
    //----------------------------------
    
    [Bindable("dataGridChanged")]
    
    private var _dataGrid:DataGrid = null;
    
    /**
     *  The DataGrid that defines the column layout and horizontal scroll position for this component.
     *  This property is set by the DataGrid after its grid skin part has been added.
     * 
     *  @default null
     * 
     *  @langversion 3.0
     *  @playerversion Flash 10
     *  @playerversion AIR 1.5
     *  @productversion Flex 4.5
     */
    public function get dataGrid():DataGrid
    {
        return _dataGrid;
    }
    
    /**
     *  @private
     */
    public function set dataGrid(value:DataGrid):void
    {
        if (_dataGrid == value)
            return;
        
        if (_dataGrid && _dataGrid.grid)
            _dataGrid.grid.removeEventListener(PropertyChangeEvent.PROPERTY_CHANGE, grid_changeEventHandler);

        _dataGrid = value;
        
        if (_dataGrid && _dataGrid.grid)
            _dataGrid.grid.addEventListener(PropertyChangeEvent.PROPERTY_CHANGE, grid_changeEventHandler);
        
        layout.clearVirtualLayoutCache();
        invalidateSize();
        invalidateDisplayList();
        
        dispatchChangeEvent("dataGridChanged");
    }
    
    /**
     *  @private
     */
    private function grid_changeEventHandler(event:PropertyChangeEvent):void
    {
        if (event.property == "horizontalScrollPosition")
            horizontalScrollPosition = Number(event.newValue);
    }        
    
    //----------------------------------
    //  overlayGroup
