Upgrade to ExtJS 3.0.3 - Released 10/11/2009
[extjs.git] / docs / source / MixedCollection.html
index edecd20..613d466 100644 (file)
@@ -1,17 +1,24 @@
-<html>\r
-<head>\r
-  <title>The source code</title>\r
-    <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />\r
-    <script type="text/javascript" src="../resources/prettify/prettify.js"></script>\r
-</head>\r
-<body  onload="prettyPrint();">\r
-    <pre class="prettyprint lang-js"><div id="cls-Ext.util.MixedCollection"></div>/**\r
+<html>
+<head>
+  <title>The source code</title>
+    <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
+    <script type="text/javascript" src="../resources/prettify/prettify.js"></script>
+</head>
+<body  onload="prettyPrint();">
+    <pre class="prettyprint lang-js">/*!
+ * Ext JS Library 3.0.3
+ * Copyright(c) 2006-2009 Ext JS, LLC
+ * licensing@extjs.com
+ * http://www.extjs.com/license
+ */
+<div id="cls-Ext.util.MixedCollection"></div>/**\r
  * @class Ext.util.MixedCollection\r
  * @extends Ext.util.Observable\r
  * A Collection class that maintains both numeric indexes and keys and exposes events.\r
  * @constructor\r
- * @param {Boolean} allowFunctions True if the addAll function should add function references to the\r
- * collection (defaults to false)\r
+ * @param {Boolean} allowFunctions Specify <tt>true</tt> if the {@link #addAll}\r
+ * function should add function references to the collection. Defaults to\r
+ * <tt>false</tt>.\r
  * @param {Function} keyFn A function that can accept an item of the type(s) stored in this MixedCollection\r
  * and return the key value for that item.  This is used when available to look up the key on items that\r
  * were passed without an explicit key parameter to a MixedCollection method.  Passing this parameter is\r
@@ -27,7 +34,7 @@ Ext.util.MixedCollection = function(allowFunctions, keyFn){
          * @event clear\r
          * Fires when the collection is cleared.\r
          */\r
-        "clear",\r
+        'clear',\r
         <div id="event-Ext.util.MixedCollection-add"></div>/**\r
          * @event add\r
          * Fires when an item is added to the collection.\r
@@ -35,7 +42,7 @@ Ext.util.MixedCollection = function(allowFunctions, keyFn){
          * @param {Object} o The item added.\r
          * @param {String} key The key associated with the added item.\r
          */\r
-        "add",\r
+        'add',\r
         <div id="event-Ext.util.MixedCollection-replace"></div>/**\r
          * @event replace\r
          * Fires when an item is replaced in the collection.\r
@@ -43,15 +50,15 @@ Ext.util.MixedCollection = function(allowFunctions, keyFn){
          * @param {Object} old The item being replaced.\r
          * @param {Object} new The new item.\r
          */\r
-        "replace",\r
+        'replace',\r
         <div id="event-Ext.util.MixedCollection-remove"></div>/**\r
          * @event remove\r
          * Fires when an item is removed from the collection.\r
          * @param {Object} o The item being removed.\r
          * @param {String} key (optional) The key associated with the removed item.\r
          */\r
