Upgrade to ExtJS 4.0.0 - Released 04/26/2011
[extjs.git] / docs / api / Ext.state.Stateful.html
1 <!DOCTYPE html><html><head><title>Ext.state.Stateful | Ext JS 4.0 Documentation</title><script type="text/javascript" src="../ext-all.js"></script><link rel="stylesheet" href="../reset.css" type="text/css"><link rel="stylesheet" href="../scrollbars.css" type="text/css"><link rel="stylesheet" href="../docs.css" type="text/css"><link id="styleCss" rel="stylesheet" href="../style.css" type="text/css"><script type="text/javascript" src="../prettify.js"></script><link rel="stylesheet" href="../prettify.css" type="text/css"><!-- link(rel: 'stylesheet', href: req.baseURL + '/css/ext4.css', type: 'text/css')--><link rel="shortcut icon" type="image/ico" href="../favicon.ico"><!--[if IE]>
2 <style type="text/css">.head-band { display: none; }
3 .header { border: 0; top: 0; left: 0px; background: url(../header.gif) repeat-x; }
4 .doc-tab .members .member a.more { background-color: #efefef; }
5 </style><link rel="stylesheet" href="/new/css/ie.css" type="text/css"><![endif]-->
6 </head><body id="ext-body" class="iScroll"><div id="notice" class="notice">For up to date documentation and features, visit 
7 <a href="http://docs.sencha.com/ext-js/4-0">http://docs.sencha.com/ext-js/4-0</a></div><div class="wrapper"><div class="head-band"></div><div class="header"><h2><a href="../index.html">Sencha Documentation</a></h2></div><div id="search"><form><input type="text" placeholder="Search" id="search-field" autocomplete="off" name="q"></form><div id="search-box"></div></div><div id="treePanel"></div><div id="container"><script type="text/javascript">
8
9     req = {
10         liveURL: '.',
11         standAloneMode: true,
12         origDocClass: 'Ext.state.Stateful',
13         docClass: 'Ext.state.Stateful',
14         docReq: 'Ext.state.Stateful',
15         version: '4.0',
16         baseURL: '.',
17         baseDocURL: '.',
18         baseProdURL: '.'
19     };
20
21     clsInfo = {};
22
23
24
25 </script>
26
27 <script type="text/javascript" src="../search.js"></script>
28 <!--script type="text/javascript" src="/new/javascripts/app/examples.js"></script-->
29 <script type="text/javascript" src="../class_tree.js"></script>
30 <script type="text/javascript" src="../class_doc.js"></script>
31 <script type="text/javascript">
32     req.source = 'Stateful.html#Ext-state.Stateful';
33     clsInfo = {"methods":["addEvents","addListener","addManagedListener","addStateEvents","applyState","capture","clearListeners","clearManagedListeners","destroy","enableBubble","fireEvent","getState","getStateId","hasListener","observe","on","relayEvents","releaseCapture","removeListener","removeManagedListener","resumeEvents","suspendEvents","un"],"cfgs":["listeners","saveBuffer","stateEvents","stateId","stateful"],"properties":[],"events":["beforestaterestore","beforestatesave","staterestore","statesave"],"subclasses":[]};
34     Ext.onReady(function() {
35         Ext.create('Docs.classPanel');
36     });
37 </script><div id="top-block" class="top-block"><h1 id="clsTitle" class="cls"><a href="../source/Stateful.html#Ext-state.Stateful" target="_blank">Ext.state.Stateful</a></h1></div><div id="docContent"><div id="doc-overview-content"><div class="lft"><pre class="subclasses"><h4>Mixins</h4><div class="mixin"><a href="Ext.util.Observable.html" rel="Ext.util.Observable" class="cls docClass">Ext.util.Observable</a></div></pre><p>A mixin for being able to save the state of an object to an underlying
38 <a href="Ext.state.Provider.html" rel="Ext.state.Provider" class="docClass">Ext.state.Provider</a>.</p>
39 <div class="members"><div class="m-cfgs"><div class="definedBy">Defined By</div><a name="configs"></a><h3 class="cfg p">Config Options</h3><h4 class="cfgGroup">Other Configs</h4><div id="config-listeners" class="member f inherited"><a href="Ext.state.Stateful.html#config-listeners" rel="config-listeners" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.util.Observable.html" class="definedIn docClass">Ext.util.Observable</a><br/><a href="../source/Observable.html#Ext-util.Observable-cfg-listeners" class="viewSource">view source</a></div><a name="listeners"></a><a name="config-listeners"></a><a href="Ext.state.Stateful.html#" rel="config-listeners" class="cls expand">listeners</a><span> : Object</span></div><div class="description"><div class="short">(optional) A config object containing one or more event handlers to be added to this
40 object during initialization.  T...</div><div class="long"><p>(optional) <p>A config object containing one or more event handlers to be added to this
41 object during initialization.  This should be a valid listeners config object as specified in the
42 <a href="Ext.state.Stateful.html#addListener" rel="Ext.state.Stateful#addListener" class="docClass">addListener</a> example for attaching multiple handlers at once.</p></p>
43
44 <br><p><b><u>DOM events from ExtJs <a href="Ext.Component.html" rel="Ext.Component" class="docClass">Components</a></u></b></p>
45
46
47 <br><p>While <i>some</i> ExtJs Component classes export selected DOM events (e.g. "click", "mouseover" etc), this
48
49
50 <p>is usually only done when extra value can be added. For example the <a href="Ext.view.View.html" rel="Ext.view.View" class="docClass">DataView</a>'s
51 <b><code><a href="Ext.view.View.html#click" rel="Ext.view.View#click" class="docClass">click</a></code></b> event passing the node clicked on. To access DOM
52 events directly from a child element of a Component, we need to specify the <code>element</code> option to
53 identify the Component property to add a DOM listener to:</p>
54
55 <pre><code>new Ext.panel.Panel({
56     width: 400,
57     height: 200,
58     dockedItems: [{
59         xtype: 'toolbar'
60     }],
61     listeners: {
62         click: {
63             element: 'el', //bind to the underlying el property on the panel
64             fn: function(){ console.log('click el'); }
65         },
66         dblclick: {
67             element: 'body', //bind to the underlying body property on the panel
68             fn: function(){ console.log('dblclick body'); }
69         }
70     }
71 });
72 </code></pre>
73
74
75 <p></p></p>
76 </div></div></div><div id="config-saveBuffer" class="member ni"><a href="Ext.state.Stateful.html#config-saveBuffer" rel="config-saveBuffer" class="expand more"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.state.Stateful.html" class="definedIn docClass">Ext.state.Stateful</a><br/><a href="../source/Stateful.html#Ext-state.Stateful-cfg-saveBuffer" class="viewSource">view source</a></div><a name="saveBuffer"></a><a name="config-saveBuffer"></a><a href="Ext.state.Stateful.html#" rel="config-saveBuffer" class="cls expand">saveBuffer</a><span> : Number</span></div><div class="description"><div class="short"><p>A buffer to be applied if many state events are fired within
77 a short period. Defaults to 100.</p>
78 </div><div class="long"><p>A buffer to be applied if many state events are fired within
79 a short period. Defaults to 100.</p>
80 </div></div></div><div id="config-stateEvents" class="member ni"><a href="Ext.state.Stateful.html#config-stateEvents" rel="config-stateEvents" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.state.Stateful.html" class="definedIn docClass">Ext.state.Stateful</a><br/><a href="../source/Stateful.html#Ext-state.Stateful-cfg-stateEvents" class="viewSource">view source</a></div><a name="stateEvents"></a><a name="config-stateEvents"></a><a href="Ext.state.Stateful.html#" rel="config-stateEvents" class="cls expand">stateEvents</a><span> : Array</span></div><div class="description"><div class="short">An array of events that, when fired, should trigger this object to
81 save its state (defaults to none). stateEvents may...</div><div class="long"><p>An array of events that, when fired, should trigger this object to
82 save its state (defaults to none). <code>stateEvents</code> may be any type
83 of event supported by this object, including browser or custom events
84 (e.g., <tt>['click', 'customerchange']</tt>).</p>
85
86
87 <p>See <code><a href="Ext.state.Stateful.html#stateful" rel="Ext.state.Stateful#stateful" class="docClass">stateful</a></code> for an explanation of saving and
88 restoring object state.</p>
89
90 </div></div></div><div id="config-stateId" class="member ni"><a href="Ext.state.Stateful.html#config-stateId" rel="config-stateId" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.state.Stateful.html" class="definedIn docClass">Ext.state.Stateful</a><br/><a href="../source/Stateful.html#Ext-state.Stateful-cfg-stateId" class="viewSource">view source</a></div><a name="stateId"></a><a name="config-stateId"></a><a href="Ext.state.Stateful.html#" rel="config-stateId" class="cls expand">stateId</a><span> : String</span></div><div class="description"><div class="short">The unique id for this object to use for state management purposes.
91
92 See stateful for an explanation of saving and re...</div><div class="long"><p>The unique id for this object to use for state management purposes.</p>
93
94 <p>See <a href="Ext.state.Stateful.html#stateful" rel="Ext.state.Stateful#stateful" class="docClass">stateful</a> for an explanation of saving and restoring state.</p>
95
96 </div></div></div><div id="config-stateful" class="member ni"><a href="Ext.state.Stateful.html#config-stateful" rel="config-stateful" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.state.Stateful.html" class="definedIn docClass">Ext.state.Stateful</a><br/><a href="../source/Stateful.html#Ext-state.Stateful-cfg-stateful" class="viewSource">view source</a></div><a name="stateful"></a><a name="config-stateful"></a><a href="Ext.state.Stateful.html#" rel="config-stateful" class="cls expand">stateful</a><span> : Boolean</span></div><div class="description"><div class="short">A flag which causes the object to attempt to restore the state of
97 internal properties from a saved state on startup. ...</div><div class="long"><p>A flag which causes the object to attempt to restore the state of
98 internal properties from a saved state on startup. The object must have
99 a <code><a href="Ext.state.Stateful.html#stateId" rel="Ext.state.Stateful#stateId" class="docClass">stateId</a></code> for state to be managed. 
100 Auto-generated ids are not guaranteed to be stable across page loads and 
101 cannot be relied upon to save and restore the same state for a object.<p>
102 <p>For state saving to work, the state manager's provider must have been
103 set to an implementation of <a href="Ext.state.Provider.html" rel="Ext.state.Provider" class="docClass">Ext.state.Provider</a> which overrides the
104 <a href="Ext.state.Provider.html#set" rel="Ext.state.Provider#set" class="docClass">set</a> and <a href="Ext.state.Provider.html#get" rel="Ext.state.Provider#get" class="docClass">get</a>
105 methods to save and recall name/value pairs. A built-in implementation,
106 <a href="Ext.state.CookieProvider.html" rel="Ext.state.CookieProvider" class="docClass">Ext.state.CookieProvider</a> is available.</p>
107 <p>To set the state provider for the current page:</p>
108 <pre><code>Ext.state.Manager.setProvider(new Ext.state.CookieProvider({
109     expires: new Date(new Date().getTime()+(1000*60*60*24*7)), //7 days from now
110 }));
111 </code></pre>
112 <p>A stateful object attempts to save state when one of the events
113 listed in the <code><a href="Ext.state.Stateful.html#stateEvents" rel="Ext.state.Stateful#stateEvents" class="docClass">stateEvents</a></code> configuration fires.</p>
114 <p>To save state, a stateful object first serializes its state by
115 calling <b><code><a href="Ext.state.Stateful.html#getState" rel="Ext.state.Stateful#getState" class="docClass">getState</a></code></b>. By default, this function does
116 nothing. The developer must provide an implementation which returns an
117 object hash which represents the restorable state of the object.</p>
118 <p>The value yielded by getState is passed to <a href="Ext.state.Manager.html#set" rel="Ext.state.Manager#set" class="docClass">Ext.state.Manager.set</a>
119 which uses the configured <a href="Ext.state.Provider.html" rel="Ext.state.Provider" class="docClass">Ext.state.Provider</a> to save the object
120 keyed by the <code><a href="stateId.html" rel="stateId" class="docClass">stateId</a></code></p>.
121 <p>During construction, a stateful object attempts to <i>restore</i>
122 its state by calling <a href="Ext.state.Manager.html#get" rel="Ext.state.Manager#get" class="docClass">Ext.state.Manager.get</a> passing the
123 <code><a href="Ext.state.Stateful.html#stateId" rel="Ext.state.Stateful#stateId" class="docClass">stateId</a></code></p>
124 <p>The resulting object is passed to <b><code><a href="Ext.state.Stateful.html#applyState" rel="Ext.state.Stateful#applyState" class="docClass">applyState</a></code></b>.
125 The default implementation of <code><a href="Ext.state.Stateful.html#applyState" rel="Ext.state.Stateful#applyState" class="docClass">applyState</a></code> simply copies
126 properties into the object, but a developer may override this to support
127 more behaviour.</p>
128 <p>You can perform extra processing on state save and restore by attaching
129 handlers to the <a href="Ext.state.Stateful.html#beforestaterestore" rel="Ext.state.Stateful#beforestaterestore" class="docClass">beforestaterestore</a>, <a href="Ext.state.Stateful.html#staterestore" rel="Ext.state.Stateful#staterestore" class="docClass">staterestore</a>,
130 <a href="Ext.state.Stateful.html#beforestatesave" rel="Ext.state.Stateful#beforestatesave" class="docClass">beforestatesave</a> and <a href="Ext.state.Stateful.html#statesave" rel="Ext.state.Stateful#statesave" class="docClass">statesave</a> events.</p>
131
132 </div></div></div></div><div class="m-methods"><a name="methods"></a><div class="definedBy">Defined By</div><h3 class="mth p">Methods</h3><div id="method-addEvents" class="member f inherited"><a href="Ext.state.Stateful.html#method-addEvents" rel="method-addEvents" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.util.Observable.html" class="definedIn docClass">Ext.util.Observable</a><br/><a href="../source/Observable.html#Ext-util.Observable-method-addEvents" class="viewSource">view source</a></div><a name="addEvents"></a><a name="method-addEvents"></a><a href="Ext.state.Stateful.html#" rel="method-addEvents" class="cls expand">addEvents</a>(
133 <span class="pre">Object/String o, String </span>)
134  : void</div><div class="description"><div class="short"><p>Adds the specified events to the list of events which this Observable may fire.</p>
135 </div><div class="long"><p>Adds the specified events to the list of events which this Observable may fire.</p>
136 <h3 class="pa">Parameters</h3><ul><li><span class="pre">o</span> : Object/String<div class="sub-desc"><p>Either an object with event names as properties with a value of <code>true</code>
137 or the first event name string if multiple event names are being passed as separate parameters.</p>
138 </div></li><li><span class="pre"></span> : String<div class="sub-desc"><p>[additional] Optional additional event names if multiple event names are being passed as separate parameters.
139 Usage:</p>
140
141 <pre><code>this.addEvents('storeloaded', 'storecleared');
142 </code></pre>
143
144 </div></li></ul><h3 class="pa">Returns</h3><ul><li><span class="pre">void</span>&nbsp; &nbsp;
145 </li></ul></div></div></div><div id="method-addListener" class="member inherited"><a href="Ext.state.Stateful.html#method-addListener" rel="method-addListener" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.util.Observable.html" class="definedIn docClass">Ext.util.Observable</a><br/><a href="../source/Observable.html#Ext-util.Observable-method-addListener" class="viewSource">view source</a></div><a name="addListener"></a><a name="method-addListener"></a><a href="Ext.state.Stateful.html#" rel="method-addListener" class="cls expand">addListener</a>(
146 <span class="pre">String eventName, Function handler, [Object scope], [Object options]</span>)
147  : void</div><div class="description"><div class="short"><p>Appends an event handler to this object.</p>
148 </div><div class="long"><p>Appends an event handler to this object.</p>
149 <h3 class="pa">Parameters</h3><ul><li><span class="pre">eventName</span> : String<div class="sub-desc"><p>The name of the event to listen for. May also be an object who's property names are event names. See</p>
150 </div></li><li><span class="pre">handler</span> : Function<div class="sub-desc"><p>The method the event invokes.</p>
151 </div></li><li><span class="pre">scope</span> : Object<div class="sub-desc"><p>(optional) The scope (<code><b>this</b></code> reference) in which the handler function is executed.
152 <b>If omitted, defaults to the object which fired the event.</b></p>
153 </div></li><li><span class="pre">options</span> : Object<div class="sub-desc"><p>(optional) An object containing handler configuration.
154 properties. This may contain any of the following properties:<ul>
155 <li><b>scope</b> : Object<div class="sub-desc">The scope (<code><b>this</b></code> reference) in which the handler function is executed.
156 <b>If omitted, defaults to the object which fired the event.</b></div></li>
157 <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>
158 <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>
159 <li><b>buffer</b> : Number<div class="sub-desc">Causes the handler to be scheduled to run in an <a href="Ext.util.DelayedTask.html" rel="Ext.util.DelayedTask" class="docClass">Ext.util.DelayedTask</a> delayed
160 by the specified number of milliseconds. If the event fires again within that time, the original
161 handler is <em>not</em> invoked, but the new handler is scheduled in its place.</div></li>
162 <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>
163 if the event was bubbled up from a child Observable.</div></li>
164 <li><b>element</b> : String<div class="sub-desc"><b>This option is only valid for listeners bound to <a href="Ext.Component.html" rel="Ext.Component" class="docClass">Components</a>.</b>
165 The name of a Component property which references an element to add a listener to.</p>
166
167 <p>This option is useful during Component construction to add DOM event listeners to elements of <a href="Ext.Component.html" rel="Ext.Component" class="docClass">Components</a> which
168 will exist only after the Component is rendered. For example, to add a click listener to a Panel's body:
169 <pre><code>new Ext.panel.Panel({
170     title: 'The title',
171     listeners: {
172         click: this.handlePanelClick,
173         element: 'body'
174     }
175 });
176 </code></pre></p>
177
178
179 <p>When added in this way, the options available are the options applicable to <a href="Ext.core.Element.html#addListener" rel="Ext.core.Element#addListener" class="docClass">Ext.core.Element.addListener</a></p>
180
181
182 <p></div></li>
183 </ul><br></p>
184
185 <p>
186 <b>Combining Options</b><br>
187 Using the options argument, it is possible to combine different types of listeners:<br>
188 <br>
189 A delayed, one-time listener.
190 <pre><code>myPanel.on('hide', this.handleClick, this, {
191 single: true,
192 delay: 100
193 });</code></pre>
194 <p>
195 <b>Attaching multiple handlers in 1 call</b><br>
196 The method also allows for a single argument to be passed which is a config object containing properties
197 which specify multiple events. For example:
198 <pre><code>myGridPanel.on({
199     cellClick: this.onCellClick,
200     mouseover: this.onMouseOver,
201     mouseout: this.onMouseOut,
202     scope: this // Important. Ensure "this" is correct during handler execution
203 });
204 </code></pre>.
205 <p>
206
207 </div></li></ul><h3 class="pa">Returns</h3><ul><li><span class="pre">void</span>&nbsp; &nbsp;
208 </li></ul></div></div></div><div id="method-addManagedListener" class="member inherited"><a href="Ext.state.Stateful.html#method-addManagedListener" rel="method-addManagedListener" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.util.Observable.html" class="definedIn docClass">Ext.util.Observable</a><br/><a href="../source/Observable.html#Ext-util.Observable-method-addManagedListener" class="viewSource">view source</a></div><a name="addManagedListener"></a><a name="method-addManagedListener"></a><a href="Ext.state.Stateful.html#" rel="method-addManagedListener" class="cls expand">addManagedListener</a>(
209 <span class="pre">Observable/Element item, Object/String ename, Function fn, Object scope, Object opt</span>)
210  : void</div><div class="description"><div class="short"><p>Adds listeners to any Observable object (or Element) which are automatically removed when this Component
211 is destroyed.
212
213 </div><div class="long"><p>Adds listeners to any Observable object (or Element) which are automatically removed when this Component
214 is destroyed.
215
216 <h3 class="pa">Parameters</h3><ul><li><span class="pre">item</span> : Observable/Element<div class="sub-desc"><p>The item to which to add a listener/listeners.</p>
217 </div></li><li><span class="pre">ename</span> : Object/String<div class="sub-desc"><p>The event name, or an object containing event name properties.</p>
218 </div></li><li><span class="pre">fn</span> : Function<div class="sub-desc"><p>Optional. If the <code>ename</code> parameter was an event name, this
219 is the handler function.</p>
220 </div></li><li><span class="pre">scope</span> : Object<div class="sub-desc"><p>Optional. If the <code>ename</code> parameter was an event name, this
221 is the scope (<code>this</code> reference) in which the handler function is executed.</p>
222 </div></li><li><span class="pre">opt</span> : Object<div class="sub-desc"><p>Optional. If the <code>ename</code> parameter was an event name, this
223 is the <a href="Ext.util.Observable.html#addListener" rel="Ext.util.Observable#addListener" class="docClass">addListener</a> options.</p>
224 </div></li></ul><h3 class="pa">Returns</h3><ul><li><span class="pre">void</span>&nbsp; &nbsp;
225 </li></ul></div></div></div><div id="method-addStateEvents" class="member ni"><a href="Ext.state.Stateful.html#method-addStateEvents" rel="method-addStateEvents" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.state.Stateful.html" class="definedIn docClass">Ext.state.Stateful</a><br/><a href="../source/Stateful.html#Ext-state.Stateful-method-addStateEvents" class="viewSource">view source</a></div><a name="addStateEvents"></a><a name="method-addStateEvents"></a><a href="Ext.state.Stateful.html#" rel="method-addStateEvents" class="cls expand">addStateEvents</a>(
226 <span class="pre">String/Array events</span>)
227  : void</div><div class="description"><div class="short"><p>Add events that will trigger the state to be saved.</p>
228 </div><div class="long"><p>Add events that will trigger the state to be saved.</p>
229 <h3 class="pa">Parameters</h3><ul><li><span class="pre">events</span> : String/Array<div class="sub-desc"><p>The event name or an array of event names.</p>
230 </div></li></ul><h3 class="pa">Returns</h3><ul><li><span class="pre">void</span>&nbsp; &nbsp;
231 </li></ul></div></div></div><div id="method-applyState" class="member ni"><a href="Ext.state.Stateful.html#method-applyState" rel="method-applyState" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.state.Stateful.html" class="definedIn docClass">Ext.state.Stateful</a><br/><a href="../source/Stateful.html#Ext-state.Stateful-method-applyState" class="viewSource">view source</a></div><a name="applyState"></a><a name="method-applyState"></a><a href="Ext.state.Stateful.html#" rel="method-applyState" class="cls expand">applyState</a>(
232 <span class="pre">Object state</span>)
233  : void</div><div class="description"><div class="short">Applies the state to the object. This should be overridden in subclasses to do
234 more complex state operations. By defa...</div><div class="long"><p>Applies the state to the object. This should be overridden in subclasses to do
235 more complex state operations. By default it applies the state properties onto
236 the current object.</p>
237 <h3 class="pa">Parameters</h3><ul><li><span class="pre">state</span> : Object<div class="sub-desc"><p>The state</p>
238 </div></li></ul><h3 class="pa">Returns</h3><ul><li><span class="pre">void</span>&nbsp; &nbsp;
239 </li></ul></div></div></div><div id="method-capture" class="member inherited"><a href="Ext.state.Stateful.html#method-capture" rel="method-capture" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.util.Observable.html" class="definedIn docClass">Ext.util.Observable</a><br/><a href="../source/Observable.html#Ext-util.Observable-method-capture" class="viewSource">view source</a></div><a name="capture"></a><a name="method-capture"></a><a href="Ext.state.Stateful.html#" rel="method-capture" class="cls expand">capture</a>(
240 <span class="pre">Observable o, Function fn, [Object scope]</span>)
241  : void</div><div class="description"><div class="short">Starts capture on the specified Observable. All events will be passed
242 to the supplied function with the event name + ...</div><div class="long"><p>Starts capture on the specified Observable. All events will be passed
243 to the supplied function with the event name + standard signature of the event
244 <b>before</b> the event is fired. If the supplied function returns false,
245 the event will not fire.</p>
246 <h3 class="pa">Parameters</h3><ul><li><span class="pre">o</span> : Observable<div class="sub-desc"><p>The Observable to capture events from.</p>
247 </div></li><li><span class="pre">fn</span> : Function<div class="sub-desc"><p>The function to call when an event is fired.</p>
248 </div></li><li><span class="pre">scope</span> : Object<div class="sub-desc"><p>(optional) The scope (<code>this</code> reference) in which the function is executed. Defaults to the Observable firing the event.</p>
249 </div></li></ul><h3 class="pa">Returns</h3><ul><li><span class="pre">void</span>&nbsp; &nbsp;
250 </li></ul></div></div></div><div id="method-clearListeners" class="member inherited"><a href="Ext.state.Stateful.html#method-clearListeners" rel="method-clearListeners" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.util.Observable.html" class="definedIn docClass">Ext.util.Observable</a><br/><a href="../source/Observable.html#Ext-util.Observable-method-clearListeners" class="viewSource">view source</a></div><a name="clearListeners"></a><a name="method-clearListeners"></a><a href="Ext.state.Stateful.html#" rel="method-clearListeners" class="cls expand">clearListeners</a> : void</div><div class="description"><div class="short"><p>Removes all listeners for this object including the managed listeners</p>
251 </div><div class="long"><p>Removes all listeners for this object including the managed listeners</p>
252 <h3 class="pa">Returns</h3><ul><li><span class="pre">void</span>&nbsp; &nbsp;
253 </li></ul></div></div></div><div id="method-clearManagedListeners" class="member inherited"><a href="Ext.state.Stateful.html#method-clearManagedListeners" rel="method-clearManagedListeners" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.util.Observable.html" class="definedIn docClass">Ext.util.Observable</a><br/><a href="../source/Observable.html#Ext-util.Observable-method-clearManagedListeners" class="viewSource">view source</a></div><a name="clearManagedListeners"></a><a name="method-clearManagedListeners"></a><a href="Ext.state.Stateful.html#" rel="method-clearManagedListeners" class="cls expand">clearManagedListeners</a> : void</div><div class="description"><div class="short"><p>Removes all managed listeners for this object.</p>
254 </div><div class="long"><p>Removes all managed listeners for this object.</p>
255 <h3 class="pa">Returns</h3><ul><li><span class="pre">void</span>&nbsp; &nbsp;
256 </li></ul></div></div></div><div id="method-destroy" class="member ni"><a href="Ext.state.Stateful.html#method-destroy" rel="method-destroy" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.state.Stateful.html" class="definedIn docClass">Ext.state.Stateful</a><br/><a href="../source/Stateful.html#Ext-state.Stateful-method-destroy" class="viewSource">view source</a></div><a name="destroy"></a><a name="method-destroy"></a><a href="Ext.state.Stateful.html#" rel="method-destroy" class="cls expand">destroy</a> : void</div><div class="description"><div class="short"><p>Destroys this stateful object.</p>
257 </div><div class="long"><p>Destroys this stateful object.</p>
258 <h3 class="pa">Returns</h3><ul><li><span class="pre">void</span>&nbsp; &nbsp;
259 </li></ul></div></div></div><div id="method-enableBubble" class="member inherited"><a href="Ext.state.Stateful.html#method-enableBubble" rel="method-enableBubble" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.util.Observable.html" class="definedIn docClass">Ext.util.Observable</a><br/><a href="../source/Observable.html#Ext-util.Observable-method-enableBubble" class="viewSource">view source</a></div><a name="enableBubble"></a><a name="method-enableBubble"></a><a href="Ext.state.Stateful.html#" rel="method-enableBubble" class="cls expand">enableBubble</a>(
260 <span class="pre">String/Array events</span>)
261  : void</div><div class="description"><div class="short">Enables events fired by this Observable to bubble up an owner hierarchy by calling
262 this.getBubbleTarget() if present....</div><div class="long"><p>Enables events fired by this Observable to bubble up an owner hierarchy by calling
263 <code>this.getBubbleTarget()</code> if present. There is no implementation in the Observable base class.</p>
264
265
266 <p>This is commonly used by Ext.Components to bubble events to owner Containers. See <a href="Ext.Component.html#getBubbleTarget" rel="Ext.Component#getBubbleTarget" class="docClass">Ext.Component.getBubbleTarget</a>. The default
267 implementation in <a href="Ext.Component.html" rel="Ext.Component" class="docClass">Ext.Component</a> returns the Component's immediate owner. But if a known target is required, this can be overridden to
268 access the required target more quickly.</p>
269
270
271 <p>Example:</p>
272
273
274 <pre><code>Ext.override(Ext.form.field.Base, {
275 //  Add functionality to Field&#39;s initComponent to enable the change event to bubble
276 initComponent : Ext.Function.createSequence(Ext.form.field.Base.prototype.initComponent, function() {
277     this.enableBubble('change');
278 }),
279
280 //  We know that we want Field&#39;s events to bubble directly to the FormPanel.
281 getBubbleTarget : function() {
282     if (!this.formPanel) {
283         this.formPanel = this.findParentByType('form');
284     }
285     return this.formPanel;
286 }
287 });
288
289 var myForm = new Ext.formPanel({
290 title: 'User Details',
291 items: [{
292     ...
293 }],
294 listeners: {
295     change: function() {
296         // Title goes red if form has been modified.
297         myForm.header.setStyle('color', 'red');
298     }
299 }
300 });
301 </code></pre>
302
303 <h3 class="pa">Parameters</h3><ul><li><span class="pre">events</span> : String/Array<div class="sub-desc"><p>The event name to bubble, or an Array of event names.</p>
304 </div></li></ul><h3 class="pa">Returns</h3><ul><li><span class="pre">void</span>&nbsp; &nbsp;
305 </li></ul></div></div></div><div id="method-fireEvent" class="member inherited"><a href="Ext.state.Stateful.html#method-fireEvent" rel="method-fireEvent" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.util.Observable.html" class="definedIn docClass">Ext.util.Observable</a><br/><a href="../source/Observable.html#Ext-util.Observable-method-fireEvent" class="viewSource">view source</a></div><a name="fireEvent"></a><a name="method-fireEvent"></a><a href="Ext.state.Stateful.html#" rel="method-fireEvent" class="cls expand">fireEvent</a>(
306 <span class="pre">String eventName, Object... args</span>)
307  : Boolean</div><div class="description"><div class="short">Fires the specified event with the passed parameters (minus the event name).
308
309
310 An event may be set to bubble up an Ob...</div><div class="long"><p>Fires the specified event with the passed parameters (minus the event name).</p>
311
312
313 <p>An event may be set to bubble up an Observable parent hierarchy (See <a href="Ext.Component.html#getBubbleTarget" rel="Ext.Component#getBubbleTarget" class="docClass">Ext.Component.getBubbleTarget</a>)
314 by calling <a href="Ext.state.Stateful.html#enableBubble" rel="Ext.state.Stateful#enableBubble" class="docClass">enableBubble</a>.</p>
315
316 <h3 class="pa">Parameters</h3><ul><li><span class="pre">eventName</span> : String<div class="sub-desc"><p>The name of the event to fire.</p>
317 </div></li><li><span class="pre">args</span> : Object...<div class="sub-desc"><p>Variable number of parameters are passed to handlers.</p>
318 </div></li></ul><h3 class="pa">Returns</h3><ul><li><span class="pre">Boolean</span>&nbsp; &nbsp;<p>returns false if any of the handlers return false otherwise it returns true.</p>
319 </li></ul></div></div></div><div id="method-getState" class="member ni"><a href="Ext.state.Stateful.html#method-getState" rel="method-getState" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.state.Stateful.html" class="definedIn docClass">Ext.state.Stateful</a><br/><a href="../source/Stateful.html#Ext-state.Stateful-method-getState" class="viewSource">view source</a></div><a name="getState"></a><a name="method-getState"></a><a href="Ext.state.Stateful.html#" rel="method-getState" class="cls expand">getState</a> : Object</div><div class="description"><div class="short">Gets the current state of the object. By default this function returns null,
320 it should be overridden in subclasses to...</div><div class="long"><p>Gets the current state of the object. By default this function returns null,
321 it should be overridden in subclasses to implement methods for getting the state.</p>
322 <h3 class="pa">Returns</h3><ul><li><span class="pre">Object</span>&nbsp; &nbsp;<p>The current state</p>
323 </li></ul></div></div></div><div id="method-getStateId" class="member ni"><a href="Ext.state.Stateful.html#method-getStateId" rel="method-getStateId" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.state.Stateful.html" class="definedIn docClass">Ext.state.Stateful</a><br/><a href="../source/Stateful.html#Ext-state.Stateful-method-getStateId" class="viewSource">view source</a></div><a name="getStateId"></a><a name="method-getStateId"></a><a href="Ext.state.Stateful.html#" rel="method-getStateId" class="cls expand">getStateId</a> : String</div><div class="description"><div class="short"><p>Gets the state id for this object.</p>
324 </div><div class="long"><p>Gets the state id for this object.</p>
325 <h3 class="pa">Returns</h3><ul><li><span class="pre">String</span>&nbsp; &nbsp;<p>The state id, null if not found.</p>
326 </li></ul></div></div></div><div id="method-hasListener" class="member inherited"><a href="Ext.state.Stateful.html#method-hasListener" rel="method-hasListener" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.util.Observable.html" class="definedIn docClass">Ext.util.Observable</a><br/><a href="../source/Observable.html#Ext-util.Observable-method-hasListener" class="viewSource">view source</a></div><a name="hasListener"></a><a name="method-hasListener"></a><a href="Ext.state.Stateful.html#" rel="method-hasListener" class="cls expand">hasListener</a>(
327 <span class="pre">String eventName</span>)
328  : Boolean</div><div class="description"><div class="short"><p>Checks to see if this object has any listeners for a specified event</p>
329 </div><div class="long"><p>Checks to see if this object has any listeners for a specified event</p>
330 <h3 class="pa">Parameters</h3><ul><li><span class="pre">eventName</span> : String<div class="sub-desc"><p>The name of the event to check for</p>
331 </div></li></ul><h3 class="pa">Returns</h3><ul><li><span class="pre">Boolean</span>&nbsp; &nbsp;<p>True if the event is being listened for, else false</p>
332 </li></ul></div></div></div><div id="method-observe" class="member inherited"><a href="Ext.state.Stateful.html#method-observe" rel="method-observe" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.util.Observable.html" class="definedIn docClass">Ext.util.Observable</a><br/><a href="../source/Observable.html#Ext-util.Observable-method-observe" class="viewSource">view source</a></div><a name="observe"></a><a name="method-observe"></a><a href="Ext.state.Stateful.html#" rel="method-observe" class="cls expand">observe</a>(
333 <span class="pre">Function c, Object listeners</span>)
334  : void</div><div class="description"><div class="short">Sets observability on the passed class constructor.
335
336 This makes any event fired on any instance of the passed class a...</div><div class="long"><p>Sets observability on the passed class constructor.</p>
337
338 <p>This makes any event fired on any instance of the passed class also fire a single event through
339 the <strong>class</strong> allowing for central handling of events on many instances at once.</p>
340
341 <p>Usage:</p>
342
343 <pre><code>Ext.util.Observable.observe(Ext.data.Connection);
344 Ext.data.Connection.on('beforerequest', function(con, options) {
345     console.log('Ajax request made to ' + options.url);
346 });
347 </code></pre>
348 <h3 class="pa">Parameters</h3><ul><li><span class="pre">c</span> : Function<div class="sub-desc"><p>The class constructor to make observable.</p>
349 </div></li><li><span class="pre">listeners</span> : Object<div class="sub-desc"><p>An object containing a series of listeners to add. See <a href="Ext.state.Stateful.html#addListener" rel="Ext.state.Stateful#addListener" class="docClass">addListener</a>.</p>
350 </div></li></ul><h3 class="pa">Returns</h3><ul><li><span class="pre">void</span>&nbsp; &nbsp;
351 </li></ul></div></div></div><div id="method-on" class="member inherited"><a href="Ext.state.Stateful.html#method-on" rel="method-on" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.util.Observable.html" class="definedIn docClass">Ext.util.Observable</a><br/><a href="../source/Observable.html#Ext-util.Observable-method-on" class="viewSource">view source</a></div><a name="on"></a><a name="method-on"></a><a href="Ext.state.Stateful.html#" rel="method-on" class="cls expand">on</a>(
352 <span class="pre">String eventName, Function handler, [Object scope], [Object options]</span>)
353  : void</div><div class="description"><div class="short"><p>Appends an event handler to this object (shorthand for <a href="Ext.state.Stateful.html#addListener" rel="Ext.state.Stateful#addListener" class="docClass">addListener</a>.)</p>
354 </div><div class="long"><p>Appends an event handler to this object (shorthand for <a href="Ext.state.Stateful.html#addListener" rel="Ext.state.Stateful#addListener" class="docClass">addListener</a>.)</p>
355 <h3 class="pa">Parameters</h3><ul><li><span class="pre">eventName</span> : String<div class="sub-desc"><p>The type of event to listen for</p>
356 </div></li><li><span class="pre">handler</span> : Function<div class="sub-desc"><p>The method the event invokes</p>
357 </div></li><li><span class="pre">scope</span> : Object<div class="sub-desc"><p>(optional) The scope (<code><b>this</b></code> reference) in which the handler function is executed.
358 <b>If omitted, defaults to the object which fired the event.</b></p>
359 </div></li><li><span class="pre">options</span> : Object<div class="sub-desc"><p>(optional) An object containing handler configuration.</p>
360 </div></li></ul><h3 class="pa">Returns</h3><ul><li><span class="pre">void</span>&nbsp; &nbsp;
361 </li></ul></div></div></div><div id="method-relayEvents" class="member inherited"><a href="Ext.state.Stateful.html#method-relayEvents" rel="method-relayEvents" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.util.Observable.html" class="definedIn docClass">Ext.util.Observable</a><br/><a href="../source/Observable.html#Ext-util.Observable-method-relayEvents" class="viewSource">view source</a></div><a name="relayEvents"></a><a name="method-relayEvents"></a><a href="Ext.state.Stateful.html#" rel="method-relayEvents" class="cls expand">relayEvents</a>(
362 <span class="pre">Object origin, Array events, Object prefix</span>)
363  : void</div><div class="description"><div class="short"><p>Relays selected events from the specified Observable as if the events were fired by <code><b>this</b></code>.</p>
364 </div><div class="long"><p>Relays selected events from the specified Observable as if the events were fired by <code><b>this</b></code>.</p>
365 <h3 class="pa">Parameters</h3><ul><li><span class="pre">origin</span> : Object<div class="sub-desc"><p>The Observable whose events this object is to relay.</p>
366 </div></li><li><span class="pre">events</span> : Array<div class="sub-desc"><p>Array of event names to relay.</p>
367 </div></li><li><span class="pre">prefix</span> : Object<div class="sub-desc">
368 </div></li></ul><h3 class="pa">Returns</h3><ul><li><span class="pre">void</span>&nbsp; &nbsp;
369 </li></ul></div></div></div><div id="method-releaseCapture" class="member inherited"><a href="Ext.state.Stateful.html#method-releaseCapture" rel="method-releaseCapture" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.util.Observable.html" class="definedIn docClass">Ext.util.Observable</a><br/><a href="../source/Observable.html#Ext-util.Observable-method-releaseCapture" class="viewSource">view source</a></div><a name="releaseCapture"></a><a name="method-releaseCapture"></a><a href="Ext.state.Stateful.html#" rel="method-releaseCapture" class="cls expand">releaseCapture</a>(
370 <span class="pre">Observable o</span>)
371  : void</div><div class="description"><div class="short"><p>Removes <b>all</b> added captures from the Observable.</p>
372 </div><div class="long"><p>Removes <b>all</b> added captures from the Observable.</p>
373 <h3 class="pa">Parameters</h3><ul><li><span class="pre">o</span> : Observable<div class="sub-desc"><p>The Observable to release</p>
374 </div></li></ul><h3 class="pa">Returns</h3><ul><li><span class="pre">void</span>&nbsp; &nbsp;
375 </li></ul></div></div></div><div id="method-removeListener" class="member inherited"><a href="Ext.state.Stateful.html#method-removeListener" rel="method-removeListener" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.util.Observable.html" class="definedIn docClass">Ext.util.Observable</a><br/><a href="../source/Observable.html#Ext-util.Observable-method-removeListener" class="viewSource">view source</a></div><a name="removeListener"></a><a name="method-removeListener"></a><a href="Ext.state.Stateful.html#" rel="method-removeListener" class="cls expand">removeListener</a>(
376 <span class="pre">String eventName, Function handler, [Object scope]</span>)
377  : void</div><div class="description"><div class="short"><p>Removes an event handler.</p>
378 </div><div class="long"><p>Removes an event handler.</p>
379 <h3 class="pa">Parameters</h3><ul><li><span class="pre">eventName</span> : String<div class="sub-desc"><p>The type of event the handler was associated with.</p>
380 </div></li><li><span class="pre">handler</span> : Function<div class="sub-desc"><p>The handler to remove. <b>This must be a reference to the function passed into the <a href="Ext.state.Stateful.html#addListener" rel="Ext.state.Stateful#addListener" class="docClass">addListener</a> call.</b></p>
381 </div></li><li><span class="pre">scope</span> : Object<div class="sub-desc"><p>(optional) The scope originally specified for the handler.</p>
382 </div></li></ul><h3 class="pa">Returns</h3><ul><li><span class="pre">void</span>&nbsp; &nbsp;
383 </li></ul></div></div></div><div id="method-removeManagedListener" class="member inherited"><a href="Ext.state.Stateful.html#method-removeManagedListener" rel="method-removeManagedListener" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.util.Observable.html" class="definedIn docClass">Ext.util.Observable</a><br/><a href="../source/Observable.html#Ext-util.Observable-method-removeManagedListener" class="viewSource">view source</a></div><a name="removeManagedListener"></a><a name="method-removeManagedListener"></a><a href="Ext.state.Stateful.html#" rel="method-removeManagedListener" class="cls expand">removeManagedListener</a>(
384 <span class="pre">Observable|Element item, Object|String ename, Function fn, Object scope</span>)
385  : void</div><div class="description"><div class="short"><p>Removes listeners that were added by the <a href="Ext.state.Stateful.html#mon" rel="Ext.state.Stateful#mon" class="docClass">mon</a> method.</p>
386 </div><div class="long"><p>Removes listeners that were added by the <a href="Ext.state.Stateful.html#mon" rel="Ext.state.Stateful#mon" class="docClass">mon</a> method.</p>
387 <h3 class="pa">Parameters</h3><ul><li><span class="pre">item</span> : Observable|Element<div class="sub-desc"><p>The item from which to remove a listener/listeners.</p>
388 </div></li><li><span class="pre">ename</span> : Object|String<div class="sub-desc"><p>The event name, or an object containing event name properties.</p>
389 </div></li><li><span class="pre">fn</span> : Function<div class="sub-desc"><p>Optional. If the <code>ename</code> parameter was an event name, this
390 is the handler function.</p>
391 </div></li><li><span class="pre">scope</span> : Object<div class="sub-desc"><p>Optional. If the <code>ename</code> parameter was an event name, this
392 is the scope (<code>this</code> reference) in which the handler function is executed.</p>
393 </div></li></ul><h3 class="pa">Returns</h3><ul><li><span class="pre">void</span>&nbsp; &nbsp;
394 </li></ul></div></div></div><div id="method-resumeEvents" class="member inherited"><a href="Ext.state.Stateful.html#method-resumeEvents" rel="method-resumeEvents" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.util.Observable.html" class="definedIn docClass">Ext.util.Observable</a><br/><a href="../source/Observable.html#Ext-util.Observable-method-resumeEvents" class="viewSource">view source</a></div><a name="resumeEvents"></a><a name="method-resumeEvents"></a><a href="Ext.state.Stateful.html#" rel="method-resumeEvents" class="cls expand">resumeEvents</a> : void</div><div class="description"><div class="short">Resume firing events. (see suspendEvents)
395 If events were suspended using the queueSuspended parameter, then all
396 event...</div><div class="long"><p>Resume firing events. (see <a href="Ext.state.Stateful.html#suspendEvents" rel="Ext.state.Stateful#suspendEvents" class="docClass">suspendEvents</a>)
397 If events were suspended using the <code><b>queueSuspended</b></code> parameter, then all
398 events fired during event suspension will be sent to any listeners now.</p>
399 <h3 class="pa">Returns</h3><ul><li><span class="pre">void</span>&nbsp; &nbsp;
400 </li></ul></div></div></div><div id="method-suspendEvents" class="member inherited"><a href="Ext.state.Stateful.html#method-suspendEvents" rel="method-suspendEvents" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.util.Observable.html" class="definedIn docClass">Ext.util.Observable</a><br/><a href="../source/Observable.html#Ext-util.Observable-method-suspendEvents" class="viewSource">view source</a></div><a name="suspendEvents"></a><a name="method-suspendEvents"></a><a href="Ext.state.Stateful.html#" rel="method-suspendEvents" class="cls expand">suspendEvents</a>(
401 <span class="pre">Boolean queueSuspended</span>)
402  : void</div><div class="description"><div class="short"><p>Suspend the firing of all events. (see <a href="Ext.state.Stateful.html#resumeEvents" rel="Ext.state.Stateful#resumeEvents" class="docClass">resumeEvents</a>)</p>
403 </div><div class="long"><p>Suspend the firing of all events. (see <a href="Ext.state.Stateful.html#resumeEvents" rel="Ext.state.Stateful#resumeEvents" class="docClass">resumeEvents</a>)</p>
404 <h3 class="pa">Parameters</h3><ul><li><span class="pre">queueSuspended</span> : Boolean<div class="sub-desc"><p>Pass as true to queue up suspended events to be fired
405 after the <a href="Ext.state.Stateful.html#resumeEvents" rel="Ext.state.Stateful#resumeEvents" class="docClass">resumeEvents</a> call instead of discarding all suspended events;</p>
406 </div></li></ul><h3 class="pa">Returns</h3><ul><li><span class="pre">void</span>&nbsp; &nbsp;
407 </li></ul></div></div></div><div id="method-un" class="member inherited"><a href="Ext.state.Stateful.html#method-un" rel="method-un" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.util.Observable.html" class="definedIn docClass">Ext.util.Observable</a><br/><a href="../source/Observable.html#Ext-util.Observable-method-un" class="viewSource">view source</a></div><a name="un"></a><a name="method-un"></a><a href="Ext.state.Stateful.html#" rel="method-un" class="cls expand">un</a>(
408 <span class="pre">String eventName, Function handler, [Object scope]</span>)
409  : void</div><div class="description"><div class="short"><p>Removes an event handler (shorthand for <a href="Ext.state.Stateful.html#removeListener" rel="Ext.state.Stateful#removeListener" class="docClass">removeListener</a>.)</p>
410 </div><div class="long"><p>Removes an event handler (shorthand for <a href="Ext.state.Stateful.html#removeListener" rel="Ext.state.Stateful#removeListener" class="docClass">removeListener</a>.)</p>
411 <h3 class="pa">Parameters</h3><ul><li><span class="pre">eventName</span> : String<div class="sub-desc"><p>The type of event the handler was associated with.</p>
412 </div></li><li><span class="pre">handler</span> : Function<div class="sub-desc"><p>The handler to remove. <b>This must be a reference to the function passed into the <a href="Ext.state.Stateful.html#addListener" rel="Ext.state.Stateful#addListener" class="docClass">addListener</a> call.</b></p>
413 </div></li><li><span class="pre">scope</span> : Object<div class="sub-desc"><p>(optional) The scope originally specified for the handler.</p>
414 </div></li></ul><h3 class="pa">Returns</h3><ul><li><span class="pre">void</span>&nbsp; &nbsp;
415 </li></ul></div></div></div></div><div class="m-events"><a name="events"></a><div class="definedBy">Defined By</div><h3 class="evt p">Events</h3><div id="event-beforestaterestore" class="member f ni"><a href="Ext.state.Stateful.html#event-beforestaterestore" rel="event-beforestaterestore" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.state.Stateful.html" class="definedIn docClass">Ext.state.Stateful</a><br/><a href="../source/Stateful.html#Ext-state.Stateful-event-beforestaterestore" class="viewSource">view source</a></div><a name="beforestaterestore"></a><a name="event-beforestaterestore"></a><a href="Ext.state.Stateful.html#" rel="event-beforestaterestore" class="cls expand">beforestaterestore</a>(
416 <span class="pre">Ext.state.Stateful this, Object state</span>)
417 </div><div class="description"><div class="short"><p>Fires before the state of the object is restored. Return false from an event handler to stop the restore.</p>
418 </div><div class="long"><p>Fires before the state of the object is restored. Return false from an event handler to stop the restore.</p>
419 <h3 class="pa">Parameters</h3><ul><li><span class="pre">this</span> : Ext.state.Stateful<div class="sub-desc">
420 </div></li><li><span class="pre">state</span> : Object<div class="sub-desc"><p>The hash of state values returned from the StateProvider. If this
421 event is not vetoed, then the state object is passed to <b><tt>applyState</tt></b>. By default,
422 that simply copies property values into this object. The method maybe overriden to
423 provide custom state restoration.</p>
424 </div></li></ul></div></div></div><div id="event-beforestatesave" class="member ni"><a href="Ext.state.Stateful.html#event-beforestatesave" rel="event-beforestatesave" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.state.Stateful.html" class="definedIn docClass">Ext.state.Stateful</a><br/><a href="../source/Stateful.html#Ext-state.Stateful-event-beforestatesave" class="viewSource">view source</a></div><a name="beforestatesave"></a><a name="event-beforestatesave"></a><a href="Ext.state.Stateful.html#" rel="event-beforestatesave" class="cls expand">beforestatesave</a>(
425 <span class="pre">Ext.state.Stateful this, Object state</span>)
426 </div><div class="description"><div class="short"><p>Fires before the state of the object is saved to the configured state provider. Return false to stop the save.</p>
427 </div><div class="long"><p>Fires before the state of the object is saved to the configured state provider. Return false to stop the save.</p>
428 <h3 class="pa">Parameters</h3><ul><li><span class="pre">this</span> : Ext.state.Stateful<div class="sub-desc">
429 </div></li><li><span class="pre">state</span> : Object<div class="sub-desc"><p>The hash of state values. This is determined by calling
430 <b><tt>getState()</tt></b> on the object. This method must be provided by the
431 developer to return whetever representation of state is required, by default, <a href="Ext.state.Stateful.html" rel="Ext.state.Stateful" class="docClass">Ext.state.Stateful</a>
432 has a null implementation.</p>
433 </div></li></ul></div></div></div><div id="event-staterestore" class="member ni"><a href="Ext.state.Stateful.html#event-staterestore" rel="event-staterestore" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.state.Stateful.html" class="definedIn docClass">Ext.state.Stateful</a><br/><a href="../source/Stateful.html#Ext-state.Stateful-event-staterestore" class="viewSource">view source</a></div><a name="staterestore"></a><a name="event-staterestore"></a><a href="Ext.state.Stateful.html#" rel="event-staterestore" class="cls expand">staterestore</a>(
434 <span class="pre">Ext.state.Stateful this, Object state</span>)
435 </div><div class="description"><div class="short"><p>Fires after the state of the object is restored.</p>
436 </div><div class="long"><p>Fires after the state of the object is restored.</p>
437 <h3 class="pa">Parameters</h3><ul><li><span class="pre">this</span> : Ext.state.Stateful<div class="sub-desc">
438 </div></li><li><span class="pre">state</span> : Object<div class="sub-desc"><p>The hash of state values returned from the StateProvider. This is passed
439 to <b><tt>applyState</tt></b>. By default, that simply copies property values into this
440 object. The method maybe overriden to provide custom state restoration.</p>
441 </div></li></ul></div></div></div><div id="event-statesave" class="member ni"><a href="Ext.state.Stateful.html#event-statesave" rel="event-statesave" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.state.Stateful.html" class="definedIn docClass">Ext.state.Stateful</a><br/><a href="../source/Stateful.html#Ext-state.Stateful-event-statesave" class="viewSource">view source</a></div><a name="statesave"></a><a name="event-statesave"></a><a href="Ext.state.Stateful.html#" rel="event-statesave" class="cls expand">statesave</a>(
442 <span class="pre">Ext.state.Stateful this, Object state</span>)
443 </div><div class="description"><div class="short"><p>Fires after the state of the object is saved to the configured state provider.</p>
444 </div><div class="long"><p>Fires after the state of the object is saved to the configured state provider.</p>
445 <h3 class="pa">Parameters</h3><ul><li><span class="pre">this</span> : Ext.state.Stateful<div class="sub-desc">
446 </div></li><li><span class="pre">state</span> : Object<div class="sub-desc"><p>The hash of state values. This is determined by calling
447 <b><tt>getState()</tt></b> on the object. This method must be provided by the
448 developer to return whetever representation of state is required, by default, <a href="Ext.state.Stateful.html" rel="Ext.state.Stateful" class="docClass">Ext.state.Stateful</a>
449 has a null implementation.</p>
450 </div></li></ul></div></div></div></div></div></div></div><div id="pageContent"></div></div></div></div></body></html>