     /**
      *  If the <code>selectionMode</code> is either <code>GridSelectionMode.SINGLE_CELLS</code> 
      *  or <code>GridSelectionMode.MULTIPLE_CELLS</code>, replaces the current 
-     *  selection with the cell at the given location.
+     *  selection with the cell at the given location.  The cell must be in
+     *  a visible column.
      * 
      *  @param rowIndex The 0-based row index.
      * 

        return mode == GridSelectionMode.SINGLE_CELL || 
                mode == GridSelectionMode.MULTIPLE_CELLS;
    }     
    
    /**
     *  @private

    {
        if (!validateCellRegion(rowIndex, columnIndex, rowCount, columnCount))
            return false;
        
        removeSelection();
        
        var startColumnIndex:int = columnIndex;
        var curColumnCount:int = 0;
        
        const endColumnIndex:int = columnIndex + columnCount - 1;
        for (var i:int = columnIndex; i <= endColumnIndex; i++)
        {    
            // columns and indexes validated above.
            const columnVisible:Boolean = isColumnVisible(i);
            if (columnVisible)
            {
                curColumnCount++;
                continue;
            }
            
            // This column isn't visible so commit the cell region.
            internalAddCellRegion(rowIndex, startColumnIndex, rowCount, curColumnCount);
            
            curColumnCount = 0;
            startColumnIndex = i + 1;
        }
             
        // If the last column(s) are not visible, need to commit the last
        // cell region.
        if (curColumnCount > 0)
            internalAddCellRegion(rowIndex, startColumnIndex, rowCount, curColumnCount);
            
        return true;
    }
    
