Upgrade to ExtJS 3.0.3 - Released 10/11/2009
[extjs.git] / docs / output / Ext.util.MixedCollection.html
1 <div class="body-wrap" xmlns:ext="http://www.extjs.com"><div class="top-tools"><a class="inner-link" href="#Ext.util.MixedCollection-props"><img src="resources/images/default/s.gif" class="item-icon icon-prop">Properties</a>&#13;<a class="inner-link" href="#Ext.util.MixedCollection-methods"><img src="resources/images/default/s.gif" class="item-icon icon-method">Methods</a>&#13;<a class="inner-link" href="#Ext.util.MixedCollection-events"><img src="resources/images/default/s.gif" class="item-icon icon-event">Events</a>&#13;<a class="inner-link" href="#Ext.util.MixedCollection-configs"><img src="resources/images/default/s.gif" class="item-icon icon-config">Config Options</a>&#13;<a class="bookmark" href="../docs/?class=Ext.util.MixedCollection"><img src="resources/images/default/s.gif" class="item-icon icon-fav">Direct Link</a>&#13;</div><div class="inheritance res-block"><pre class="res-block-inner"><a href="output/Ext.util.Observable.html" ext:member="" ext:cls="Ext.util.Observable">Observable</a>&#13;&nbsp;&nbsp;<img src="resources/elbow-end.gif">MixedCollection</pre></div><h1>Class <a href="source/MixedCollection.html#cls-Ext.util.MixedCollection">Ext.util.MixedCollection</a></h1><table cellspacing="0"><tr><td class="label">Package:</td><td class="hd-info">Ext.util</td></tr><tr><td class="label">Defined In:</td><td class="hd-info">MixedCollection.js</td></tr><tr><td class="label">Class:</td><td class="hd-info"><a href="source/MixedCollection.html#cls-Ext.util.MixedCollection">MixedCollection</a></td></tr><tr><td class="label">Subclasses:</td><td class="hd-info"><a href="output/Ext.StoreMgr.html" ext:cls="Ext.StoreMgr">StoreMgr</a></td></tr><tr><td class="label">Extends:</td><td class="hd-info"><a href="output/Ext.util.Observable.html" ext:cls="Ext.util.Observable" ext:member="">Observable</a></td></tr><tr><td class="hd-info"></td></tr></table><div class="description">A Collection class that maintains both numeric indexes and keys and exposes events.</div><div class="hr"></div><a id="Ext.util.MixedCollection-configs"></a><h2>Config Options</h2><table cellspacing="0" class="member-table"><tbody><tr><th colspan="2" class="sig-header">Config Options</th><th class="msource-header">Defined By</th></tr><tr class="config-row  "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.MixedCollection-allowFunctions"></a><b><a href="source/MixedCollection.html#cfg-Ext.util.MixedCollection-allowFunctions">allowFunctions</a></b> : Boolean<div class="mdesc">Specify <tt>true</tt> if the <a href="output/Ext.util.MixedCollection.html#Ext.util.MixedCollection-addAll" ext:member="addAll" ext:cls="Ext.util.MixedCollection">addAll</a>\r
2 function should add function references to the collection. Defaults to\r
3 <tt>false</tt>.</div></td><td class="msource">MixedCollection</td></tr><tr class="config-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-listeners"></a><b><a href="source/Observable.html#cfg-Ext.util.Observable-listeners">listeners</a></b> : Object<div class="mdesc"><div class="short">A config object containing one or more event handlers to be added to this\r
4 object during initialization.  This should ...</div><div class="long"><p>A config object containing one or more event handlers to be added to this
5 object during initialization.  This should be a valid listeners config object as specified in the
6 <a href="output/Ext.util.Observable.html#Ext.util.Observable-addListener" ext:member="addListener" ext:cls="Ext.util.Observable">addListener</a> example for attaching multiple handlers at once.</p>
7 <br><p><b><u>DOM events from ExtJs <a href="output/Ext.Component.html" ext:cls="Ext.Component">Components</a></u></b></p>
8 <br><p>While <i>some</i> ExtJs Component classes export selected DOM events (e.g. "click", "mouseover" etc), this
9 is usually only done when extra value can be added. For example the <a href="output/Ext.DataView.html" ext:cls="Ext.DataView">DataView</a>'s
10 <b><code><a href="output/Ext.DataView.html#Ext.DataView-click" ext:member="click" ext:cls="Ext.DataView">click</a></code></b> event passing the node clicked on. To access DOM
11 events directly from a Component's HTMLElement, listeners must be added to the <i><a href="output/Ext.Component.html#Ext.Component-getEl" ext:member="getEl" ext:cls="Ext.Component">Element</a></i> after the Component
12 has been rendered. A plugin can simplify this step:<pre><code><i>// Plugin is configured <b>with</b> a listeners config object.</i>
13 <i>// The Component is appended to the argument list of all handler functions.</i>
14 Ext.DomObserver = Ext.extend(Object, {
15     constructor: <b>function</b>(config) {
16         this.listeners = config.listeners ? config.listeners : config;
17     },
18
19     <i>// Component passes itself into plugin&#39;s init method</i>
20     init: <b>function</b>(c) {
21         <b>var</b> p, l = this.listeners;
22         <b>for</b> (p <b>in</b> l) {
23             <b>if</b> (Ext.isFunction(l[p])) {
24                 l[p] = this.createHandler(l[p], c);
25             } <b>else</b> {
26                 l[p].fn = this.createHandler(l[p].fn, c);
27             }
28         }
29
30         <i>// Add the listeners to the Element immediately following the render call</i>
31         c.render = c.render.<a href="output/Function.html#Function-createSequence" ext:member="createSequence" ext:cls="Function">createSequence</a>(<b>function</b>() {
32             <b>var</b> e = c.getEl();
33             <b>if</b> (e) {
34                 e.on(l);
35             }
36         });
37     },
38
39     createHandler: <b>function</b>(fn, c) {
40         <b>return</b> <b>function</b>(e) {
41             fn.call(this, e, c);
42         };
43     }
44 });
45
46 <b>var</b> combo = <b>new</b> Ext.form.ComboBox({
47
48     <i>// Collapse combo when its element is clicked on</i>
49     plugins: [ <b>new</b> Ext.DomObserver({
50         click: <b>function</b>(evt, comp) {
51             comp.collapse();
52         }
53     })],
54     store: myStore,
55     typeAhead: true,
56     mode: <em>'local'</em>,
57     triggerAction: <em>'all'</em>
58 });</code></pre></p></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#listeners" ext:member="#listeners" ext:cls="Ext.util.Observable">Observable</a></td></tr></tbody></table><a id="Ext.util.MixedCollection-props"></a><h2>Public Properties</h2><div class="no-members">This class has no public properties.</div><a id="Ext.util.MixedCollection-methods"></a><h2>Public Methods</h2><table cellspacing="0" class="member-table"><tbody><tr><th colspan="2" class="sig-header">Method</th><th class="msource-header">Defined By</th></tr><tr class="method-row expandable"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.MixedCollection-MixedCollection"></a><b><a href="source/MixedCollection.html#cls-Ext.util.MixedCollection">MixedCollection</a></b>(&nbsp;<code>Boolean&nbsp;allowFunctions</code>,&nbsp;<code>Function&nbsp;keyFn</code>&nbsp;)\r
59     <div class="mdesc"><div class="short"></div><div class="long"><div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>allowFunctions</code> : Boolean<div class="sub-desc">Specify <tt>true</tt> if the <a href="output/Ext.util.MixedCollection.html#Ext.util.MixedCollection-addAll" ext:member="addAll" ext:cls="Ext.util.MixedCollection">addAll</a>\r
60 function should add function references to the collection. Defaults to\r
61 <tt>false</tt>.</div></li><li><code>keyFn</code> : Function<div class="sub-desc">A function that can accept an item of the type(s) stored in this MixedCollection\r
62 and return the key value for that item.  This is used when available to look up the key on items that\r
63 were passed without an explicit key parameter to a MixedCollection method.  Passing this parameter is\r
64 equivalent to providing an implementation for the <a href="output/Ext.util.MixedCollection.html#Ext.util.MixedCollection-getKey" ext:member="getKey" ext:cls="Ext.util.MixedCollection">getKey</a> method.</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource">MixedCollection</td></tr><tr class="method-row expandable "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.MixedCollection-add"></a><b><a href="source/MixedCollection.html#method-Ext.util.MixedCollection-add">add</a></b>(&nbsp;<code>String&nbsp;key</code>,&nbsp;<code>Object&nbsp;o</code>&nbsp;)\r
65     :\r
66                                         Object<div class="mdesc"><div class="short">Adds an item to the collection. Fires the add event when complete.</div><div class="long">Adds an item to the collection. Fires the <a href="output/Ext.util.MixedCollection.html#Ext.util.MixedCollection-add" ext:member="add" ext:cls="Ext.util.MixedCollection">add</a> event when complete.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>key</code> : String<div class="sub-desc"><p>The key to associate with the item, or the new item.</p>\r
67 <p>If a <a href="output/Ext.util.MixedCollection.html#Ext.util.MixedCollection-getKey" ext:member="getKey" ext:cls="Ext.util.MixedCollection">getKey</a> implementation was specified for this MixedCollection,\r
68 or if the key of the stored items is in a property called <tt><b>id</b></tt>,\r
69 the MixedCollection will be able to <i>derive</i> the key for the new item.\r
70 In this case just pass the new item in this parameter.</p></div></li><li><code>o</code> : Object<div class="sub-desc">The item to add.</div></li></ul><strong>Returns:</strong><ul><li><code>Object</code><div class="sub-desc">The item added.</div></li></ul></div></div></div></td><td class="msource">MixedCollection</td></tr><tr class="method-row expandable "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.MixedCollection-addAll"></a><b><a href="source/MixedCollection.html#method-Ext.util.MixedCollection-addAll">addAll</a></b>(&nbsp;<code>Object/Array&nbsp;objs</code>&nbsp;)\r
71     :\r
72                                         void<div class="mdesc"><div class="short">Adds all elements of an Array or an Object to the collection.</div><div class="long">Adds all elements of an Array or an Object to the collection.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>objs</code> : Object/Array<div class="sub-desc">An Object containing properties which will be added\r
73 to the collection, or an Array of values, each of which are added to the collection.\r
74 Functions references will be added to the collection if <code><a href="output/Ext.util.MixedCollection.html#Ext.util.MixedCollection-allowFunctions" ext:member="allowFunctions" ext:cls="Ext.util.MixedCollection">allowFunctions</a></code>\r
75 has been set to <tt>true</tt>.</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource">MixedCollection</td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-addEvents"></a><b><a href="source/Observable.html#method-Ext.util.Observable-addEvents">addEvents</a></b>(&nbsp;<code>Object|String&nbsp;o</code>,&nbsp;<code>string&nbsp;Optional.</code>&nbsp;)\r
76     :\r
77                                         void<div class="mdesc"><div class="short">Adds the specified events to the list of events which this Observable may fire.</div><div class="long">Adds the specified events to the list of events which this Observable may fire.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>o</code> : Object|String<div class="sub-desc">Either an object with event names as properties with a value of <code>true</code>
78 or the first event name string if multiple event names are being passed as separate parameters.</div></li><li><code>Optional.</code> : string<div class="sub-desc">Event name if multiple event names are being passed as separate parameters.
79 Usage:<pre><code>this.addEvents(<em>'storeloaded'</em>, <em>'storecleared'</em>);</code></pre></div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#addEvents" ext:member="#addEvents" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-addListener"></a><b><a href="source/Observable.html#method-Ext.util.Observable-addListener">addListener</a></b>(&nbsp;<code>String&nbsp;eventName</code>,&nbsp;<code>Function&nbsp;handler</code>,&nbsp;<span title="Optional" class="optional">[<code>Object&nbsp;scope</code>]</span>,&nbsp;<span title="Optional" class="optional">[<code>Object&nbsp;options</code>]</span>&nbsp;)\r
80     :\r
81                                         void<div class="mdesc"><div class="short">Appends an event handler to this object.</div><div class="long">Appends an event handler to this object.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>eventName</code> : String<div class="sub-desc">The name of the event to listen for.</div></li><li><code>handler</code> : Function<div class="sub-desc">The method the event invokes.</div></li><li><code>scope</code> : Object<div class="sub-desc">(optional) The scope (<code><b>this</b></code> reference) in which the handler function is executed.
82 <b>If omitted, defaults to the object which fired the event.</b></div></li><li><code>options</code> : Object<div class="sub-desc">(optional) An object containing handler configuration.
83 properties. This may contain any of the following properties:<ul>
84 <li><b>scope</b> : Object<div class="sub-desc">The scope (<code><b>this</b></code> reference) in which the handler function is executed.
85 <b>If omitted, defaults to the object which fired the event.</b></div></li>
86 <li><b>delay</b> : Number<div class="sub-desc">The number of milliseconds to delay the invocation of the handler after the event fires.</div></li>
87 <li><b>single</b> : Boolean<div class="sub-desc">True to add a handler to handle just the next firing of the event, and then remove itself.</div></li>
88 <li><b>buffer</b> : Number<div class="sub-desc">Causes the handler to be scheduled to run in an <a href="output/Ext.util.DelayedTask.html" ext:cls="Ext.util.DelayedTask">Ext.util.DelayedTask</a> delayed
89 by the specified number of milliseconds. If the event fires again within that time, the original
90 handler is <em>not</em> invoked, but the new handler is scheduled in its place.</div></li>
91 <li><b>target</b> : Observable<div class="sub-desc">Only call the handler if the event was fired on the target Observable, <i>not</i>
92 if the event was bubbled up from a child Observable.</div></li>
93 </ul><br>
94 <p>
95 <b>Combining Options</b><br>
96 Using the options argument, it is possible to combine different types of listeners:<br>
97 <br>
98 A delayed, one-time listener.
99 <pre><code>myDataView.on(<em>'click'</em>, this.onClick, this, {
100 single: true,
101 delay: 100
102 });</code></pre>
103 <p>
104 <b>Attaching multiple handlers in 1 call</b><br>
105 The method also allows for a single argument to be passed which is a config object containing properties
106 which specify multiple handlers.
107 <p>
108 <pre><code>myGridPanel.on({
109 <em>'click'</em> : {
110     fn: this.onClick,
111     scope: this,
112     delay: 100
113 },
114 <em>'mouseover'</em> : {
115     fn: this.onMouseOver,
116     scope: this
117 },
118 <em>'mouseout'</em> : {
119     fn: this.onMouseOut,
120     scope: this
121 }
122 });</code></pre>
123 <p>
124 Or a shorthand syntax:<br>
125 <pre><code>myGridPanel.on({
126 <em>'click'</em> : this.onClick,
127 <em>'mouseover'</em> : this.onMouseOver,
128 <em>'mouseout'</em> : this.onMouseOut,
129  scope: this
130 });</code></pre></div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#addListener" ext:member="#addListener" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="method-row expandable "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.MixedCollection-clear"></a><b><a href="source/MixedCollection.html#method-Ext.util.MixedCollection-clear">clear</a></b>()\r
131     :\r
132                                         void<div class="mdesc"><div class="short">Removes all items from the collection.  Fires the clear event when complete.</div><div class="long">Removes all items from the collection.  Fires the <a href="output/Ext.util.MixedCollection.html#Ext.util.MixedCollection-clear" ext:member="clear" ext:cls="Ext.util.MixedCollection">clear</a> event when complete.<div class="mdetail-params"><strong>Parameters:</strong><ul><li>None.</li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource">MixedCollection</td></tr><tr class="method-row expandable "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.MixedCollection-clone"></a><b><a href="source/MixedCollection.html#method-Ext.util.MixedCollection-clone">clone</a></b>()\r
133     :\r
134                                         MixedCollection<div class="mdesc"><div class="short">Creates a shallow copy of this collection</div><div class="long">Creates a shallow copy of this collection<div class="mdetail-params"><strong>Parameters:</strong><ul><li>None.</li></ul><strong>Returns:</strong><ul><li><code>MixedCollection</code><div class="sub-desc"></div></li></ul></div></div></div></td><td class="msource">MixedCollection</td></tr><tr class="method-row expandable "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.MixedCollection-contains"></a><b><a href="source/MixedCollection.html#method-Ext.util.MixedCollection-contains">contains</a></b>(&nbsp;<code>Object&nbsp;o</code>&nbsp;)\r
135     :\r
136                                         Boolean<div class="mdesc"><div class="short">Returns true if the collection contains the passed Object as an item.</div><div class="long">Returns true if the collection contains the passed Object as an item.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>o</code> : Object<div class="sub-desc">The Object to look for in the collection.</div></li></ul><strong>Returns:</strong><ul><li><code>Boolean</code><div class="sub-desc">True if the collection contains the Object as an item.</div></li></ul></div></div></div></td><td class="msource">MixedCollection</td></tr><tr class="method-row expandable "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.MixedCollection-containsKey"></a><b><a href="source/MixedCollection.html#method-Ext.util.MixedCollection-containsKey">containsKey</a></b>(&nbsp;<code>String&nbsp;key</code>&nbsp;)\r
137     :\r
138                                         Boolean<div class="mdesc"><div class="short">Returns true if the collection contains the passed Object as a key.</div><div class="long">Returns true if the collection contains the passed Object as a key.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>key</code> : String<div class="sub-desc">The key to look for in the collection.</div></li></ul><strong>Returns:</strong><ul><li><code>Boolean</code><div class="sub-desc">True if the collection contains the Object as a key.</div></li></ul></div></div></div></td><td class="msource">MixedCollection</td></tr><tr class="method-row expandable "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.MixedCollection-each"></a><b><a href="source/MixedCollection.html#method-Ext.util.MixedCollection-each">each</a></b>(&nbsp;<code>Function&nbsp;fn</code>,&nbsp;<span title="Optional" class="optional">[<code>Object&nbsp;scope</code>]</span>&nbsp;)\r
139     :\r
140                                         void<div class="mdesc"><div class="short">Executes the specified function once for every item in the collection, passing the following arguments:&#13;\r
141 &lt;div class="...</div><div class="long">Executes the specified function once for every item in the collection, passing the following arguments:\r
142 <div class="mdetail-params"><ul>\r
143 <li><b>item</b> : Mixed<p class="sub-desc">The collection item</p></li>\r
144 <li><b>index</b> : Number<p class="sub-desc">The item's index</p></li>\r
145 <li><b>length</b> : Number<p class="sub-desc">The total number of items in the collection</p></li>\r
146 </ul></div>\r
147 The function should return a boolean value. Returning false from the function will stop the iteration.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>fn</code> : Function<div class="sub-desc">The function to execute for each item.</div></li><li><code>scope</code> : Object<div class="sub-desc">(optional) The scope in which to execute the function.</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource">MixedCollection</td></tr><tr class="method-row expandable "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.MixedCollection-eachKey"></a><b><a href="source/MixedCollection.html#method-Ext.util.MixedCollection-eachKey">eachKey</a></b>(&nbsp;<code>Function&nbsp;fn</code>,&nbsp;<span title="Optional" class="optional">[<code>Object&nbsp;scope</code>]</span>&nbsp;)\r
148     :\r
149                                         void<div class="mdesc"><div class="short">Executes the specified function once for every key in the collection, passing each&#13;\r
150 key, and its associated item as t...</div><div class="long">Executes the specified function once for every key in the collection, passing each\r
151 key, and its associated item as the first two parameters.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>fn</code> : Function<div class="sub-desc">The function to execute for each item.</div></li><li><code>scope</code> : Object<div class="sub-desc">(optional) The scope in which to execute the function.</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource">MixedCollection</td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-enableBubble"></a><b><a href="source/Observable-more.html#method-Ext.util.Observable-enableBubble">enableBubble</a></b>(&nbsp;<code>Object&nbsp;events</code>&nbsp;)\r
152     :\r
153                                         void<div class="mdesc"><div class="short">Enables events fired by this Observable to bubble up an owner hierarchy by calling&#13;\r
154 this.getBubbleTarget() if present...</div><div class="long"><p>Enables events fired by this Observable to bubble up an owner hierarchy by calling\r
155 <code>this.getBubbleTarget()</code> if present. There is no implementation in the Observable base class.</p>\r
156 <p>This is commonly used by Ext.Components to bubble events to owner Containers. See <a href="output/Ext.Component.getBubbleTarget.html" ext:cls="Ext.Component.getBubbleTarget">Ext.Component.getBubbleTarget</a>. The default\r
157 implementation in Ext.Component returns the Component's immediate owner. But if a known target is required, this can be overridden to\r
158 access the required target more quickly.</p>\r
159 <p>Example:</p><pre><code>Ext.override(Ext.form.Field, {\r
160 <i>//  Add functionality to Field<em>'s initComponent to enable the change event to bubble\r</i>
161     initComponent: Ext.form.Field.prototype.initComponent.createSequence(<b>function</b>() {\r
162         this.enableBubble('</em>change<em>');\r
163     }),\r
164 \r
165 <i>//  We know that we want Field'</em>s events to bubble directly to the FormPanel.\r</i>
166     getBubbleTarget: <b>function</b>() {\r
167         <b>if</b> (!this.formPanel) {\r
168             this.formPanel = this.findParentByType(<em>'form'</em>);\r
169         }\r
170         <b>return</b> this.formPanel;\r
171     }\r
172 });\r
173 \r
174 <b>var</b> myForm = <b>new</b> Ext.formPanel({\r
175     title: <em>'User Details'</em>,\r
176     items: [{\r
177         ...\r
178     }],\r
179     listeners: {\r
180         change: <b>function</b>() {\r
181 <i>//          Title goes red <b>if</b> form has been modified.\r</i>
182             myForm.header.setStyle(<em>"color"</em>, <em>"red"</em>);\r
183         }\r
184     }\r
185 });</code></pre><div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>events</code> : Object<div class="sub-desc">The event name to bubble, or an Array of event names.</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#enableBubble" ext:member="#enableBubble" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="method-row expandable "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.MixedCollection-filter"></a><b><a href="source/MixedCollection.html#method-Ext.util.MixedCollection-filter">filter</a></b>(&nbsp;<code>String&nbsp;property</code>,&nbsp;<code>String/RegExp&nbsp;value</code>,&nbsp;<span title="Optional" class="optional">[<code>Boolean&nbsp;anyMatch</code>]</span>,&nbsp;<span title="Optional" class="optional">[<code>Boolean&nbsp;caseSensitive</code>]</span>&nbsp;)\r
186     :\r
187                                         MixedCollection<div class="mdesc"><div class="short">Filter the objects in this collection by a specific property.&#13;\r
188 Returns a new collection that has been filtered.</div><div class="long">Filter the <i>objects</i> in this collection by a specific property.\r
189 Returns a new collection that has been filtered.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>property</code> : String<div class="sub-desc">A property on your objects</div></li><li><code>value</code> : String/RegExp<div class="sub-desc">Either string that the property values\r
190 should start with or a RegExp to test against the property</div></li><li><code>anyMatch</code> : Boolean<div class="sub-desc">(optional) True to match any part of the string, not just the beginning</div></li><li><code>caseSensitive</code> : Boolean<div class="sub-desc">(optional) True for case sensitive comparison (defaults to False).</div></li></ul><strong>Returns:</strong><ul><li><code>MixedCollection</code><div class="sub-desc">The new filtered collection</div></li></ul></div></div></div></td><td class="msource">MixedCollection</td></tr><tr class="method-row expandable "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.MixedCollection-filterBy"></a><b><a href="source/MixedCollection.html#method-Ext.util.MixedCollection-filterBy">filterBy</a></b>(&nbsp;<code>Function&nbsp;fn</code>,&nbsp;<span title="Optional" class="optional">[<code>Object&nbsp;scope</code>]</span>&nbsp;)\r
191     :\r
192                                         MixedCollection<div class="mdesc"><div class="short">Filter by a function. Returns a new collection that has been filtered.&#13;\r
193 The passed function will be called with each ...</div><div class="long">Filter by a function. Returns a <i>new</i> collection that has been filtered.\r
194 The passed function will be called with each object in the collection.\r
195 If the function returns true, the value is included otherwise it is filtered.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>fn</code> : Function<div class="sub-desc">The function to be called, it will receive the args o (the object), k (the key)</div></li><li><code>scope</code> : Object<div class="sub-desc">(optional) The scope of the function (defaults to this)</div></li></ul><strong>Returns:</strong><ul><li><code>MixedCollection</code><div class="sub-desc">The new filtered collection</div></li></ul></div></div></div></td><td class="msource">MixedCollection</td></tr><tr class="method-row expandable "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.MixedCollection-find"></a><b><a href="source/MixedCollection.html#method-Ext.util.MixedCollection-find">find</a></b>(&nbsp;<code>Function&nbsp;fn</code>,&nbsp;<span title="Optional" class="optional">[<code>Object&nbsp;scope</code>]</span>&nbsp;)\r
196     :\r
197                                         Object<div class="mdesc"><div class="short">Returns the first item in the collection which elicits a true return value from the&#13;\r
198 passed selection function.</div><div class="long">Returns the first item in the collection which elicits a true return value from the\r
199 passed selection function.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>fn</code> : Function<div class="sub-desc">The selection function to execute for each item.</div></li><li><code>scope</code> : Object<div class="sub-desc">(optional) The scope in which to execute the function.</div></li></ul><strong>Returns:</strong><ul><li><code>Object</code><div class="sub-desc">The first item in the collection which returned true from the selection function.</div></li></ul></div></div></div></td><td class="msource">MixedCollection</td></tr><tr class="method-row expandable "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.MixedCollection-findIndex"></a><b><a href="source/MixedCollection.html#method-Ext.util.MixedCollection-findIndex">findIndex</a></b>(&nbsp;<code>String&nbsp;property</code>,&nbsp;<code>String/RegExp&nbsp;value</code>,&nbsp;<span title="Optional" class="optional">[<code>Number&nbsp;start</code>]</span>,&nbsp;<span title="Optional" class="optional">[<code>Boolean&nbsp;anyMatch</code>]</span>,&nbsp;<span title="Optional" class="optional">[<code>Boolean&nbsp;caseSensitive</code>]</span>&nbsp;)\r
200     :\r
201                                         Number<div class="mdesc"><div class="short">Finds the index of the first matching object in this collection by a specific property/value.</div><div class="long">Finds the index of the first matching object in this collection by a specific property/value.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>property</code> : String<div class="sub-desc">The name of a property on your objects.</div></li><li><code>value</code> : String/RegExp<div class="sub-desc">A string that the property values\r
202 should start with or a RegExp to test against the property.</div></li><li><code>start</code> : Number<div class="sub-desc">(optional) The index to start searching at (defaults to 0).</div></li><li><code>anyMatch</code> : Boolean<div class="sub-desc">(optional) True to match any part of the string, not just the beginning.</div></li><li><code>caseSensitive</code> : Boolean<div class="sub-desc">(optional) True for case sensitive comparison.</div></li></ul><strong>Returns:</strong><ul><li><code>Number</code><div class="sub-desc">The matched index or -1</div></li></ul></div></div></div></td><td class="msource">MixedCollection</td></tr><tr class="method-row expandable "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.MixedCollection-findIndexBy"></a><b><a href="source/MixedCollection.html#method-Ext.util.MixedCollection-findIndexBy">findIndexBy</a></b>(&nbsp;<code>Function&nbsp;fn</code>,&nbsp;<span title="Optional" class="optional">[<code>Object&nbsp;scope</code>]</span>,&nbsp;<span title="Optional" class="optional">[<code>Number&nbsp;start</code>]</span>&nbsp;)\r
203     :\r
204                                         Number<div class="mdesc"><div class="short">Find the index of the first matching object in this collection by a function.&#13;\r
205 If the function returns true it is con...</div><div class="long">Find the index of the first matching object in this collection by a function.\r
206 If the function returns <i>true</i> it is considered a match.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>fn</code> : Function<div class="sub-desc">The function to be called, it will receive the args o (the object), k (the key).</div></li><li><code>scope</code> : Object<div class="sub-desc">(optional) The scope of the function (defaults to this).</div></li><li><code>start</code> : Number<div class="sub-desc">(optional) The index to start searching at (defaults to 0).</div></li></ul><strong>Returns:</strong><ul><li><code>Number</code><div class="sub-desc">The matched index or -1</div></li></ul></div></div></div></td><td class="msource">MixedCollection</td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-fireEvent"></a><b><a href="source/Observable.html#method-Ext.util.Observable-fireEvent">fireEvent</a></b>(&nbsp;<code>String&nbsp;eventName</code>,&nbsp;<code>Object...&nbsp;args</code>&nbsp;)\r
207     :\r
208                                         Boolean<div class="mdesc"><div class="short">Fires the specified event with the passed parameters (minus the event name).\r
209 An event may be set to bubble up an Obse...</div><div class="long"><p>Fires the specified event with the passed parameters (minus the event name).</p>
210 <p>An event may be set to bubble up an Observable parent hierarchy (See <a href="output/Ext.Component.html#Ext.Component-getBubbleTarget" ext:member="getBubbleTarget" ext:cls="Ext.Component">Ext.Component.getBubbleTarget</a>)
211 by calling <a href="output/Ext.util.Observable.html#Ext.util.Observable-enableBubble" ext:member="enableBubble" ext:cls="Ext.util.Observable">enableBubble</a>.</p><div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>eventName</code> : String<div class="sub-desc">The name of the event to fire.</div></li><li><code>args</code> : Object...<div class="sub-desc">Variable number of parameters are passed to handlers.</div></li></ul><strong>Returns:</strong><ul><li><code>Boolean</code><div class="sub-desc">returns false if any of the handlers return false otherwise it returns true.</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#fireEvent" ext:member="#fireEvent" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="method-row expandable "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.MixedCollection-first"></a><b><a href="source/MixedCollection.html#method-Ext.util.MixedCollection-first">first</a></b>()\r
212     :\r
213                                         Object<div class="mdesc"><div class="short">Returns the first item in the collection.</div><div class="long">Returns the first item in the collection.<div class="mdetail-params"><strong>Parameters:</strong><ul><li>None.</li></ul><strong>Returns:</strong><ul><li><code>Object</code><div class="sub-desc">the first item in the collection..</div></li></ul></div></div></div></td><td class="msource">MixedCollection</td></tr><tr class="method-row expandable "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.MixedCollection-get"></a><b><a href="source/MixedCollection.html#method-Ext.util.MixedCollection-get">get</a></b>(&nbsp;<code>String/Number&nbsp;key</code>&nbsp;)\r
214     :\r
215                                         Object<div class="mdesc"><div class="short">This method calls item().&#13;\r
216 Returns the item associated with the passed key OR index. Key has priority&#13;\r
217 over index.  T...</div><div class="long">This method calls <a href="output/Ext.util.MixedCollection.html#Ext.util.MixedCollection-item" ext:member="item" ext:cls="Ext.util.MixedCollection">item()</a>.\r
218 Returns the item associated with the passed key OR index. Key has priority\r
219 over index.  This is the equivalent of calling <a href="output/Ext.util.MixedCollection.html#Ext.util.MixedCollection-key" ext:member="key" ext:cls="Ext.util.MixedCollection">key</a> first, then if\r
220 nothing matched calling <a href="output/Ext.util.MixedCollection.html#Ext.util.MixedCollection-itemAt" ext:member="itemAt" ext:cls="Ext.util.MixedCollection">itemAt</a>.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>key</code> : String/Number<div class="sub-desc">The key or index of the item.</div></li></ul><strong>Returns:</strong><ul><li><code>Object</code><div class="sub-desc">If the item is found, returns the item.  If the item was&#13;\r
221 not found, returns &lt;tt&gt;undefined&lt;/tt&gt;. If an item was found, but is a Class,&#13;\r
222 returns &lt;tt&gt;null&lt;/tt&gt;.</div></li></ul></div></div></div></td><td class="msource">MixedCollection</td></tr><tr class="method-row expandable "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.MixedCollection-getCount"></a><b><a href="source/MixedCollection.html#method-Ext.util.MixedCollection-getCount">getCount</a></b>()\r
223     :\r
224                                         Number<div class="mdesc"><div class="short">Returns the number of items in the collection.</div><div class="long">Returns the number of items in the collection.<div class="mdetail-params"><strong>Parameters:</strong><ul><li>None.</li></ul><strong>Returns:</strong><ul><li><code>Number</code><div class="sub-desc">the number of items in the collection.</div></li></ul></div></div></div></td><td class="msource">MixedCollection</td></tr><tr class="method-row expandable "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.MixedCollection-getKey"></a><b><a href="source/MixedCollection.html#method-Ext.util.MixedCollection-getKey">getKey</a></b>(&nbsp;<code>Object&nbsp;item</code>&nbsp;)\r
225     :\r
226                                         Object<div class="mdesc"><div class="short">MixedCollection has a generic way to fetch keys if you implement getKey.  The default implementation&#13;\r
227 simply returns ...</div><div class="long">MixedCollection has a generic way to fetch keys if you implement getKey.  The default implementation\r
228 simply returns <b><code>item.id</code></b> but you can provide your own implementation\r
229 to return a different value as in the following examples:<pre><code><i>// normal way\r</i>
230 <b>var</b> mc = <b>new</b> Ext.util.MixedCollection();\r
231 mc.add(someEl.dom.id, someEl);\r
232 mc.add(otherEl.dom.id, otherEl);\r
233 <i>//and so on\r</i>
234 \r
235 <i>// using getKey\r</i>
236 <b>var</b> mc = <b>new</b> Ext.util.MixedCollection();\r
237 mc.getKey = <b>function</b>(el){\r
238    <b>return</b> el.dom.id;\r
239 };\r
240 mc.add(someEl);\r
241 mc.add(otherEl);\r
242 \r
243 <i>// or via the constructor\r</i>
244 <b>var</b> mc = <b>new</b> Ext.util.MixedCollection(false, <b>function</b>(el){\r
245    <b>return</b> el.dom.id;\r
246 });\r
247 mc.add(someEl);\r
248 mc.add(otherEl);</code></pre><div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>item</code> : Object<div class="sub-desc">The item for which to find the key.</div></li></ul><strong>Returns:</strong><ul><li><code>Object</code><div class="sub-desc">The key for the passed item.</div></li></ul></div></div></div></td><td class="msource">MixedCollection</td></tr><tr class="method-row expandable "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.MixedCollection-getRange"></a><b><a href="source/MixedCollection.html#method-Ext.util.MixedCollection-getRange">getRange</a></b>(&nbsp;<span title="Optional" class="optional">[<code>Number&nbsp;startIndex</code>]</span>,&nbsp;<span title="Optional" class="optional">[<code>Number&nbsp;endIndex</code>]</span>&nbsp;)\r
249     :\r
250                                         Array<div class="mdesc"><div class="short">Returns a range of items in this collection</div><div class="long">Returns a range of items in this collection<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>startIndex</code> : Number<div class="sub-desc">(optional) The starting index. Defaults to 0.</div></li><li><code>endIndex</code> : Number<div class="sub-desc">(optional) The ending index. Defaults to the last item.</div></li></ul><strong>Returns:</strong><ul><li><code>Array</code><div class="sub-desc">An array of items</div></li></ul></div></div></div></td><td class="msource">MixedCollection</td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-hasListener"></a><b><a href="source/Observable.html#method-Ext.util.Observable-hasListener">hasListener</a></b>(&nbsp;<code>String&nbsp;eventName</code>&nbsp;)\r
251     :\r
252                                         Boolean<div class="mdesc"><div class="short">Checks to see if this object has any listeners for a specified event</div><div class="long">Checks to see if this object has any listeners for a specified event<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>eventName</code> : String<div class="sub-desc">The name of the event to check for</div></li></ul><strong>Returns:</strong><ul><li><code>Boolean</code><div class="sub-desc">True if the event is being listened for, else false</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#hasListener" ext:member="#hasListener" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="method-row expandable "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.MixedCollection-indexOf"></a><b><a href="source/MixedCollection.html#method-Ext.util.MixedCollection-indexOf">indexOf</a></b>(&nbsp;<code>Object&nbsp;o</code>&nbsp;)\r
253     :\r
254                                         Number<div class="mdesc"><div class="short">Returns index within the collection of the passed Object.</div><div class="long">Returns index within the collection of the passed Object.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>o</code> : Object<div class="sub-desc">The item to find the index of.</div></li></ul><strong>Returns:</strong><ul><li><code>Number</code><div class="sub-desc">index of the item. Returns -1 if not found.</div></li></ul></div></div></div></td><td class="msource">MixedCollection</td></tr><tr class="method-row expandable "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.MixedCollection-indexOfKey"></a><b><a href="source/MixedCollection.html#method-Ext.util.MixedCollection-indexOfKey">indexOfKey</a></b>(&nbsp;<code>String&nbsp;key</code>&nbsp;)\r
255     :\r
256                                         Number<div class="mdesc"><div class="short">Returns index within the collection of the passed key.</div><div class="long">Returns index within the collection of the passed key.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>key</code> : String<div class="sub-desc">The key to find the index of.</div></li></ul><strong>Returns:</strong><ul><li><code>Number</code><div class="sub-desc">index of the key.</div></li></ul></div></div></div></td><td class="msource">MixedCollection</td></tr><tr class="method-row expandable "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.MixedCollection-insert"></a><b><a href="source/MixedCollection.html#method-Ext.util.MixedCollection-insert">insert</a></b>(&nbsp;<code>Number&nbsp;index</code>,&nbsp;<code>String&nbsp;key</code>,&nbsp;<span title="Optional" class="optional">[<code>Object&nbsp;o</code>]</span>&nbsp;)\r
257     :\r
258                                         Object<div class="mdesc"><div class="short">Inserts an item at the specified index in the collection. Fires the add event when complete.</div><div class="long">Inserts an item at the specified index in the collection. Fires the <a href="output/Ext.util.MixedCollection.html#Ext.util.MixedCollection-add" ext:member="add" ext:cls="Ext.util.MixedCollection">add</a> event when complete.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>index</code> : Number<div class="sub-desc">The index to insert the item at.</div></li><li><code>key</code> : String<div class="sub-desc">The key to associate with the new item, or the item itself.</div></li><li><code>o</code> : Object<div class="sub-desc">(optional) If the second parameter was a key, the new item.</div></li></ul><strong>Returns:</strong><ul><li><code>Object</code><div class="sub-desc">The item inserted.</div></li></ul></div></div></div></td><td class="msource">MixedCollection</td></tr><tr class="method-row expandable "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.MixedCollection-item"></a><b><a href="source/MixedCollection.html#method-Ext.util.MixedCollection-item">item</a></b>(&nbsp;<code>String/Number&nbsp;key</code>&nbsp;)\r
259     :\r
260                                         Object<div class="mdesc"><div class="short">Returns the item associated with the passed key OR index.&#13;\r
261 Key has priority over index.  This is the equivalent&#13;\r
262 of c...</div><div class="long">Returns the item associated with the passed key OR index.\r
263 Key has priority over index.  This is the equivalent\r
264 of calling <a href="output/Ext.util.MixedCollection.html#Ext.util.MixedCollection-key" ext:member="key" ext:cls="Ext.util.MixedCollection">key</a> first, then if nothing matched calling <a href="output/Ext.util.MixedCollection.html#Ext.util.MixedCollection-itemAt" ext:member="itemAt" ext:cls="Ext.util.MixedCollection">itemAt</a>.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>key</code> : String/Number<div class="sub-desc">The key or index of the item.</div></li></ul><strong>Returns:</strong><ul><li><code>Object</code><div class="sub-desc">If the item is found, returns the item.  If the item was not found, returns &lt;tt&gt;undefined&lt;/tt&gt;.&#13;\r
265 If an item was found, but is a Class, returns &lt;tt&gt;null&lt;/tt&gt;.</div></li></ul></div></div></div></td><td class="msource">MixedCollection</td></tr><tr class="method-row expandable "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.MixedCollection-itemAt"></a><b><a href="source/MixedCollection.html#method-Ext.util.MixedCollection-itemAt">itemAt</a></b>(&nbsp;<code>Number&nbsp;index</code>&nbsp;)\r
266     :\r
267                                         Object<div class="mdesc"><div class="short">Returns the item at the specified index.</div><div class="long">Returns the item at the specified index.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>index</code> : Number<div class="sub-desc">The index of the item.</div></li></ul><strong>Returns:</strong><ul><li><code>Object</code><div class="sub-desc">The item at the specified index.</div></li></ul></div></div></div></td><td class="msource">MixedCollection</td></tr><tr class="method-row expandable "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.MixedCollection-key"></a><b><a href="source/MixedCollection.html#method-Ext.util.MixedCollection-key">key</a></b>(&nbsp;<code>String/Number&nbsp;key</code>&nbsp;)\r
268     :\r
269                                         Object<div class="mdesc"><div class="short">Returns the item associated with the passed key.</div><div class="long">Returns the item associated with the passed key.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>key</code> : String/Number<div class="sub-desc">The key of the item.</div></li></ul><strong>Returns:</strong><ul><li><code>Object</code><div class="sub-desc">The item associated with the passed key.</div></li></ul></div></div></div></td><td class="msource">MixedCollection</td></tr><tr class="method-row expandable "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.MixedCollection-keySort"></a><b><a href="source/MixedCollection.html#method-Ext.util.MixedCollection-keySort">keySort</a></b>(&nbsp;<span title="Optional" class="optional">[<code>String&nbsp;direction</code>]</span>,&nbsp;<span title="Optional" class="optional">[<code>Function&nbsp;fn</code>]</span>&nbsp;)\r
270     :\r
271                                         void<div class="mdesc"><div class="short">Sorts this collection by keys.</div><div class="long">Sorts this collection by <b>key</b>s.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>direction</code> : String<div class="sub-desc">(optional) 'ASC' or 'DESC'. Defaults to 'ASC'.</div></li><li><code>fn</code> : Function<div class="sub-desc">(optional) Comparison function that defines the sort order.\r
272 Defaults to sorting by case insensitive string.</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource">MixedCollection</td></tr><tr class="method-row expandable "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.MixedCollection-last"></a><b><a href="source/MixedCollection.html#method-Ext.util.MixedCollection-last">last</a></b>()\r
273     :\r
274                                         Object<div class="mdesc"><div class="short">Returns the last item in the collection.</div><div class="long">Returns the last item in the collection.<div class="mdetail-params"><strong>Parameters:</strong><ul><li>None.</li></ul><strong>Returns:</strong><ul><li><code>Object</code><div class="sub-desc">the last item in the collection..</div></li></ul></div></div></div></td><td class="msource">MixedCollection</td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-on"></a><b><a href="source/Observable.html#method-Ext.util.Observable-on">on</a></b>(&nbsp;<code>String&nbsp;eventName</code>,&nbsp;<code>Function&nbsp;handler</code>,&nbsp;<span title="Optional" class="optional">[<code>Object&nbsp;scope</code>]</span>,&nbsp;<span title="Optional" class="optional">[<code>Object&nbsp;options</code>]</span>&nbsp;)\r
275     :\r
276                                         void<div class="mdesc"><div class="short">Appends an event handler to this object (shorthand for addListener.)</div><div class="long">Appends an event handler to this object (shorthand for <a href="output/Ext.util.Observable.html#Ext.util.Observable-addListener" ext:member="addListener" ext:cls="Ext.util.Observable">addListener</a>.)<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>eventName</code> : String<div class="sub-desc">The type of event to listen for</div></li><li><code>handler</code> : Function<div class="sub-desc">The method the event invokes</div></li><li><code>scope</code> : Object<div class="sub-desc">(optional) The scope (<code><b>this</b></code> reference) in which the handler function is executed.
277 <b>If omitted, defaults to the object which fired the event.</b></div></li><li><code>options</code> : Object<div class="sub-desc">(optional) An object containing handler configuration.</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#on" ext:member="#on" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-purgeListeners"></a><b><a href="source/Observable.html#method-Ext.util.Observable-purgeListeners">purgeListeners</a></b>()\r
278     :\r
279                                         void<div class="mdesc"><div class="short">Removes all listeners for this object</div><div class="long">Removes all listeners for this object<div class="mdetail-params"><strong>Parameters:</strong><ul><li>None.</li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#purgeListeners" ext:member="#purgeListeners" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-relayEvents"></a><b><a href="source/Observable-more.html#method-Ext.util.Observable-relayEvents">relayEvents</a></b>(&nbsp;<code>Object&nbsp;o</code>,&nbsp;<code>Array&nbsp;events</code>&nbsp;)\r
280     :\r
281                                         void<div class="mdesc"><div class="short">Relays selected events from the specified Observable as if the events were fired by this.</div><div class="long">Relays selected events from the specified Observable as if the events were fired by <tt><b>this</b></tt>.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>o</code> : Object<div class="sub-desc">The Observable whose events this object is to relay.</div></li><li><code>events</code> : Array<div class="sub-desc">Array of event names to relay.</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#relayEvents" ext:member="#relayEvents" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="method-row expandable "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.MixedCollection-remove"></a><b><a href="source/MixedCollection.html#method-Ext.util.MixedCollection-remove">remove</a></b>(&nbsp;<code>Object&nbsp;o</code>&nbsp;)\r
282     :\r
283                                         Object<div class="mdesc"><div class="short">Remove an item from the collection.</div><div class="long">Remove an item from the collection.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>o</code> : Object<div class="sub-desc">The item to remove.</div></li></ul><strong>Returns:</strong><ul><li><code>Object</code><div class="sub-desc">The item removed or false if no item was removed.</div></li></ul></div></div></div></td><td class="msource">MixedCollection</td></tr><tr class="method-row expandable "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.MixedCollection-removeAt"></a><b><a href="source/MixedCollection.html#method-Ext.util.MixedCollection-removeAt">removeAt</a></b>(&nbsp;<code>Number&nbsp;index</code>&nbsp;)\r
284     :\r
285                                         Object<div class="mdesc"><div class="short">Remove an item from a specified index in the collection. Fires the remove event when complete.</div><div class="long">Remove an item from a specified index in the collection. Fires the <a href="output/Ext.util.MixedCollection.html#Ext.util.MixedCollection-remove" ext:member="remove" ext:cls="Ext.util.MixedCollection">remove</a> event when complete.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>index</code> : Number<div class="sub-desc">The index within the collection of the item to remove.</div></li></ul><strong>Returns:</strong><ul><li><code>Object</code><div class="sub-desc">The item removed or false if no item was removed.</div></li></ul></div></div></div></td><td class="msource">MixedCollection</td></tr><tr class="method-row expandable "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.MixedCollection-removeKey"></a><b><a href="source/MixedCollection.html#method-Ext.util.MixedCollection-removeKey">removeKey</a></b>(&nbsp;<code>String&nbsp;key</code>&nbsp;)\r
286     :\r
287                                         Object<div class="mdesc"><div class="short">Removed an item associated with the passed key fom the collection.</div><div class="long">Removed an item associated with the passed key fom the collection.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>key</code> : String<div class="sub-desc">The key of the item to remove.</div></li></ul><strong>Returns:</strong><ul><li><code>Object</code><div class="sub-desc">The item removed or false if no item was removed.</div></li></ul></div></div></div></td><td class="msource">MixedCollection</td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-removeListener"></a><b><a href="source/Observable.html#method-Ext.util.Observable-removeListener">removeListener</a></b>(&nbsp;<code>String&nbsp;eventName</code>,&nbsp;<code>Function&nbsp;handler</code>,&nbsp;<span title="Optional" class="optional">[<code>Object&nbsp;scope</code>]</span>&nbsp;)\r
288     :\r
289                                         void<div class="mdesc"><div class="short">Removes an event handler.</div><div class="long">Removes an event handler.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>eventName</code> : String<div class="sub-desc">The type of event the handler was associated with.</div></li><li><code>handler</code> : Function<div class="sub-desc">The handler to remove. <b>This must be a reference to the function passed into the <a href="output/Ext.util.Observable.html#Ext.util.Observable-addListener" ext:member="addListener" ext:cls="Ext.util.Observable">addListener</a> call.</b></div></li><li><code>scope</code> : Object<div class="sub-desc">(optional) The scope originally specified for the handler.</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#removeListener" ext:member="#removeListener" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="method-row expandable "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.MixedCollection-replace"></a><b><a href="source/MixedCollection.html#method-Ext.util.MixedCollection-replace">replace</a></b>(&nbsp;<code>String&nbsp;key</code>,&nbsp;<code>o&nbsp;{Object}</code>&nbsp;)\r
290     :\r
291                                         Object<div class="mdesc"><div class="short">Replaces an item in the collection. Fires the replace event when complete.</div><div class="long">Replaces an item in the collection. Fires the <a href="output/Ext.util.MixedCollection.html#Ext.util.MixedCollection-replace" ext:member="replace" ext:cls="Ext.util.MixedCollection">replace</a> event when complete.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>key</code> : String<div class="sub-desc"><p>The key associated with the item to replace, or the replacement item.</p>\r
292 <p>If you supplied a <a href="output/Ext.util.MixedCollection.html#Ext.util.MixedCollection-getKey" ext:member="getKey" ext:cls="Ext.util.MixedCollection">getKey</a> implementation for this MixedCollection, or if the key\r
293 of your stored items is in a property called <tt><b>id</b></tt>, then the MixedCollection\r
294 will be able to <i>derive</i> the key of the replacement item. If you want to replace an item\r
295 with one having the same key value, then just pass the replacement item in this parameter.</p></div></li><li><code>{Object}</code> : o<div class="sub-desc">o (optional) If the first parameter passed was a key, the item to associate\r
296 with that key.</div></li></ul><strong>Returns:</strong><ul><li><code>Object</code><div class="sub-desc">The new item.</div></li></ul></div></div></div></td><td class="msource">MixedCollection</td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-resumeEvents"></a><b><a href="source/Observable.html#method-Ext.util.Observable-resumeEvents">resumeEvents</a></b>()\r
297     :\r
298                                         void<div class="mdesc"><div class="short">Resume firing events. (see suspendEvents)\r
299 If events were suspended using the queueSuspended parameter, then all\r
300 event...</div><div class="long">Resume firing events. (see <a href="output/Ext.util.Observable.html#Ext.util.Observable-suspendEvents" ext:member="suspendEvents" ext:cls="Ext.util.Observable">suspendEvents</a>)
301 If events were suspended using the <tt><b>queueSuspended</b></tt> parameter, then all
302 events fired during event suspension will be sent to any listeners now.<div class="mdetail-params"><strong>Parameters:</strong><ul><li>None.</li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#resumeEvents" ext:member="#resumeEvents" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="method-row expandable "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.MixedCollection-sort"></a><b><a href="source/MixedCollection.html#method-Ext.util.MixedCollection-sort">sort</a></b>(&nbsp;<span title="Optional" class="optional">[<code>String&nbsp;direction</code>]</span>,&nbsp;<span title="Optional" class="optional">[<code>Function&nbsp;fn</code>]</span>&nbsp;)\r
303     :\r
304                                         void<div class="mdesc"><div class="short">Sorts this collection by item value with the passed comparison function.</div><div class="long">Sorts this collection by <b>item</b> value with the passed comparison function.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>direction</code> : String<div class="sub-desc">(optional) 'ASC' or 'DESC'. Defaults to 'ASC'.</div></li><li><code>fn</code> : Function<div class="sub-desc">(optional) Comparison function that defines the sort order.\r
305 Defaults to sorting by numeric value.</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource">MixedCollection</td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-suspendEvents"></a><b><a href="source/Observable.html#method-Ext.util.Observable-suspendEvents">suspendEvents</a></b>(&nbsp;<code>Boolean&nbsp;queueSuspended</code>&nbsp;)\r
306     :\r
307                                         void<div class="mdesc"><div class="short">Suspend the firing of all events. (see resumeEvents)</div><div class="long">Suspend the firing of all events. (see <a href="output/Ext.util.Observable.html#Ext.util.Observable-resumeEvents" ext:member="resumeEvents" ext:cls="Ext.util.Observable">resumeEvents</a>)<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>queueSuspended</code> : Boolean<div class="sub-desc">Pass as true to queue up suspended events to be fired
308 after the <a href="output/Ext.util.Observable.html#Ext.util.Observable-resumeEvents" ext:member="resumeEvents" ext:cls="Ext.util.Observable">resumeEvents</a> call instead of discarding all suspended events;</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#suspendEvents" ext:member="#suspendEvents" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-un"></a><b><a href="source/Observable.html#method-Ext.util.Observable-un">un</a></b>(&nbsp;<code>String&nbsp;eventName</code>,&nbsp;<code>Function&nbsp;handler</code>,&nbsp;<span title="Optional" class="optional">[<code>Object&nbsp;scope</code>]</span>&nbsp;)\r
309     :\r
310                                         void<div class="mdesc"><div class="short">Removes an event handler (shorthand for removeListener.)</div><div class="long">Removes an event handler (shorthand for <a href="output/Ext.util.Observable.html#Ext.util.Observable-removeListener" ext:member="removeListener" ext:cls="Ext.util.Observable">removeListener</a>.)<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>eventName</code> : String<div class="sub-desc">The type of event the handler was associated with.</div></li><li><code>handler</code> : Function<div class="sub-desc">The handler to remove. <b>This must be a reference to the function passed into the <a href="output/Ext.util.Observable.html#Ext.util.Observable-addListener" ext:member="addListener" ext:cls="Ext.util.Observable">addListener</a> call.</b></div></li><li><code>scope</code> : Object<div class="sub-desc">(optional) The scope originally specified for the handler.</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#un" ext:member="#un" ext:cls="Ext.util.Observable">Observable</a></td></tr></tbody></table><a id="Ext.util.MixedCollection-events"></a><h2>Public Events</h2><table cellspacing="0" class="member-table"><tbody><tr><th colspan="2" class="sig-header">Event</th><th class="msource-header">Defined By</th></tr><tr class="method-row expandable "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.MixedCollection-add"></a><b><a href="source/MixedCollection.html#event-Ext.util.MixedCollection-add">add</a></b> :\r
311                                       (&nbsp;<code>Number&nbsp;index</code>,&nbsp;<code>Object&nbsp;o</code>,&nbsp;<code>String&nbsp;key</code>&nbsp;)\r
312     <div class="mdesc"><div class="short">Fires when an item is added to the collection.</div><div class="long">Fires when an item is added to the collection.<div class="mdetail-params"><strong style="font-weight: normal;">Listeners will be called with the following arguments:</strong><ul><li><code>index</code> : Number<div class="sub-desc">The index at which the item was added.</div></li><li><code>o</code> : Object<div class="sub-desc">The item added.</div></li><li><code>key</code> : String<div class="sub-desc">The key associated with the added item.</div></li></ul></div></div></div></td><td class="msource">MixedCollection</td></tr><tr class="method-row expandable "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.MixedCollection-clear"></a><b><a href="source/MixedCollection.html#event-Ext.util.MixedCollection-clear">clear</a></b> :\r
313                                       ()\r
314     <div class="mdesc"><div class="short">Fires when the collection is cleared.</div><div class="long">Fires when the collection is cleared.<div class="mdetail-params"><strong style="font-weight: normal;">Listeners will be called with the following arguments:</strong><ul><li>None.</li></ul></div></div></div></td><td class="msource">MixedCollection</td></tr><tr class="method-row expandable "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.MixedCollection-remove"></a><b><a href="source/MixedCollection.html#event-Ext.util.MixedCollection-remove">remove</a></b> :\r
315                                       (&nbsp;<code>Object&nbsp;o</code>,&nbsp;<span title="Optional" class="optional">[<code>String&nbsp;key</code>]</span>&nbsp;)\r
316     <div class="mdesc"><div class="short">Fires when an item is removed from the collection.</div><div class="long">Fires when an item is removed from the collection.<div class="mdetail-params"><strong style="font-weight: normal;">Listeners will be called with the following arguments:</strong><ul><li><code>o</code> : Object<div class="sub-desc">The item being removed.</div></li><li><code>key</code> : String<div class="sub-desc">(optional) The key associated with the removed item.</div></li></ul></div></div></div></td><td class="msource">MixedCollection</td></tr><tr class="method-row expandable "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.MixedCollection-replace"></a><b><a href="source/MixedCollection.html#event-Ext.util.MixedCollection-replace">replace</a></b> :\r
317                                       (&nbsp;<code>String&nbsp;key</code>,&nbsp;<code>Object&nbsp;old</code>,&nbsp;<code>Object&nbsp;new</code>&nbsp;)\r
318     <div class="mdesc"><div class="short">Fires when an item is replaced in the collection.</div><div class="long">Fires when an item is replaced in the collection.<div class="mdetail-params"><strong style="font-weight: normal;">Listeners will be called with the following arguments:</strong><ul><li><code>key</code> : String<div class="sub-desc">he key associated with the new added.</div></li><li><code>old</code> : Object<div class="sub-desc">The item being replaced.</div></li><li><code>new</code> : Object<div class="sub-desc">The new item.</div></li></ul></div></div></div></td><td class="msource">MixedCollection</td></tr></tbody></table></div>