 	
 	//--------------------------------------------------------------------------
 	//
-	//  Computing the Visible Column Widths
+	//  Updating the GridDimensions' typicalCell sizes and columnWidths
 	//
 	//-------------------------------------------------------------------------- 
 	
-	private const columnIndices:Vector.<int> = new Vector.<int>(0);
-	private const columnWidths:Vector.<Number> = new Vector.<Number>(0);
-	
-	/**
+    /**
 	 *  @private
 	 *  Use the specified GridColumn's itemRenderer (IFactory) to create a temporary
 	 *  item renderer.   The returned item renderer must be freed, with freeGridElement(),

	
	/**
	 *  @private
	 *  Compute the widths and indices of the columns that fit within the specified width, where the 
	 *  first column's index is startIndex, and the left edge of the first column is startX.  The 
	 *  widths and indices are returned in the vector parameters.   The vector parameters are 
	 *  expected to be empty when this method is called.
	 * 
	 *  The returned width for GridColumns with an explicit width, is just the explicit width.
	 *  Otherwise an item renderer is created for the column and the grid's typical item and
	 *  the item renderer's preferred width is the column's width.    
	 */
	private function computeVisibleColumnWidths(width:Number, startX:Number, startIndex:int, indices:Vector.<int>, widths:Vector.<Number>):void
	{
		const gridDimensions:GridDimensions = gridDimensions;
		const columnCount:int = gridDimensions.columnCount;
		const columnGap:int = gridDimensions.columnGap;
		const startCellR:Rectangle = gridDimensions.getCellBounds(0 /* rowIndex */, startIndex);        
		
		for (var index:int = startIndex; (width > 0) && (index < columnCount); index++)
		{
			var gridColumn:GridColumn = getGridColumn(index);
			var columnWidth:Number;
			
			if (isNaN(gridColumn.width)) // if this column's width wasn't explicitly specified	
			{
				var renderer:IVisualElement = createTypicalItemRenderer(index);
				columnWidth = renderer.getPreferredBoundsWidth();
				freeGridElement(renderer);
			}
			else
				columnWidth = gridColumn.width;
			
			if (index == startIndex)
				width -= startCellR.x + columnWidth - startX;
			else
				width -= columnWidth + columnGap;

			indices.push(index);
			widths.push(columnWidth);
		}		
	}	
	
	/**

        if (!grid)
            return;
        
        // Layout the item renderers and compute new values for visibleRowIndices et al
        
        oldVisibleRowIndices = visibleRowIndices;
