Fix #5718 - Change the order / layout of tabs. / new master lists
[roojs1] / docs / src / Roo_Editor.js.html
1 <html><head><title>/home/edward/gitlive/roojs1/Roo/Editor.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty"><span class="jsdoc-comment">/*
2  * Based on:
3  * Ext JS Library 1.1.1
4  * Copyright(c) 2006-2007, Ext JS, LLC.
5  *
6  * Originally Released Under LGPL - original licence link has changed is not relivant.
7  *
8  * Fork - LGPL
9  * &lt;script type=&quot;text/javascript&quot;&gt;
10  */
11
12 /**
13  * @class Roo.Editor
14  * @extends Roo.Component
15  * A base editor field that handles displaying/hiding on demand and has some built-in sizing and event handling logic.
16  * @constructor
17  * Create a new Editor
18  * @param {Roo.form.Field} field The Field object (or descendant)
19  * @param {Object} config The config object
20  */
21 </span><span class="jsdoc-var">Roo.Editor </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">field</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">){
22     </span><span class="jsdoc-var">Roo.Editor.superclass.constructor.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">);
23     </span><span class="jsdoc-var">this.field </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">field</span><span class="jsdoc-syntax">;
24     </span><span class="jsdoc-var">this.addEvents</span><span class="jsdoc-syntax">({
25         </span><span class="jsdoc-comment">/**
26              * @event beforestartedit
27              * Fires when editing is initiated, but before the value changes.  Editing can be canceled by returning
28              * false from the handler of this event.
29              * @param {Editor} this
30              * @param {Roo.Element} boundEl The underlying element bound to this editor
31              * @param {Mixed} value The field value being set
32              */
33         </span><span class="jsdoc-string">&quot;beforestartedit&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
34         </span><span class="jsdoc-comment">/**
35              * @event startedit
36              * Fires when this editor is displayed
37              * @param {Roo.Element} boundEl The underlying element bound to this editor
38              * @param {Mixed} value The starting field value
39              */
40         </span><span class="jsdoc-string">&quot;startedit&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
41         </span><span class="jsdoc-comment">/**
42              * @event beforecomplete
43              * Fires after a change has been made to the field, but before the change is reflected in the underlying
44              * field.  Saving the change to the field can be canceled by returning false from the handler of this event.
45              * Note that if the value has not changed and ignoreNoChange = true, the editing will still end but this
46              * event will not fire since no edit actually occurred.
47              * @param {Editor} this
48              * @param {Mixed} value The current field value
49              * @param {Mixed} startValue The original field value
50              */
51         </span><span class="jsdoc-string">&quot;beforecomplete&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
52         </span><span class="jsdoc-comment">/**
53              * @event complete
54              * Fires after editing is complete and any changed value has been written to the underlying field.
55              * @param {Editor} this
56              * @param {Mixed} value The current field value
57              * @param {Mixed} startValue The original field value
58              */
59         </span><span class="jsdoc-string">&quot;complete&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
60         </span><span class="jsdoc-comment">/**
61          * @event specialkey
62          * Fires when any key related to navigation (arrows, tab, enter, esc, etc.) is pressed.  You can check
63          * {@link Roo.EventObject#getKey} to determine which key was pressed.
64          * @param {Roo.form.Field} this
65          * @param {Roo.EventObject} e The event object
66          */
67         </span><span class="jsdoc-string">&quot;specialkey&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true
68     </span><span class="jsdoc-syntax">});
69 };
70
71 </span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.Editor</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.Component</span><span class="jsdoc-syntax">, {
72     </span><span class="jsdoc-comment">/**
73      * @cfg {Boolean/String} autosize
74      * True for the editor to automatically adopt the size of the underlying field, &quot;width&quot; to adopt the width only,
75      * or &quot;height&quot; to adopt the height only (defaults to false)
76      */
77     /**
78      * @cfg {Boolean} revertInvalid
79      * True to automatically revert the field value and cancel the edit when the user completes an edit and the field
80      * validation fails (defaults to true)
81      */
82     /**
83      * @cfg {Boolean} ignoreNoChange
84      * True to skip the the edit completion process (no save, no events fired) if the user completes an edit and
85      * the value has not changed (defaults to false).  Applies only to string values - edits for other data types
86      * will never be ignored.
87      */
88     /**
89      * @cfg {Boolean} hideEl
90      * False to keep the bound element visible while the editor is displayed (defaults to true)
91      */
92     /**
93      * @cfg {Mixed} value
94      * The data value of the underlying field (defaults to &quot;&quot;)
95      */
96     </span><span class="jsdoc-var">value </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">,
97     </span><span class="jsdoc-comment">/**
98      * @cfg {String} alignment
99      * The position to align to (see {@link Roo.Element#alignTo} for more details, defaults to &quot;c-c?&quot;).
100      */
101     </span><span class="jsdoc-var">alignment</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;c-c?&quot;</span><span class="jsdoc-syntax">,
102     </span><span class="jsdoc-comment">/**
103      * @cfg {Boolean/String} shadow &quot;sides&quot; for sides/bottom only, &quot;frame&quot; for 4-way shadow, and &quot;drop&quot;
104      * for bottom-right shadow (defaults to &quot;frame&quot;)
105      */
106     </span><span class="jsdoc-var">shadow </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;frame&quot;</span><span class="jsdoc-syntax">,
107     </span><span class="jsdoc-comment">/**
108      * @cfg {Boolean} constrain True to constrain the editor to the viewport
109      */
110     </span><span class="jsdoc-var">constrain </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
111     </span><span class="jsdoc-comment">/**
112      * @cfg {Boolean} completeOnEnter True to complete the edit when the enter key is pressed (defaults to false)
113      */
114     </span><span class="jsdoc-var">completeOnEnter </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
115     </span><span class="jsdoc-comment">/**
116      * @cfg {Boolean} cancelOnEsc True to cancel the edit when the escape key is pressed (defaults to false)
117      */
118     </span><span class="jsdoc-var">cancelOnEsc </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
119     </span><span class="jsdoc-comment">/**
120      * @cfg {Boolean} updateEl True to update the innerHTML of the bound element when the update completes (defaults to false)
121      */
122     </span><span class="jsdoc-var">updateEl </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
123
124     </span><span class="jsdoc-comment">// private
125     </span><span class="jsdoc-var">onRender </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ct</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">position</span><span class="jsdoc-syntax">){
126         </span><span class="jsdoc-var">this.el </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.Layer</span><span class="jsdoc-syntax">({
127             </span><span class="jsdoc-var">shadow</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.shadow</span><span class="jsdoc-syntax">,
128             </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;x-editor&quot;</span><span class="jsdoc-syntax">,
129             </span><span class="jsdoc-var">parentEl </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">ct</span><span class="jsdoc-syntax">,
130             </span><span class="jsdoc-var">shim </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.shim</span><span class="jsdoc-syntax">,
131             </span><span class="jsdoc-var">shadowOffset</span><span class="jsdoc-syntax">:4,
132             </span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.id</span><span class="jsdoc-syntax">,
133             </span><span class="jsdoc-var">constrain</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.constrain
134         </span><span class="jsdoc-syntax">});
135         </span><span class="jsdoc-var">this.el.setStyle</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;overflow&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.isGecko </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">&quot;auto&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;hidden&quot;</span><span class="jsdoc-syntax">);
136         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.field.msgTarget </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-string">'title'</span><span class="jsdoc-syntax">){
137             </span><span class="jsdoc-var">this.field.msgTarget </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'qtip'</span><span class="jsdoc-syntax">;
138         }
139         </span><span class="jsdoc-var">this.field.render</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.el</span><span class="jsdoc-syntax">);
140         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isGecko</span><span class="jsdoc-syntax">){
141             </span><span class="jsdoc-var">this.field.el.dom.setAttribute</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'autocomplete'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'off'</span><span class="jsdoc-syntax">);
142         }
143         </span><span class="jsdoc-var">this.field.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;specialkey&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onSpecialKey</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
144         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.swallowKeys</span><span class="jsdoc-syntax">){
145             </span><span class="jsdoc-var">this.field.el.swallowEvent</span><span class="jsdoc-syntax">([</span><span class="jsdoc-string">'keydown'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-string">'keypress'</span><span class="jsdoc-syntax">]);
146         }
147         </span><span class="jsdoc-var">this.field.show</span><span class="jsdoc-syntax">();
148         </span><span class="jsdoc-var">this.field.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;blur&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onBlur</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
149         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.field.grow</span><span class="jsdoc-syntax">){
150             </span><span class="jsdoc-var">this.field.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;autosize&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.el.sync</span><span class="jsdoc-syntax">,  </span><span class="jsdoc-var">this.el</span><span class="jsdoc-syntax">, {</span><span class="jsdoc-var">delay</span><span class="jsdoc-syntax">:1});
151         }
152     },
153
154     </span><span class="jsdoc-var">onSpecialKey </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">field</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">)
155     {
156         </span><span class="jsdoc-comment">//Roo.log('editor onSpecialKey');
157         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.completeOnEnter </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">e.getKey</span><span class="jsdoc-syntax">() == </span><span class="jsdoc-var">e.ENTER</span><span class="jsdoc-syntax">){
158             </span><span class="jsdoc-var">e.stopEvent</span><span class="jsdoc-syntax">();
159             </span><span class="jsdoc-var">this.completeEdit</span><span class="jsdoc-syntax">();
160             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
161         }
162         </span><span class="jsdoc-comment">// do not fire special key otherwise it might hide close the editor...
163         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e.getKey</span><span class="jsdoc-syntax">() == </span><span class="jsdoc-var">e.ENTER</span><span class="jsdoc-syntax">){
164             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
165         }
166         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.cancelOnEsc </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">e.getKey</span><span class="jsdoc-syntax">() == </span><span class="jsdoc-var">e.ESC</span><span class="jsdoc-syntax">){
167             </span><span class="jsdoc-var">this.cancelEdit</span><span class="jsdoc-syntax">();
168             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
169         }
170         </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'specialkey'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">field</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">);
171
172     },
173
174     </span><span class="jsdoc-comment">/**
175      * Starts the editing process and shows the editor.
176      * @param {String/HTMLElement/Element} el The element to edit
177      * @param {String} value (optional) A value to initialize the editor with. If a value is not provided, it defaults
178       * to the innerHTML of el.
179      */
180     </span><span class="jsdoc-var">startEdit </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">){
181         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.editing</span><span class="jsdoc-syntax">){
182             </span><span class="jsdoc-var">this.completeEdit</span><span class="jsdoc-syntax">();
183         }
184         </span><span class="jsdoc-var">this.boundEl </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.get</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">);
185         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">v </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">value </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-var">undefined </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">value </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.boundEl.dom.innerHTML</span><span class="jsdoc-syntax">;
186         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.rendered</span><span class="jsdoc-syntax">){
187             </span><span class="jsdoc-var">this.render</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.parentEl </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">document.body</span><span class="jsdoc-syntax">);
188         }
189         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;beforestartedit&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.boundEl</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">) === </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">){
190             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
191         }
192         </span><span class="jsdoc-var">this.startValue </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">;
193         </span><span class="jsdoc-var">this.field.setValue</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">);
194         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.autoSize</span><span class="jsdoc-syntax">){
195             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">sz </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.boundEl.getSize</span><span class="jsdoc-syntax">();
196             </span><span class="jsdoc-keyword">switch</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.autoSize</span><span class="jsdoc-syntax">){
197                 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">&quot;width&quot;</span><span class="jsdoc-syntax">:
198                 </span><span class="jsdoc-var">this.setSize</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">sz.width</span><span class="jsdoc-syntax">,  </span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">);
199                 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
200                 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">&quot;height&quot;</span><span class="jsdoc-syntax">:
201                 </span><span class="jsdoc-var">this.setSize</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">,  </span><span class="jsdoc-var">sz.height</span><span class="jsdoc-syntax">);
202                 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
203                 </span><span class="jsdoc-keyword">default</span><span class="jsdoc-syntax">:
204                 </span><span class="jsdoc-var">this.setSize</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">sz.width</span><span class="jsdoc-syntax">,  </span><span class="jsdoc-var">sz.height</span><span class="jsdoc-syntax">);
205             }
206         }
207         </span><span class="jsdoc-var">this.el.alignTo</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.boundEl</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.alignment</span><span class="jsdoc-syntax">);
208         </span><span class="jsdoc-var">this.editing </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
209         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.QuickTips</span><span class="jsdoc-syntax">){
210             </span><span class="jsdoc-var">Roo.QuickTips.disable</span><span class="jsdoc-syntax">();
211         }
212         </span><span class="jsdoc-var">this.show</span><span class="jsdoc-syntax">();
213     },
214
215     </span><span class="jsdoc-comment">/**
216      * Sets the height and width of this editor.
217      * @param {Number} width The new width
218      * @param {Number} height The new height
219      */
220     </span><span class="jsdoc-var">setSize </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">w</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">h</span><span class="jsdoc-syntax">){
221         </span><span class="jsdoc-var">this.field.setSize</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">w</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">h</span><span class="jsdoc-syntax">);
222         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.el</span><span class="jsdoc-syntax">){
223             </span><span class="jsdoc-var">this.el.sync</span><span class="jsdoc-syntax">();
224         }
225     },
226
227     </span><span class="jsdoc-comment">/**
228      * Realigns the editor to the bound field based on the current alignment config value.
229      */
230     </span><span class="jsdoc-var">realign </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
231         </span><span class="jsdoc-var">this.el.alignTo</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.boundEl</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.alignment</span><span class="jsdoc-syntax">);
232     },
233
234     </span><span class="jsdoc-comment">/**
235      * Ends the editing process, persists the changed value to the underlying field, and hides the editor.
236      * @param {Boolean} remainVisible Override the default behavior and keep the editor visible after edit (defaults to false)
237      */
238     </span><span class="jsdoc-var">completeEdit </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">remainVisible</span><span class="jsdoc-syntax">){
239         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.editing</span><span class="jsdoc-syntax">){
240             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
241         }
242         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">v </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getValue</span><span class="jsdoc-syntax">();
243         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.revertInvalid </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">false </span><span class="jsdoc-syntax">&amp;&amp; !</span><span class="jsdoc-var">this.field.isValid</span><span class="jsdoc-syntax">()){
244             </span><span class="jsdoc-var">v </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.startValue</span><span class="jsdoc-syntax">;
245             </span><span class="jsdoc-var">this.cancelEdit</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
246         }
247         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">String</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">) === </span><span class="jsdoc-var">String</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.startValue</span><span class="jsdoc-syntax">) &amp;&amp; </span><span class="jsdoc-var">this.ignoreNoChange</span><span class="jsdoc-syntax">){
248             </span><span class="jsdoc-var">this.editing </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
249             </span><span class="jsdoc-var">this.hide</span><span class="jsdoc-syntax">();
250             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
251         }
252         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;beforecomplete&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.startValue</span><span class="jsdoc-syntax">) !== </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">){
253             </span><span class="jsdoc-var">this.editing </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
254             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.updateEl </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">this.boundEl</span><span class="jsdoc-syntax">){
255                 </span><span class="jsdoc-var">this.boundEl.update</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">);
256             }
257             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">remainVisible </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">){
258                 </span><span class="jsdoc-var">this.hide</span><span class="jsdoc-syntax">();
259             }
260             </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;complete&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.startValue</span><span class="jsdoc-syntax">);
261         }
262     },
263
264     </span><span class="jsdoc-comment">// private
265     </span><span class="jsdoc-var">onShow </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
266         </span><span class="jsdoc-var">this.el.show</span><span class="jsdoc-syntax">();
267         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.hideEl </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">){
268             </span><span class="jsdoc-var">this.boundEl.hide</span><span class="jsdoc-syntax">();
269         }
270         </span><span class="jsdoc-var">this.field.show</span><span class="jsdoc-syntax">();
271         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isIE </span><span class="jsdoc-syntax">&amp;&amp; !</span><span class="jsdoc-var">this.fixIEFocus</span><span class="jsdoc-syntax">){ </span><span class="jsdoc-comment">// IE has problems with focusing the first time
272             </span><span class="jsdoc-var">this.fixIEFocus </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
273             </span><span class="jsdoc-var">this.deferredFocus.defer</span><span class="jsdoc-syntax">(50, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
274         }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
275             </span><span class="jsdoc-var">this.field.focus</span><span class="jsdoc-syntax">();
276         }
277         </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;startedit&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.boundEl</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.startValue</span><span class="jsdoc-syntax">);
278     },
279
280     </span><span class="jsdoc-var">deferredFocus </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
281         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.editing</span><span class="jsdoc-syntax">){
282             </span><span class="jsdoc-var">this.field.focus</span><span class="jsdoc-syntax">();
283         }
284     },
285
286     </span><span class="jsdoc-comment">/**
287      * Cancels the editing process and hides the editor without persisting any changes.  The field value will be
288      * reverted to the original starting value.
289      * @param {Boolean} remainVisible Override the default behavior and keep the editor visible after
290      * cancel (defaults to false)
291      */
292     </span><span class="jsdoc-var">cancelEdit </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">remainVisible</span><span class="jsdoc-syntax">){
293         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.editing</span><span class="jsdoc-syntax">){
294             </span><span class="jsdoc-var">this.setValue</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.startValue</span><span class="jsdoc-syntax">);
295             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">remainVisible </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">){
296                 </span><span class="jsdoc-var">this.hide</span><span class="jsdoc-syntax">();
297             }
298         }
299     },
300
301     </span><span class="jsdoc-comment">// private
302     </span><span class="jsdoc-var">onBlur </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
303         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.allowBlur </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">true </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">this.editing</span><span class="jsdoc-syntax">){
304             </span><span class="jsdoc-var">this.completeEdit</span><span class="jsdoc-syntax">();
305         }
306     },
307
308     </span><span class="jsdoc-comment">// private
309     </span><span class="jsdoc-var">onHide </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
310         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.editing</span><span class="jsdoc-syntax">){
311             </span><span class="jsdoc-var">this.completeEdit</span><span class="jsdoc-syntax">();
312             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
313         }
314         </span><span class="jsdoc-var">this.field.blur</span><span class="jsdoc-syntax">();
315         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.field.collapse</span><span class="jsdoc-syntax">){
316             </span><span class="jsdoc-var">this.field.collapse</span><span class="jsdoc-syntax">();
317         }
318         </span><span class="jsdoc-var">this.el.hide</span><span class="jsdoc-syntax">();
319         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.hideEl </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">){
320             </span><span class="jsdoc-var">this.boundEl.show</span><span class="jsdoc-syntax">();
321         }
322         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.QuickTips</span><span class="jsdoc-syntax">){
323             </span><span class="jsdoc-var">Roo.QuickTips.enable</span><span class="jsdoc-syntax">();
324         }
325     },
326
327     </span><span class="jsdoc-comment">/**
328      * Sets the data value of the editor
329      * @param {Mixed} value Any valid value supported by the underlying field
330      */
331     </span><span class="jsdoc-var">setValue </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">){
332         </span><span class="jsdoc-var">this.field.setValue</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">);
333     },
334
335     </span><span class="jsdoc-comment">/**
336      * Gets the data value of the editor
337      * @return {Mixed} The data value
338      */
339     </span><span class="jsdoc-var">getValue </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
340         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.field.getValue</span><span class="jsdoc-syntax">();
341     }
342 });</span></code></body></html>