     //----------------------------------
     
     /**
-     *  @copy spark.components.gridClasses.GridSelection#preserveSelection
+     *  If <code>true</code>, the selection is preserved when the data provider 
+     *  refreshes its collection. 
+     *  Because this refresh requires each item in the selection to be saved, 
+     *  this action is not desirable if the selection is large.
      *
      *  @default true
      * 

     *  @param x The x coordinate of the pixel at the origin of the region, relative to the grid.
     * 
     *  @param x The x coordinate of the pixel at the origin of the region, relative to the grid. 
     *  
     *  @return A vector of objects like <code>Vector.&lt;Object&gt;([{rowIndex:0, columnIndex:0}, ...])</code>. 
     *  

                    break;                
            }
        }
        else if (columnIndex >= 0)  // invalidate a column
        {
            const visibleRowIndices:Vector.<int> = getVisibleRowIndices();
            for each (var visibleRowIndex:int in visibleRowIndices)
            {
                // If there are any padding rows, skip them.
                if (visibleRowIndex >= dataProviderLength)
                    break;
                
                gridLayout.invalidateCell(visibleRowIndex, columnIndex);

                // If invalidating the cell caused the entire grid to be invalid, punt 
                if (invalidateDisplayListFlag || invalidateSizeFlag)
                    break;
            }
        }
    }
    
    /**
