         _target = value;
     }
     
+    
+    /**
+     *  @private
+     */
+    private var _gap:int = 6;
+    
+    /**
+     *  @private
+     */
+    private var gapChanged:Boolean = false;
+
+    [Inspectable(category="General")]
+
+    /**
+     *  Vertical space between rows.
+     * 
+     *  @default 6
+     */
+    public function get gap():int
+    {
+        return _gap;
+    }
+
+    /**
+     *  @private
+     */
+    public function set gap(value:int):void
+    {
+        if (_gap != value)
+        {
+			_gap = value;
+ 		   	var layoutTarget:Group = target;
+        	if (layoutTarget != null) {
+				gapChanged = true;
+            	layoutTarget.invalidateSize();
+	            layoutTarget.invalidateDisplayList();
+        	}
+        }
+    }
+    
+    //----------------------------------
+    //  explicitRowCount
+    //----------------------------------
+
+    /**
+     *  The row count requested by explicitly setting
+     *  <code>rowCount</code>.
+     */
+    protected var explicitRowCount:int = -1;
+
+    //----------------------------------
+    //  rowCount
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+    private var _rowCount:int = -1;
+    
+    /**
+     *  @private
+     */
+    private var rowCountChanged:Boolean = false;
+
+    [Inspectable(category="General")]
+
+    /**
+     *  Number of rows to be displayed.
+     *  If the height of the component has been explicitly set,
+     *  this property might not have any effect.
+     * 
+     *  @default -1
+     */
+    public function get rowCount():int
+    {
+        return _rowCount;
+    }
+
+    /**
+     *  @private
+     */
+    public function set rowCount(value:int):void
+    {
+        explicitRowCount = value;
+
+        if (_rowCount != value)
+        {
+            setRowCount(value);
+ 		   	var layoutTarget:Group = target;
+        	if (layoutTarget != null) {
+        		rowCountChanged = true;
+            	layoutTarget.invalidateSize();
+	            layoutTarget.invalidateDisplayList();
+        	}
+
+/*
+            rowCountChanged = true;
+            invalidateProperties();
+            invalidateSize();
+            itemsSizeChanged = true;
+            invalidateDisplayList();
+            dispatchEvent(new Event("rowCountChanged"));
+*/            
+        }
+    }
+
+    /**
+     *  Sets the <code>rowCount</code> property without causing
+     *  invalidation or setting the <code>explicitRowCount</code>
+     *  property, which permanently locks in the number of rows.
+     *
+     *  @param v The row count.
+     */
+    protected function setRowCount(v:int):void
+    {
+        _rowCount = v;
+    }
+
+    //----------------------------------
+    //  explicitRowHeight
+    //----------------------------------
+
+    /**
+     *  The row height requested by explicitly setting
+     *  <code>rowHeight</code>.
+     */
+    protected var explicitRowHeight:Number;
+
+    //----------------------------------
+    //  rowHeight
+    //----------------------------------
+    
+    /**
+     *  @private
+     */
+    private var _rowHeight:Number = 20;
+    
+    /**
+     *  @private
+     */
+    private var rowHeightChanged:Boolean = false;
+
+    [Inspectable(category="General")]
+
+    /**
+     *  The height of the rows in pixels.
+     *  Unless the <code>variableRowHeight</code> property is
+     *  <code>true</code>, all rows are the same height.  
+     *  If not specified, the row height is based on
+     *  the font size and other properties of the renderer.
+     */
+    public function get rowHeight():Number
+    {
+        return _rowHeight;
+    }
+
+    /**
+     *  @private
+     */
+    public function set rowHeight(value:Number):void
+    {
+        explicitRowHeight = value;
+
+        if (_rowHeight != value)
+        {
+            setRowHeight(value);
+ 		   	var layoutTarget:Group = target;
+        	if (layoutTarget != null) {
+        		rowHeightChanged = true;
+            	layoutTarget.invalidateSize();
+	            layoutTarget.invalidateDisplayList();
+        	}
+         /*
+            invalidateSize();
+            itemsSizeChanged = true;
+            invalidateDisplayList();
+            dispatchEvent(new Event("rowHeightChanged"));
+          */
+        }
+    }
+
+    /**
+     *  Sets the <code>rowHeight</code> property without causing invalidation or 
+     *  setting of <code>explicitRowHeight</code> which
+     *  permanently locks in the height of the rows.
+     *
+     *  @param v The row height, in pixels.
+     */
+    protected function setRowHeight(v:Number):void
+    {
+        _rowHeight = v;
+    }    
+    
+    //----------------------------------
+    //  explicitColWidth
+    //----------------------------------
+
+    /**
+     *  The column width requested by explicitly setting
+     *  <code>colWidth</code>.
+     */
+    protected var explicitColWidth:Number;
+
+    //----------------------------------
+    //  colWidth
+    //----------------------------------
+    
+    /**
+     *  @private
+     */
+    private var _colWidth:Number = 20;
+    
+    /**
+     *  @private
+     */
+    private var colWidthChanged:Boolean = false;
+
+    [Inspectable(category="General")]
+
+    /**
+     *  The width of the (one) column in pixels.
+     */
+    public function get colWidth():Number
+    {
+        return _colWidth;
+    }
+
+    /**
+     *  @private
+     */
+    public function set colWidth(value:Number):void
+    {
+        explicitColWidth = value;
+
+        if (_colWidth != value)
+        {
+            setColWidth(value);
+ 		   	var layoutTarget:Group = target;
+        	if (layoutTarget != null) {
+        		colWidthChanged = true;
+            	layoutTarget.invalidateSize();
+	            layoutTarget.invalidateDisplayList();
+        	}
+        }
+    }
+
+    /**
+     *  Sets the <code>colWidth</code> property without causing invalidation or 
+     *  setting of <code>explicitColWidth</code> which
+     *  permanently locks in width of the (one) column.
+     *
+     *  @param v The row height, in pixels.
+     */
+    protected function setColWidth(v:Number):void
+    {
+        _colWidth = v;
+    } 
+
+
     public function measure():void
     {
     	var layoutTarget:Group = target;

package flex.layout
{

import flex.core.Group;
import flex.intf.ILayout;
import flex.intf.ILayoutItem;

import mx.containers.utilityClasses.Flex;

/**
 *  Documentation is not currently available.


        var totalHeightToDistribute:Number = unscaledHeight;
        if (totalCount > 1)
            totalHeightToDistribute -= (totalCount - 1) * gap;

        distributeHeight(layoutItemArray, unscaledWidth, totalHeightToDistribute); 
                            
