      *  Used by layout to set the column widths for updateDisplayList. Must
      *  call this if you want to override the default widths of the columns.
      */
-    mx_internal function setLayoutColumnWidths(value:Vector.<Number>):void
+    public function setLayoutColumnWidths(value:Vector.<Number>):void
     {
-        //apply new measurements and position the columns again.
-        useLayoutColumnWidths = true;
+        // apply new measurements and position the columns again.
+        layoutColumnWidths = value;
         
+        setColumnWidths(layoutColumnWidths);
+        
+        target.invalidateDisplayList();
+    }
+    
+    /**
+     *  @private
+     *  Sets the column widths to the provided values.
+     */ 
+    private function setColumnWidths(value:Vector.<Number>):void
+    {
         var constraintColumns:Vector.<ConstraintColumn> = this.constraintColumns;
         var numCols:int = constraintColumns.length;
         var totalWidth:Number = 0;

        if (!layoutTarget)
            return;
        
        if (!useLayoutColumnWidths)
            measureAndPositionColumnsAndRows();
        
        layoutContent(unscaledWidth, unscaledHeight);
        
        useLayoutColumnWidths = false;
    }
    
    /**
     *  @private
     *  Used by layout to get the measured column widths
     */
    mx_internal function getMeasuredColumnWidths():Vector.<Number>
    {
        measureAndPositionColumnsAndRows();
        

////////////////////////////////////////////////////////////////////////////////
//
//  ADOBE SYSTEMS INCORPORATED
//  Copyright 2010 Adobe Systems Incorporated
//  All Rights Reserved.
//
//  NOTICE: Adobe permits you to use, modify, and distribute this file
//  in accordance with the terms of the license agreement accompanying it.
//
////////////////////////////////////////////////////////////////////////////////

package spark.layouts
{
import mx.containers.utilityClasses.ConstraintColumn;
