     }
     
     /**
-     *  @private
-     *  Taking into account which modifier keys were clicked, the new
-     *  selectedIndices interval is calculated. 
-     */
-    private function calculateSelectedIndicesInterval(index:int, shiftKey:Boolean, ctrlKey:Boolean):Vector.<int>
+     *  Helper method to calculate how the current selection changes when an item is clicked.
+     *
+     *  @param index The index of the item that has been clicked.
+     *  @param shiftKey True when the shift key is pressed.
+     *  @param ctrlKey True when the control key is pressed.
+     *  @return The updated item indices that the new selection will be committed to.
+     * 
+     *  @see #selectedIndices
+     *   
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    protected function calculateSelectedIndices(index:int, shiftKey:Boolean, ctrlKey:Boolean):Vector.<int>
     {
         var i:int; 
         var interval:Vector.<int> = new Vector.<int>();  

     *  intended to start a drag gesture instead. In that case we postpone
     *  comitting the selection until mouse up.
     */
    private var pendingSelectionOnMouseUp:Boolean = false;

    /**
     *  @private
     */
    private var pendingSelectionShiftKey:Boolean;

    /**
     *  @private
     */
    private var pendingSelectionCtrlKey:Boolean;
    
    /**
     *  @private

            }
            else
            {
                selectedIndices = calculateSelectedIndices(newIndex, event.shiftKey, event.ctrlKey);
            }
        }
        
