     
     /**
      *  @private
+     *  Move all the selected cells in column oldColumnIndex to newColumnIndex.
+     *  No other adjustments are made to the selection.
+     */
+    private function moveCellsInColumn(oldColumnIndex:int, newColumnIndex:int, 
+                                       bounds:Rectangle=null):Boolean
+    {
+        var elementChanged:Boolean;
+        
+        if (bounds == null)
+            bounds = getCellRegionsBounds();
+        
+        const firstIndex:int = bounds.top;
+        const lastIndex:int = bounds.bottom;
+        
+        for (var rowIndex:int = firstIndex; rowIndex < lastIndex; rowIndex++)
+        {
+            // ToDo: if group contigous cells together into a cell region.
+            if (containsCell(rowIndex, oldColumnIndex))
+            {
+                removeCellRegion(rowIndex, oldColumnIndex, 1, 1);
+                addCellRegion(rowIndex, newColumnIndex, 1, 1);
+                elementChanged = true;
+            }
+        }
+                
+        return elementChanged;
+    }
+
+    /**
+     *  @private
      *  Remove all the selected cells in row rowIndex.  No other adjustments to
      *  the selection are made.
      */

        return elementChanged;
    }
       
    //--------------------------------------------------------------------------
    //
    //  Data Provider Collection methods

    /**
     *  @private
     *  If requiredSelection, then there must always be at least one row/cell
     *  selected.  If the selection is changed, the caret is changed to match.
     * 
     *  @return true if the selection has changed.
     */    