-        "remove",\r
-        "sort"\r
+        'remove',\r
+        'sort'\r
     );\r
     this.allowFunctions = allowFunctions === true;\r
     if(keyFn){\r
@@ -61,19 +68,25 @@ Ext.util.MixedCollection = function(allowFunctions, keyFn){
 };\r
 \r
 Ext.extend(Ext.util.MixedCollection, Ext.util.Observable, {\r
+\r
+    <div id="cfg-Ext.util.MixedCollection-allowFunctions"></div>/**\r
+     * @cfg {Boolean} allowFunctions Specify <tt>true</tt> if the {@link #addAll}\r
+     * function should add function references to the collection. Defaults to\r
+     * <tt>false</tt>.\r
+     */\r
     allowFunctions : false,\r
 \r
-<div id="method-Ext.util.MixedCollection-add"></div>/**\r
- * Adds an item to the collection. Fires the {@link #add} event when complete.\r
- * @param {String} key <p>The key to associate with the item, or the new item.</p>\r
- * <p>If you supplied a {@link #getKey} implementation for this MixedCollection, or if the key\r
- * of your stored items is in a property called <tt><b>id</b></tt>, then the MixedCollection\r
- * will be able to <i>derive</i> the key for the new item. In this case just pass the new item in\r
* this parameter.</p>\r
- * @param {Object} o The item to add.\r
- * @return {Object} The item added.\r
- */\r
-    add: function(key, o){\r
+    <div id="method-Ext.util.MixedCollection-add"></div>/**\r
    * Adds an item to the collection. Fires the {@link #add} event when complete.\r
    * @param {String} key <p>The key to associate with the item, or the new item.</p>\r
+     * <p>If a {@link #getKey} implementation was specified for this MixedCollection,\r
+     * or if the key of the stored items is in a property called <tt><b>id</b></tt>,\r
+     * the MixedCollection will be able to <i>derive</i> the key for the new item.\r
    * In this case just pass the new item in this parameter.</p>\r
    * @param {Object} o The item to add.\r
    * @return {Object} The item added.\r
    */\r
+    add : function(key, o){\r
         if(arguments.length == 1){\r
             o = arguments[0];\r
             key = this.getKey(o);\r
@@ -92,11 +105,10 @@ Ext.extend(Ext.util.MixedCollection, Ext.util.Observable, {
         return o;\r
     },\r
 \r
-<div id="method-Ext.util.MixedCollection-getKey"></div>/**\r
-  * MixedCollection has a generic way to fetch keys if you implement getKey.  The default implementation\r
-  * simply returns <tt style="font-weight:bold;">item.id</tt> but you can provide your own implementation\r
-  * to return a different value as in the following examples:\r
-<pre><code>\r
+    <div id="method-Ext.util.MixedCollection-getKey"></div>/**\r
+      * MixedCollection has a generic way to fetch keys if you implement getKey.  The default implementation\r
+      * simply returns <b><code>item.id</code></b> but you can provide your own implementation\r
+      * to return a different value as in the following examples:<pre><code>\r
 // normal way\r
 var mc = new Ext.util.MixedCollection();\r
 mc.add(someEl.dom.id, someEl);\r
@@ -117,46 +129,48 @@ var mc = new Ext.util.MixedCollection(false, function(el){
 });\r
 mc.add(someEl);\r
 mc.add(otherEl);\r
-</code></pre>\r
- * @param {Object} item The item for which to find the key.\r
- * @return {Object} The key for the passed item.\r
- */\r
+     * </code></pre>\r
    * @param {Object} item The item for which to find the key.\r
    * @return {Object} The key for the passed item.\r
    */\r
     getKey : function(o){\r
          return o.id;\r
     },\r
 \r
-<div id="method-Ext.util.MixedCollection-replace"></div>/**\r
- * Replaces an item in the collection. Fires the {@link #replace} event when complete.\r
- * @param {String} key <p>The key associated with the item to replace, or the replacement item.</p>\r
- * <p>If you supplied a {@link #getKey} implementation for this MixedCollection, or if the key\r
- * of your stored items is in a property called <tt><b>id</b></tt>, then the MixedCollection\r
- * will be able to <i>derive</i> the key of the replacement item. If you want to replace an item\r
- * with one having the same key value, then just pass the replacement item in this parameter.</p>\r
- * @param o {Object} o (optional) If the first parameter passed was a key, the item to associate\r
- * with that key.\r
- * @return {Object}  The new item.\r
- */\r
+    <div id="method-Ext.util.MixedCollection-replace"></div>/**\r
    * Replaces an item in the collection. Fires the {@link #replace} event when complete.\r
    * @param {String} key <p>The key associated with the item to replace, or the replacement item.</p>\r
    * <p>If you supplied a {@link #getKey} implementation for this MixedCollection, or if the key\r
    * of your stored items is in a property called <tt><b>id</b></tt>, then the MixedCollection\r
    * will be able to <i>derive</i> the key of the replacement item. If you want to replace an item\r
    * with one having the same key value, then just pass the replacement item in this parameter.</p>\r
    * @param o {Object} o (optional) If the first parameter passed was a key, the item to associate\r
    * with that key.\r
    * @return {Object}  The new item.\r
    */\r
     replace : function(key, o){\r
         if(arguments.length == 1){\r
             o = arguments[0];\r
             key = this.getKey(o);\r
         }\r
         var old = this.map[key];\r
-        if(typeof key == "undefined" || key === null || typeof old == "undefined"){\r
+        if(typeof key == 'undefined' || key === null || typeof old == 'undefined'){\r
              return this.add(key, o);\r
         }\r
         var index = this.indexOfKey(key);\r
         this.items[index] = o;\r
         this.map[key] = o;\r
-        this.fireEvent("replace", key, old, o);\r
+        this.fireEvent('replace', key, old, o);\r
         return o;\r
     },\r
 \r
-<div id="method-Ext.util.MixedCollection-addAll"></div>/**\r
- * Adds all elements of an Array or an Object to the collection.\r
- * @param {Object/Array} objs An Object containing properties which will be added to the collection, or\r
- * an Array of values, each of which are added to the collection.\r
- */\r
+    <div id="method-Ext.util.MixedCollection-addAll"></div>/**\r
+     * Adds all elements of an Array or an Object to the collection.\r
+     * @param {Object/Array} objs An Object containing properties which will be added\r
+     * to the collection, or an Array of values, each of which are added to the collection.\r
+     * Functions references will be added to the collection if <code>{@link #allowFunctions}</code>\r
+     * has been set to <tt>true</tt>.\r
+     */\r
     addAll : function(objs){\r
         if(arguments.length > 1 || Ext.isArray(objs)){\r
             var args = arguments.length > 1 ? arguments : objs;\r
@@ -165,24 +179,24 @@ mc.add(otherEl);
             }\r
         }else{\r
             for(var key in objs){\r
-                if(this.allowFunctions || typeof objs[key] != "function"){\r
+                if(this.allowFunctions || typeof objs[key] != 'function'){\r
                     this.add(key, objs[key]);\r
                 }\r
             }\r
         }\r
     },\r
 \r
-<div id="method-Ext.util.MixedCollection-each"></div>/**\r
- * Executes the specified function once for every item in the collection, passing the following arguments:\r
- * <div class="mdetail-params"><ul>\r
- * <li><b>item</b> : Mixed<p class="sub-desc">The collection item</p></li>\r
- * <li><b>index</b> : Number<p class="sub-desc">The item's index</p></li>\r
- * <li><b>length</b> : Number<p class="sub-desc">The total number of items in the collection</p></li>\r
- * </ul></div>\r
- * The function should return a boolean value. Returning false from the function will stop the iteration.\r
- * @param {Function} fn The function to execute for each item.\r
- * @param {Object} scope (optional) The scope in which to execute the function.\r
- */\r
+    <div id="method-Ext.util.MixedCollection-each"></div>/**\r
    * Executes the specified function once for every item in the collection, passing the following arguments:\r
    * <div class="mdetail-params"><ul>\r
    * <li><b>item</b> : Mixed<p class="sub-desc">The collection item</p></li>\r
    * <li><b>index</b> : Number<p class="sub-desc">The item's index</p></li>\r
    * <li><b>length</b> : Number<p class="sub-desc">The total number of items in the collection</p></li>\r
    * </ul></div>\r
    * The function should return a boolean value. Returning false from the function will stop the iteration.\r
    * @param {Function} fn The function to execute for each item.\r
    * @param {Object} scope (optional) The scope in which to execute the function.\r
    */\r
     each : function(fn, scope){\r
         var items = [].concat(this.items); // each safe for removal\r
         for(var i = 0, len = items.length; i < len; i++){\r
@@ -192,12 +206,12 @@ mc.add(otherEl);
         }\r
     },\r
 \r
-<div id="method-Ext.util.MixedCollection-eachKey"></div>/**\r
- * Executes the specified function once for every key in the collection, passing each\r
- * key, and its associated item as the first two parameters.\r
- * @param {Function} fn The function to execute for each item.\r
- * @param {Object} scope (optional) The scope in which to execute the function.\r
- */\r
+    <div id="method-Ext.util.MixedCollection-eachKey"></div>/**\r
    * Executes the specified function once for every key in the collection, passing each\r
    * key, and its associated item as the first two parameters.\r
    * @param {Function} fn The function to execute for each item.\r
    * @param {Object} scope (optional) The scope in which to execute the function.\r
    */\r
     eachKey : function(fn, scope){\r
         for(var i = 0, len = this.keys.length; i < len; i++){\r
             fn.call(scope || window, this.keys[i], this.items[i], i, len);\r
@@ -220,13 +234,13 @@ mc.add(otherEl);
         return null;\r
     },\r
 \r
-<div id="method-Ext.util.MixedCollection-insert"></div>/**\r
- * Inserts an item at the specified index in the collection. Fires the {@link #add} event when complete.\r
- * @param {Number} index The index to insert the item at.\r
- * @param {String} key The key to associate with the new item, or the item itself.\r
- * @param {Object} o (optional) If the second parameter was a key, the new item.\r
- * @return {Object} The item inserted.\r
- */\r
+    <div id="method-Ext.util.MixedCollection-insert"></div>/**\r
    * Inserts an item at the specified index in the collection. Fires the {@link #add} event when complete.\r
    * @param {Number} index The index to insert the item at.\r
    * @param {String} key The key to associate with the new item, or the item itself.\r
    * @param {Object} o (optional) If the second parameter was a key, the new item.\r
    * @return {Object} The item inserted.\r
    */\r
     insert : function(index, key, o){\r
         if(arguments.length == 2){\r
             o = arguments[1];\r
@@ -242,160 +256,167 @@ mc.add(otherEl);
         }\r
         this.length++;\r
         this.items.splice(index, 0, o);\r
-        if(typeof key != "undefined" && key !== null){\r
+        if(typeof key != 'undefined' && key !== null){\r
             this.map[key] = o;\r
         }\r
         this.keys.splice(index, 0, key);\r
-        this.fireEvent("add", index, o, key);\r
+        this.fireEvent('add', index, o, key);\r
         return o;\r
     },\r
 \r
-<div id="method-Ext.util.MixedCollection-remove"></div>/**\r
- * Remove an item from the collection.\r
- * @param {Object} o The item to remove.\r
- * @return {Object} The item removed or false if no item was removed.\r
- */\r
+    <div id="method-Ext.util.MixedCollection-remove"></div>/**\r
    * Remove an item from the collection.\r
    * @param {Object} o The item to remove.\r
    * @return {Object} The item removed or false if no item was removed.\r
    */\r
     remove : function(o){\r
         return this.removeAt(this.indexOf(o));\r
     },\r
 \r
-<div id="method-Ext.util.MixedCollection-removeAt"></div>/**\r
- * Remove an item from a specified index in the collection. Fires the {@link #remove} event when complete.\r
- * @param {Number} index The index within the collection of the item to remove.\r
- * @return {Object} The item removed or false if no item was removed.\r
- */\r
+    <div id="method-Ext.util.MixedCollection-removeAt"></div>/**\r
    * Remove an item from a specified index in the collection. Fires the {@link #remove} event when complete.\r
    * @param {Number} index The index within the collection of the item to remove.\r
    * @return {Object} The item removed or false if no item was removed.\r
    */\r
     removeAt : function(index){\r
         if(index < this.length && index >= 0){\r
             this.length--;\r
             var o = this.items[index];\r
             this.items.splice(index, 1);\r
             var key = this.keys[index];\r
-            if(typeof key != "undefined"){\r
+            if(typeof key != 'undefined'){\r
                 delete this.map[key];\r
             }\r
             this.keys.splice(index, 1);\r
-            this.fireEvent("remove", o, key);\r
+            this.fireEvent('remove', o, key);\r
             return o;\r
         }\r
         return false;\r
     },\r
 \r
-<div id="method-Ext.util.MixedCollection-removeKey"></div>/**\r
- * Removed an item associated with the passed key fom the collection.\r
- * @param {String} key The key of the item to remove.\r
- * @return {Object} The item removed or false if no item was removed.\r
- */\r
+    <div id="method-Ext.util.MixedCollection-removeKey"></div>/**\r
    * Removed an item associated with the passed key fom the collection.\r
    * @param {String} key The key of the item to remove.\r
    * @return {Object} The item removed or false if no item was removed.\r
    */\r
     removeKey : function(key){\r
         return this.removeAt(this.indexOfKey(key));\r
     },\r
 \r
-<div id="method-Ext.util.MixedCollection-getCount"></div>/**\r
- * Returns the number of items in the collection.\r
- * @return {Number} the number of items in the collection.\r
- */\r
+    <div id="method-Ext.util.MixedCollection-getCount"></div>/**\r
    * Returns the number of items in the collection.\r
    * @return {Number} the number of items in the collection.\r
    */\r
     getCount : function(){\r
         return this.length;\r
     },\r
-\r
-<div id="method-Ext.util.MixedCollection-indexOf"></div>/**\r
- * Returns index within the collection of the passed Object.\r
- * @param {Object} o The item to find the index of.\r
- * @return {Number} index of the item. Returns -1 if not found.\r
- */\r
+    \r
+    <div id="method-Ext.util.MixedCollection-indexOf"></div>/**\r
    * Returns index within the collection of the passed Object.\r
    * @param {Object} o The item to find the index of.\r
    * @return {Number} index of the item. Returns -1 if not found.\r
    */\r
     indexOf : function(o){\r
         return this.items.indexOf(o);\r
     },\r
 \r
-<div id="method-Ext.util.MixedCollection-indexOfKey"></div>/**\r
- * Returns index within the collection of the passed key.\r
- * @param {String} key The key to find the index of.\r
- * @return {Number} index of the key.\r
- */\r
+    <div id="method-Ext.util.MixedCollection-indexOfKey"></div>/**\r
    * Returns index within the collection of the passed key.\r
    * @param {String} key The key to find the index of.\r
    * @return {Number} index of the key.\r
    */\r
     indexOfKey : function(key){\r
         return this.keys.indexOf(key);\r
     },\r
 \r
-<div id="method-Ext.util.MixedCollection-item"></div>/**\r
- * Returns the item associated with the passed key OR index. Key has priority over index.  This is the equivalent\r
- * of calling {@link #key} first, then if nothing matched calling {@link #itemAt}.\r
- * @param {String/Number} key The key or index of the item.\r
- * @return {Object} If the item is found, returns the item.  If the item was not found, returns <tt>undefined</tt>.\r
- * If an item was found, but is a Class, returns <tt>null</tt>.\r
- */\r
+    <div id="method-Ext.util.MixedCollection-item"></div>/**\r
+     * Returns the item associated with the passed key OR index.\r
+     * Key has priority over index.  This is the equivalent\r
+     * of calling {@link #key} first, then if nothing matched calling {@link #itemAt}.\r
+     * @param {String/Number} key The key or index of the item.\r
+     * @return {Object} If the item is found, returns the item.  If the item was not found, returns <tt>undefined</tt>.\r
+     * If an item was found, but is a Class, returns <tt>null</tt>.\r
+     */\r
     item : function(key){\r
         var mk = this.map[key],\r
             item = mk !== undefined ? mk : (typeof key == 'number') ? this.items[key] : undefined;\r
         return !Ext.isFunction(item) || this.allowFunctions ? item : null; // for prototype!\r
     },\r
 \r
-<div id="method-Ext.util.MixedCollection-itemAt"></div>/**\r
- * Returns the item at the specified index.\r
- * @param {Number} index The index of the item.\r
- * @return {Object} The item at the specified index.\r
- */\r
+    <div id="method-Ext.util.MixedCollection-itemAt"></div>/**\r
    * Returns the item at the specified index.\r
    * @param {Number} index The index of the item.\r
    * @return {Object} The item at the specified index.\r
    */\r
     itemAt : function(index){\r
         return this.items[index];\r
     },\r
 \r
-<div id="method-Ext.util.MixedCollection-key"></div>/**\r
- * Returns the item associated with the passed key.\r
- * @param {String/Number} key The key of the item.\r
- * @return {Object} The item associated with the passed key.\r
- */\r
+    <div id="method-Ext.util.MixedCollection-key"></div>/**\r
    * Returns the item associated with the passed key.\r
    * @param {String/Number} key The key of the item.\r
    * @return {Object} The item associated with the passed key.\r
    */\r
     key : function(key){\r
         return this.map[key];\r
     },\r
 \r
-<div id="method-Ext.util.MixedCollection-contains"></div>/**\r
- * Returns true if the collection contains the passed Object as an item.\r
- * @param {Object} o  The Object to look for in the collection.\r
- * @return {Boolean} True if the collection contains the Object as an item.\r
- */\r
+    <div id="method-Ext.util.MixedCollection-contains"></div>/**\r
    * Returns true if the collection contains the passed Object as an item.\r
    * @param {Object} o  The Object to look for in the collection.\r
    * @return {Boolean} True if the collection contains the Object as an item.\r
    */\r
     contains : function(o){\r
         return this.indexOf(o) != -1;\r
     },\r
 \r
-<div id="method-Ext.util.MixedCollection-containsKey"></div>/**\r
- * Returns true if the collection contains the passed Object as a key.\r
- * @param {String} key The key to look for in the collection.\r
- * @return {Boolean} True if the collection contains the Object as a key.\r
- */\r
+    <div id="method-Ext.util.MixedCollection-containsKey"></div>/**\r
    * Returns true if the collection contains the passed Object as a key.\r
    * @param {String} key The key to look for in the collection.\r
    * @return {Boolean} True if the collection contains the Object as a key.\r
    */\r
     containsKey : function(key){\r
-        return typeof this.map[key] != "undefined";\r
+        return typeof this.map[key] != 'undefined';\r
     },\r
 \r
-<div id="method-Ext.util.MixedCollection-clear"></div>/**\r
- * Removes all items from the collection.  Fires the {@link #clear} event when complete.\r
- */\r
+    <div id="method-Ext.util.MixedCollection-clear"></div>/**\r
    * Removes all items from the collection.  Fires the {@link #clear} event when complete.\r
    */\r
     clear : function(){\r
         this.length = 0;\r
         this.items = [];\r
         this.keys = [];\r
         this.map = {};\r
-        this.fireEvent("clear");\r
+        this.fireEvent('clear');\r
     },\r
 \r
-<div id="method-Ext.util.MixedCollection-first"></div>/**\r
- * Returns the first item in the collection.\r
- * @return {Object} the first item in the collection..\r
- */\r
+    <div id="method-Ext.util.MixedCollection-first"></div>/**\r
    * Returns the first item in the collection.\r
    * @return {Object} the first item in the collection..\r
    */\r
     first : function(){\r
         return this.items[0];\r
     },\r
 \r
-<div id="method-Ext.util.MixedCollection-last"></div>/**\r
- * Returns the last item in the collection.\r
- * @return {Object} the last item in the collection..\r
- */\r
+    <div id="method-Ext.util.MixedCollection-last"></div>/**\r
    * Returns the last item in the collection.\r
    * @return {Object} the last item in the collection..\r
    */\r
     last : function(){\r
         return this.items[this.length-1];\r
     },\r
 \r
-    // private\r
+    /**\r
+     * @private\r
+     * @param {String} property Property to sort by ('key', 'value', or 'index')\r
+     * @param {String} dir (optional) Direction to sort 'ASC' or 'DESC'. Defaults to 'ASC'.\r
+     * @param {Function} fn (optional) Comparison function that defines the sort order.\r
+     * Defaults to sorting by numeric value.  \r
+     */\r
     _sort : function(property, dir, fn){\r
         var i,\r
             len,\r
-            dsc = String(dir).toUpperCase() == "DESC" ? -1 : 1,\r
+            dsc = String(dir).toUpperCase() == 'DESC' ? -1 : 1,\r
             c = [], k = this.keys, items = this.items;\r
             \r
         fn = fn || function(a, b){\r
@@ -415,25 +436,27 @@ mc.add(otherEl);
             items[i] = c[i].value;\r
             k[i] = c[i].key;\r
         }\r
-        this.fireEvent("sort", this);\r
+        this.fireEvent('sort', this);\r
     },\r
 \r
     <div id="method-Ext.util.MixedCollection-sort"></div>/**\r
-     * Sorts this collection with the passed comparison function\r
-     * @param {String} direction (optional) "ASC" or "DESC"\r
-     * @param {Function} fn (optional) comparison function\r
+     * Sorts this collection by <b>item</b> value with the passed comparison function.\r
+     * @param {String} direction (optional) 'ASC' or 'DESC'. Defaults to 'ASC'.\r
+     * @param {Function} fn (optional) Comparison function that defines the sort order.\r
+     * Defaults to sorting by numeric value.  \r
      */\r
     sort : function(dir, fn){\r
-        this._sort("value", dir, fn);\r
+        this._sort('value', dir, fn);\r
     },\r
 \r
     <div id="method-Ext.util.MixedCollection-keySort"></div>/**\r
-     * Sorts this collection by keys\r
-     * @param {String} direction (optional) "ASC" or "DESC"\r
-     * @param {Function} fn (optional) a comparison function (defaults to case insensitive string)\r
+     * Sorts this collection by <b>key</b>s.\r
+     * @param {String} direction (optional) 'ASC' or 'DESC'. Defaults to 'ASC'.\r
+     * @param {Function} fn (optional) Comparison function that defines the sort order.\r
+     * Defaults to sorting by case insensitive string.  \r
      */\r
     keySort : function(dir, fn){\r
-        this._sort("key", dir, fn || function(a, b){\r
+        this._sort('key', dir, fn || function(a, b){\r
             var v1 = String(a).toUpperCase(), v2 = String(b).toUpperCase();\r
             return v1 > v2 ? 1 : (v1 < v2 ? -1 : 0);\r
         });\r
@@ -441,8 +464,8 @@ mc.add(otherEl);
 \r
     <div id="method-Ext.util.MixedCollection-getRange"></div>/**\r
      * Returns a range of items in this collection\r
-     * @param {Number} startIndex (optional) defaults to 0\r
-     * @param {Number} endIndex (optional) default to the last item\r
+     * @param {Number} startIndex (optional) The starting index. Defaults to 0.\r
+     * @param {Number} endIndex (optional) The ending index. Defaults to the last item.\r
      * @return {Array} An array of items\r
      */\r
     getRange : function(start, end){\r
@@ -451,7 +474,7 @@ mc.add(otherEl);
             return [];\r
         }\r
         start = start || 0;\r
-        end = Math.min(typeof end == "undefined" ? this.length-1 : end, this.length-1);\r
+        end = Math.min(typeof end == 'undefined' ? this.length-1 : end, this.length-1);\r
         var i, r = [];\r
         if(start <= end){\r
             for(i = start; i <= end; i++) {\r
@@ -568,12 +591,14 @@ mc.add(otherEl);
 });\r
 <div id="method-Ext.util.MixedCollection-get"></div>/**\r
  * This method calls {@link #item item()}.\r
- * Returns the item associated with the passed key OR index. Key has priority over index.  This is the equivalent\r
- * of calling {@link #key} first, then if nothing matched calling {@link #itemAt}.\r
+ * Returns the item associated with the passed key OR index. Key has priority\r
+ * over index.  This is the equivalent of calling {@link #key} first, then if\r
+ * nothing matched calling {@link #itemAt}.\r
  * @param {String/Number} key The key or index of the item.\r
- * @return {Object} If the item is found, returns the item.  If the item was not found, returns <tt>undefined</tt>.\r
- * If an item was found, but is a Class, returns <tt>null</tt>.\r
+ * @return {Object} If the item is found, returns the item.  If the item was\r
+ * not found, returns <tt>undefined</tt>. If an item was found, but is a Class,\r
+ * returns <tt>null</tt>.\r
  */\r
-Ext.util.MixedCollection.prototype.get = Ext.util.MixedCollection.prototype.item;</pre>    \r
-</body>\r
+Ext.util.MixedCollection.prototype.get = Ext.util.MixedCollection.prototype.item;</pre>
+</body>
 </html>
\ No newline at end of file