         return dataProvider.getItemAt(rowIndex);
     }
     
-    /**
-     *  @private
-     */
-    private function getColumnHeaderBar():ColumnHeaderBar
-    {
-        const dataGrid:DataGrid = grid.gridOwner as DataGrid;
-        if (dataGrid == null)
-            return null;
-        
-        return dataGrid.columnHeaderBar;
-    }
-
-    /**
-     *  @private
-     */
-    private function getGridColumnHeader(columnIndex:int):IVisualElement
-    {
-        const headerBar:ColumnHeaderBar = getColumnHeaderBar();
-        if (headerBar == null || headerBar.dataGroup == null)
-            return null;
-        
-        return headerBar.dataGroup.getElementAt(columnIndex);
-    }
-        
 	//--------------------------------------------------------------------------
 	//
 	//  Updating the GridDimensions' typicalCell sizes and columnWidths

        visibleColumnSeparators = layoutLinearElements(grid.columnSeparator, grid.overlayLayer, 
            visibleColumnSeparators, oldVisibleColumnIndices, visibleColumnIndices, layoutColumnSeparator, lastColumnIndex);
        
        // Tell the ColumnHeaderBar to update its layout.
        
        layoutColumnHeaderBar();
        
        // Layout the hoverIndicator, caretIndicator, and selectionIndicators        
        

     *  This is supposed to eliminate problems with (text) components that defer reflow until the next
     *  updateDisplayList() pass.
     *  
     *  Since doing so is rather expensive, we economize when the renderer is an IUITextField
     *  since UITextField and UIFTETextField reflow synchronously.
     */ 
    private function layoutItemRenderer(renderer:IGridItemRenderer, x:Number, y:Number, width:Number, height:Number):void
    {
