Fix #5718 - Change the order / layout of tabs. / new master lists
[roojs1] / docs / src / Roo_form_Select.js.html
1 <html><head><title>/home/edward/gitlive/roojs1/Roo/form/Select.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 /**
14  * @class Roo.form.ComboBox
15  * @extends Roo.form.TriggerField
16  * A combobox control with support for autocomplete, remote-loading, paging and many other features.
17  * @constructor
18  * Create a new ComboBox.
19  * @param {Object} config Configuration options
20  */
21 </span><span class="jsdoc-var">Roo.form.Select </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">){
22     </span><span class="jsdoc-var">Roo.form.Select.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
24 };
25
26 </span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.form.Select </span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.form.ComboBox</span><span class="jsdoc-syntax">, {
27     </span><span class="jsdoc-comment">/**
28      * @cfg {String/HTMLElement/Element} transform The id, DOM node or element of an existing select to convert to a ComboBox
29      */
30     /**
31      * @cfg {Boolean} lazyRender True to prevent the ComboBox from rendering until requested (should always be used when
32      * rendering into an Roo.Editor, defaults to false)
33      */
34     /**
35      * @cfg {Boolean/Object} autoCreate A DomHelper element spec, or true for a default element spec (defaults to:
36      * {tag: &quot;input&quot;, type: &quot;text&quot;, size: &quot;24&quot;, autocomplete: &quot;off&quot;})
37      */
38     /**
39      * @cfg {Roo.data.Store} store The data store to which this combo is bound (defaults to undefined)
40      */
41     /**
42      * @cfg {String} title If supplied, a header element is created containing this text and added into the top of
43      * the dropdown list (defaults to undefined, with no header element)
44      */
45
46      /**
47      * @cfg {String/Roo.Template} tpl The template to use to render the output
48      */
49
50     // private
51     </span><span class="jsdoc-var">defaultAutoCreate </span><span class="jsdoc-syntax">: {</span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;select&quot;  </span><span class="jsdoc-syntax">},
52     </span><span class="jsdoc-comment">/**
53      * @cfg {Number} listWidth The width in pixels of the dropdown list (defaults to the width of the ComboBox field)
54      */
55     </span><span class="jsdoc-var">listWidth</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">undefined</span><span class="jsdoc-syntax">,
56     </span><span class="jsdoc-comment">/**
57      * @cfg {String} displayField The underlying data field name to bind to this CombBox (defaults to undefined if
58      * mode = 'remote' or 'text' if mode = 'local')
59      */
60     </span><span class="jsdoc-var">displayField</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">undefined</span><span class="jsdoc-syntax">,
61     </span><span class="jsdoc-comment">/**
62      * @cfg {String} valueField The underlying data value name to bind to this CombBox (defaults to undefined if
63      * mode = 'remote' or 'value' if mode = 'local'). 
64      * Note: use of a valueField requires the user make a selection
65      * in order for a value to be mapped.
66      */
67     </span><span class="jsdoc-var">valueField</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">undefined</span><span class="jsdoc-syntax">,
68
69
70     </span><span class="jsdoc-comment">/**
71      * @cfg {String} hiddenName If specified, a hidden form field with this name is dynamically generated to store the
72      * field's data value (defaults to the underlying DOM element's name)
73      */
74     </span><span class="jsdoc-var">hiddenName</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">undefined</span><span class="jsdoc-syntax">,
75     </span><span class="jsdoc-comment">/**
76      * @cfg {String} listClass CSS class to apply to the dropdown list element (defaults to '')
77      */
78     </span><span class="jsdoc-var">listClass</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">,
79     </span><span class="jsdoc-comment">/**
80      * @cfg {String} selectedClass CSS class to apply to the selected item in the dropdown list (defaults to 'x-combo-selected')
81      */
82     </span><span class="jsdoc-var">selectedClass</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'x-combo-selected'</span><span class="jsdoc-syntax">,
83     </span><span class="jsdoc-comment">/**
84      * @cfg {String} triggerClass An additional CSS class used to style the trigger button.  The trigger will always get the
85      * class 'x-form-trigger' and triggerClass will be &lt;b&gt;appended&lt;/b&gt; if specified (defaults to 'x-form-arrow-trigger'
86      * which displays a downward arrow icon).
87      */
88     </span><span class="jsdoc-var">triggerClass </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'x-form-arrow-trigger'</span><span class="jsdoc-syntax">,
89     </span><span class="jsdoc-comment">/**
90      * @cfg {Boolean/String} shadow True or &quot;sides&quot; for the default effect, &quot;frame&quot; for 4-way shadow, and &quot;drop&quot; for bottom-right
91      */
92     </span><span class="jsdoc-var">shadow</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">'sides'</span><span class="jsdoc-syntax">,
93     </span><span class="jsdoc-comment">/**
94      * @cfg {String} listAlign A valid anchor position value. See {@link Roo.Element#alignTo} for details on supported
95      * anchor positions (defaults to 'tl-bl')
96      */
97     </span><span class="jsdoc-var">listAlign</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'tl-bl?'</span><span class="jsdoc-syntax">,
98     </span><span class="jsdoc-comment">/**
99      * @cfg {Number} maxHeight The maximum height in pixels of the dropdown list before scrollbars are shown (defaults to 300)
100      */
101     </span><span class="jsdoc-var">maxHeight</span><span class="jsdoc-syntax">: 300,
102     </span><span class="jsdoc-comment">/**
103      * @cfg {String} triggerAction The action to execute when the trigger field is activated.  Use 'all' to run the
104      * query specified by the allQuery config option (defaults to 'query')
105      */
106     </span><span class="jsdoc-var">triggerAction</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'query'</span><span class="jsdoc-syntax">,
107     </span><span class="jsdoc-comment">/**
108      * @cfg {Number} minChars The minimum number of characters the user must type before autocomplete and typeahead activate
109      * (defaults to 4, does not apply if editable = false)
110      */
111     </span><span class="jsdoc-var">minChars </span><span class="jsdoc-syntax">: 4,
112     </span><span class="jsdoc-comment">/**
113      * @cfg {Boolean} typeAhead True to populate and autoselect the remainder of the text being typed after a configurable
114      * delay (typeAheadDelay) if it matches a known value (defaults to false)
115      */
116     </span><span class="jsdoc-var">typeAhead</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
117     </span><span class="jsdoc-comment">/**
118      * @cfg {Number} queryDelay The length of time in milliseconds to delay between the start of typing and sending the
119      * query to filter the dropdown list (defaults to 500 if mode = 'remote' or 10 if mode = 'local')
120      */
121     </span><span class="jsdoc-var">queryDelay</span><span class="jsdoc-syntax">: 500,
122     </span><span class="jsdoc-comment">/**
123      * @cfg {Number} pageSize If greater than 0, a paging toolbar is displayed in the footer of the dropdown list and the
124      * filter queries will execute with page start and limit parameters.  Only applies when mode = 'remote' (defaults to 0)
125      */
126     </span><span class="jsdoc-var">pageSize</span><span class="jsdoc-syntax">: 0,
127     </span><span class="jsdoc-comment">/**
128      * @cfg {Boolean} selectOnFocus True to select any existing text in the field immediately on focus.  Only applies
129      * when editable = true (defaults to false)
130      */
131     </span><span class="jsdoc-var">selectOnFocus</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
132     </span><span class="jsdoc-comment">/**
133      * @cfg {String} queryParam Name of the query as it will be passed on the querystring (defaults to 'query')
134      */
135     </span><span class="jsdoc-var">queryParam</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'query'</span><span class="jsdoc-syntax">,
136     </span><span class="jsdoc-comment">/**
137      * @cfg {String} loadingText The text to display in the dropdown list while data is loading.  Only applies
138      * when mode = 'remote' (defaults to 'Loading...')
139      */
140     </span><span class="jsdoc-var">loadingText</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'Loading...'</span><span class="jsdoc-syntax">,
141     </span><span class="jsdoc-comment">/**
142      * @cfg {Boolean} resizable True to add a resize handle to the bottom of the dropdown list (defaults to false)
143      */
144     </span><span class="jsdoc-var">resizable</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
145     </span><span class="jsdoc-comment">/**
146      * @cfg {Number} handleHeight The height in pixels of the dropdown list resize handle if resizable = true (defaults to 8)
147      */
148     </span><span class="jsdoc-var">handleHeight </span><span class="jsdoc-syntax">: 8,
149     </span><span class="jsdoc-comment">/**
150      * @cfg {Boolean} editable False to prevent the user from typing text directly into the field, just like a
151      * traditional select (defaults to true)
152      */
153     </span><span class="jsdoc-var">editable</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
154     </span><span class="jsdoc-comment">/**
155      * @cfg {String} allQuery The text query to send to the server to return all records for the list with no filtering (defaults to '')
156      */
157     </span><span class="jsdoc-var">allQuery</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">,
158     </span><span class="jsdoc-comment">/**
159      * @cfg {String} mode Set to 'local' if the ComboBox loads local data (defaults to 'remote' which loads from the server)
160      */
161     </span><span class="jsdoc-var">mode</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'remote'</span><span class="jsdoc-syntax">,
162     </span><span class="jsdoc-comment">/**
163      * @cfg {Number} minListWidth The minimum width of the dropdown list in pixels (defaults to 70, will be ignored if
164      * listWidth has a higher value)
165      */
166     </span><span class="jsdoc-var">minListWidth </span><span class="jsdoc-syntax">: 70,
167     </span><span class="jsdoc-comment">/**
168      * @cfg {Boolean} forceSelection True to restrict the selected value to one of the values in the list, false to
169      * allow the user to set arbitrary text into the field (defaults to false)
170      */
171     </span><span class="jsdoc-var">forceSelection</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
172     </span><span class="jsdoc-comment">/**
173      * @cfg {Number} typeAheadDelay The length of time in milliseconds to wait until the typeahead text is displayed
174      * if typeAhead = true (defaults to 250)
175      */
176     </span><span class="jsdoc-var">typeAheadDelay </span><span class="jsdoc-syntax">: 250,
177     </span><span class="jsdoc-comment">/**
178      * @cfg {String} valueNotFoundText When using a name/value combo, if the value passed to setValue is not found in
179      * the store, valueNotFoundText will be displayed as the field text if defined (defaults to undefined)
180      */
181     </span><span class="jsdoc-var">valueNotFoundText </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">undefined</span><span class="jsdoc-syntax">,
182
183     </span><span class="jsdoc-comment">/**
184      * @cfg {String} defaultValue The value displayed after loading the store.
185      */
186     </span><span class="jsdoc-var">defaultValue</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">,
187
188     </span><span class="jsdoc-comment">/**
189      * @cfg {Boolean} blockFocus Prevents all focus calls, so it can work with things like HTML edtor bar
190      */
191     </span><span class="jsdoc-var">blockFocus </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
192
193     </span><span class="jsdoc-comment">/**
194      * @cfg {Boolean} disableClear Disable showing of clear button.
195      */
196     </span><span class="jsdoc-var">disableClear </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
197     </span><span class="jsdoc-comment">/**
198      * @cfg {Boolean} alwaysQuery  Disable caching of results, and always send query
199      */
200     </span><span class="jsdoc-var">alwaysQuery </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
201
202     </span><span class="jsdoc-comment">//private
203     </span><span class="jsdoc-var">addicon </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
204     </span><span class="jsdoc-var">editicon</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
205
206     </span><span class="jsdoc-comment">// element that contains real text value.. (when hidden is used..)
207
208     // private
209     </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">){
210         </span><span class="jsdoc-var">Roo.form.Field.prototype.onRender.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</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">);
211
212         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.store</span><span class="jsdoc-syntax">){
213             </span><span class="jsdoc-var">this.store.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'beforeload'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onBeforeLoad</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
214             </span><span class="jsdoc-var">this.store.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'load'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onLoad</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
215             </span><span class="jsdoc-var">this.store.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'loadexception'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onLoadException</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
216             </span><span class="jsdoc-var">this.store.load</span><span class="jsdoc-syntax">({});
217         }
218
219
220
221     },
222
223     </span><span class="jsdoc-comment">// private
224     </span><span class="jsdoc-var">initEvents </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
225         </span><span class="jsdoc-comment">//Roo.form.ComboBox.superclass.initEvents.call(this);
226
227     </span><span class="jsdoc-syntax">},
228
229     </span><span class="jsdoc-var">onDestroy </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
230
231         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.store</span><span class="jsdoc-syntax">){
232             </span><span class="jsdoc-var">this.store.un</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'beforeload'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onBeforeLoad</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
233             </span><span class="jsdoc-var">this.store.un</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'load'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onLoad</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
234             </span><span class="jsdoc-var">this.store.un</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'loadexception'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onLoadException</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
235         }
236         </span><span class="jsdoc-comment">//Roo.form.ComboBox.superclass.onDestroy.call(this);
237     </span><span class="jsdoc-syntax">},
238
239     </span><span class="jsdoc-comment">// private
240     </span><span class="jsdoc-var">fireKey </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">){
241         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e.isNavKeyPress</span><span class="jsdoc-syntax">() &amp;&amp; !</span><span class="jsdoc-var">this.list.isVisible</span><span class="jsdoc-syntax">()){
242             </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;specialkey&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">);
243         }
244     },
245
246     </span><span class="jsdoc-comment">// private
247     </span><span class="jsdoc-var">onResize</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">){
248
249         </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
250
251
252     },
253
254     </span><span class="jsdoc-comment">/**
255      * Allow or prevent the user from directly editing the field text.  If false is passed,
256      * the user will only be able to select from the items defined in the dropdown list.  This method
257      * is the runtime equivalent of setting the 'editable' config option at config time.
258      * @param {Boolean} value True to allow the user to directly edit the field text
259      */
260     </span><span class="jsdoc-var">setEditable </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">){
261
262     },
263
264     </span><span class="jsdoc-comment">// private
265     </span><span class="jsdoc-var">onBeforeLoad </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
266
267         </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;Select before load&quot;</span><span class="jsdoc-syntax">);
268         </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
269
270         </span><span class="jsdoc-var">this.innerList.update</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.loadingText </span><span class="jsdoc-syntax">?
271                </span><span class="jsdoc-string">'&lt;div class=&quot;loading-indicator&quot;&gt;'</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">this.loadingText</span><span class="jsdoc-syntax">+</span><span class="jsdoc-string">'&lt;/div&gt;' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">);
272         </span><span class="jsdoc-comment">//this.restrictHeight();
273         </span><span class="jsdoc-var">this.selectedIndex </span><span class="jsdoc-syntax">= -1;
274     },
275
276     </span><span class="jsdoc-comment">// private
277     </span><span class="jsdoc-var">onLoad </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
278
279
280         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">dom </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el.dom</span><span class="jsdoc-syntax">;
281         </span><span class="jsdoc-var">dom.innerHTML </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
282          </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">od </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">dom.ownerDocument</span><span class="jsdoc-syntax">;
283
284         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.emptyText</span><span class="jsdoc-syntax">) {
285             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">op </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">od.createElement</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'option'</span><span class="jsdoc-syntax">);
286             </span><span class="jsdoc-var">op.setAttribute</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'value'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">);
287             </span><span class="jsdoc-var">op.innerHTML </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">String.format</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'{0}'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.emptyText</span><span class="jsdoc-syntax">);
288             </span><span class="jsdoc-var">dom.appendChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">op</span><span class="jsdoc-syntax">);
289         }
290         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.store.getCount</span><span class="jsdoc-syntax">() &gt; 0){
291
292             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">vf </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.valueField</span><span class="jsdoc-syntax">;
293             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">df </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.displayField</span><span class="jsdoc-syntax">;
294             </span><span class="jsdoc-var">this.store.data.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">) {
295                 </span><span class="jsdoc-comment">// which colmsn to use... testing - cdoe / title..
296                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">op </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">od.createElement</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'option'</span><span class="jsdoc-syntax">);
297                 </span><span class="jsdoc-var">op.setAttribute</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'value'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">r.data</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">vf</span><span class="jsdoc-syntax">]);
298                 </span><span class="jsdoc-var">op.innerHTML </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">String.format</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'{0}'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">r.data</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">df</span><span class="jsdoc-syntax">]);
299                 </span><span class="jsdoc-var">dom.appendChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">op</span><span class="jsdoc-syntax">);
300             });
301             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.defaultValue </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-string">'undefined'</span><span class="jsdoc-syntax">)) {
302                 </span><span class="jsdoc-var">this.setValue</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.defaultValue</span><span class="jsdoc-syntax">);
303             }
304
305
306         }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
307             </span><span class="jsdoc-comment">//this.onEmptyResults();
308         </span><span class="jsdoc-syntax">}
309         </span><span class="jsdoc-comment">//this.el.focus();
310     </span><span class="jsdoc-syntax">},
311     </span><span class="jsdoc-comment">// private
312     </span><span class="jsdoc-var">onLoadException </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
313     {
314         </span><span class="jsdoc-var">dom.innerHTML </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
315
316         </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;Select on load exception&quot;</span><span class="jsdoc-syntax">);
317         </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
318
319         </span><span class="jsdoc-var">this.collapse</span><span class="jsdoc-syntax">();
320         </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.store.reader.jsonData</span><span class="jsdoc-syntax">);
321         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.store </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.store.reader.jsonData.errorMsg</span><span class="jsdoc-syntax">) != </span><span class="jsdoc-string">'undefined'</span><span class="jsdoc-syntax">) {
322             </span><span class="jsdoc-var">Roo.MessageBox.alert</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;Error loading&quot;</span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">this.store.reader.jsonData.errorMsg</span><span class="jsdoc-syntax">);
323         }
324
325
326     },
327     </span><span class="jsdoc-comment">// private
328     </span><span class="jsdoc-var">onTypeAhead </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
329
330     },
331
332     </span><span class="jsdoc-comment">// private
333     </span><span class="jsdoc-var">onSelect </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">record</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">){
334         </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'on select?'</span><span class="jsdoc-syntax">);
335         </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
336         </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">'beforeselect'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">record</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">) !== </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">){
337             </span><span class="jsdoc-var">this.setFromData</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index </span><span class="jsdoc-syntax">&gt; -1 ? </span><span class="jsdoc-var">record.data </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">);
338             </span><span class="jsdoc-var">this.collapse</span><span class="jsdoc-syntax">();
339             </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'select'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">record</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">);
340         }
341     },
342
343     </span><span class="jsdoc-comment">/**
344      * Returns the currently selected field value or empty string if no value is set.
345      * @return {String} value The selected value
346      */
347     </span><span class="jsdoc-var">getValue </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
348         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">dom </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el.dom</span><span class="jsdoc-syntax">;
349         </span><span class="jsdoc-var">this.value </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">dom.options</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">dom.selectedIndex</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.value</span><span class="jsdoc-syntax">;
350         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.value</span><span class="jsdoc-syntax">;
351
352     },
353
354     </span><span class="jsdoc-comment">/**
355      * Clears any text/value currently set in the field
356      */
357     </span><span class="jsdoc-var">clearValue </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
358         </span><span class="jsdoc-var">this.value </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
359         </span><span class="jsdoc-var">this.el.dom.selectedIndex </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.emptyText </span><span class="jsdoc-syntax">? 0 : -1;
360
361     },
362
363     </span><span class="jsdoc-comment">/**
364      * Sets the specified value into the field.  If the value finds a match, the corresponding record text
365      * will be displayed in the field.  If the value does not match the data value of an existing item,
366      * and the valueNotFoundText config option is defined, it will be displayed as the default field text.
367      * Otherwise the field will be blank (although the value will still be set).
368      * @param {String} value The value to match
369      */
370     </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">){
371         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">d </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el.dom</span><span class="jsdoc-syntax">;
372         </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">=0; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">d.options.length</span><span class="jsdoc-syntax">;</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
373             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">d.options</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.value</span><span class="jsdoc-syntax">) {
374                 </span><span class="jsdoc-var">d.selectedIndex </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">;
375                 </span><span class="jsdoc-var">this.value </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">;
376                 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
377             }
378         }
379         </span><span class="jsdoc-var">this.clearValue</span><span class="jsdoc-syntax">();
380     },
381     </span><span class="jsdoc-comment">/**
382      * @property {Object} the last set data for the element
383      */
384
385     </span><span class="jsdoc-var">lastData </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
386     </span><span class="jsdoc-comment">/**
387      * Sets the value of the field based on a object which is related to the record format for the store.
388      * @param {Object} value the value to set as. or false on reset?
389      */
390     </span><span class="jsdoc-var">setFromData </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">){
391         </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'setfrom data?'</span><span class="jsdoc-syntax">);
392
393
394
395     },
396     </span><span class="jsdoc-comment">// private
397     </span><span class="jsdoc-var">reset </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
398         </span><span class="jsdoc-var">this.clearValue</span><span class="jsdoc-syntax">();
399     },
400     </span><span class="jsdoc-comment">// private
401     </span><span class="jsdoc-var">findRecord </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">prop</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">){
402
403         </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
404
405         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">record</span><span class="jsdoc-syntax">;
406         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.store.getCount</span><span class="jsdoc-syntax">() &gt; 0){
407             </span><span class="jsdoc-var">this.store.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">){
408                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r.data</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">prop</span><span class="jsdoc-syntax">] == </span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">){
409                     </span><span class="jsdoc-var">record </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">;
410                     </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
411                 }
412                 </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
413             });
414         }
415         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">record</span><span class="jsdoc-syntax">;
416     },
417
418     </span><span class="jsdoc-var">getName</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
419     {
420         </span><span class="jsdoc-comment">// returns hidden if it's set..
421         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.rendered</span><span class="jsdoc-syntax">) {</span><span class="jsdoc-keyword">return </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">};
422         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">!</span><span class="jsdoc-var">this.hiddenName </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">this.el.dom.name  </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">this.el.dom.name </span><span class="jsdoc-syntax">: (</span><span class="jsdoc-var">this.hiddenName </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">);
423
424     },
425
426
427
428
429     </span><span class="jsdoc-comment">// private
430     </span><span class="jsdoc-var">onEmptyResults </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
431         </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'empty results'</span><span class="jsdoc-syntax">);
432         </span><span class="jsdoc-comment">//this.collapse();
433     </span><span class="jsdoc-syntax">},
434
435     </span><span class="jsdoc-comment">/**
436      * Returns true if the dropdown list is expanded, else false.
437      */
438     </span><span class="jsdoc-var">isExpanded </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
439         </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
440     },
441
442     </span><span class="jsdoc-comment">/**
443      * Select an item in the dropdown list by its data value. This function does NOT cause the select event to fire.
444      * The store must be loaded and the list expanded for this function to work, otherwise use setValue.
445      * @param {String} value The data value of the item to select
446      * @param {Boolean} scrollIntoView False to prevent the dropdown list from autoscrolling to display the
447      * selected item if it is not currently in view (defaults to true)
448      * @return {Boolean} True if the value matched an item in the list, else false
449      */
450     </span><span class="jsdoc-var">selectByValue </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">, </span><span class="jsdoc-var">scrollIntoView</span><span class="jsdoc-syntax">){
451         </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'select By Value'</span><span class="jsdoc-syntax">);
452         </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
453
454         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-var">undefined </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">v </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">){
455             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.findRecord</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.valueField </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">this.displayField</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">);
456             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">){
457                 </span><span class="jsdoc-var">this.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.store.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">), </span><span class="jsdoc-var">scrollIntoView</span><span class="jsdoc-syntax">);
458                 </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
459             }
460         }
461         </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
462     },
463
464     </span><span class="jsdoc-comment">/**
465      * Select an item in the dropdown list by its numeric index in the list. This function does NOT cause the select event to fire.
466      * The store must be loaded and the list expanded for this function to work, otherwise use setValue.
467      * @param {Number} index The zero-based index of the list item to select
468      * @param {Boolean} scrollIntoView False to prevent the dropdown list from autoscrolling to display the
469      * selected item if it is not currently in view (defaults to true)
470      */
471     </span><span class="jsdoc-var">select </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">scrollIntoView</span><span class="jsdoc-syntax">){
472         </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'select '</span><span class="jsdoc-syntax">);
473         </span><span class="jsdoc-keyword">return  </span><span class="jsdoc-syntax">;
474
475         </span><span class="jsdoc-var">this.selectedIndex </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">;
476         </span><span class="jsdoc-var">this.view.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">);
477         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">scrollIntoView </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">){
478             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">el </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.view.getNode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">);
479             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">){
480                 </span><span class="jsdoc-var">this.innerList.scrollChildIntoView</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">);
481             }
482         }
483     },
484
485
486
487     </span><span class="jsdoc-comment">// private
488     </span><span class="jsdoc-var">validateBlur </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
489
490         </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
491
492     },
493
494     </span><span class="jsdoc-comment">// private
495     </span><span class="jsdoc-var">initQuery </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
496         </span><span class="jsdoc-var">this.doQuery</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.getRawValue</span><span class="jsdoc-syntax">());
497     },
498
499     </span><span class="jsdoc-comment">// private
500     </span><span class="jsdoc-var">doForce </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
501         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.el.dom.value.length </span><span class="jsdoc-syntax">&gt; 0){
502             </span><span class="jsdoc-var">this.el.dom.value </span><span class="jsdoc-syntax">=
503                 </span><span class="jsdoc-var">this.lastSelectionText </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-var">undefined </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">'' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.lastSelectionText</span><span class="jsdoc-syntax">;
504
505         }
506     },
507
508     </span><span class="jsdoc-comment">/**
509      * Execute a query to filter the dropdown list.  Fires the beforequery event prior to performing the
510      * query allowing the query action to be canceled if needed.
511      * @param {String} query The SQL query to execute
512      * @param {Boolean} forceAll True to force the query to execute even if there are currently fewer characters
513      * in the field than the minimum specified by the minChars config option.  It also clears any filter previously
514      * saved in the current store (defaults to false)
515      */
516     </span><span class="jsdoc-var">doQuery </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">q</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">forceAll</span><span class="jsdoc-syntax">){
517
518         </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'doQuery?'</span><span class="jsdoc-syntax">);
519         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">q </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-var">undefined </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">q </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">){
520             </span><span class="jsdoc-var">q </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
521         }
522         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">qe </span><span class="jsdoc-syntax">= {
523             </span><span class="jsdoc-var">query</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">q</span><span class="jsdoc-syntax">,
524             </span><span class="jsdoc-var">forceAll</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">forceAll</span><span class="jsdoc-syntax">,
525             </span><span class="jsdoc-var">combo</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">,
526             </span><span class="jsdoc-var">cancel</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">false
527         </span><span class="jsdoc-syntax">};
528         </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">'beforequery'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">qe</span><span class="jsdoc-syntax">)===</span><span class="jsdoc-keyword">false </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">qe.cancel</span><span class="jsdoc-syntax">){
529             </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
530         }
531         </span><span class="jsdoc-var">q </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">qe.query</span><span class="jsdoc-syntax">;
532         </span><span class="jsdoc-var">forceAll </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">qe.forceAll</span><span class="jsdoc-syntax">;
533         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">forceAll </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-keyword">true </span><span class="jsdoc-syntax">|| (</span><span class="jsdoc-var">q.length </span><span class="jsdoc-syntax">&gt;= </span><span class="jsdoc-var">this.minChars</span><span class="jsdoc-syntax">)){
534             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.lastQuery </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-var">q </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">this.alwaysQuery</span><span class="jsdoc-syntax">){
535                 </span><span class="jsdoc-var">this.lastQuery </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">q</span><span class="jsdoc-syntax">;
536                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.mode </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'local'</span><span class="jsdoc-syntax">){
537                     </span><span class="jsdoc-var">this.selectedIndex </span><span class="jsdoc-syntax">= -1;
538                     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">forceAll</span><span class="jsdoc-syntax">){
539                         </span><span class="jsdoc-var">this.store.clearFilter</span><span class="jsdoc-syntax">();
540                     }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
541                         </span><span class="jsdoc-var">this.store.filter</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.displayField</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">q</span><span class="jsdoc-syntax">);
542                     }
543                     </span><span class="jsdoc-var">this.onLoad</span><span class="jsdoc-syntax">();
544                 }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
545                     </span><span class="jsdoc-var">this.store.baseParams</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.queryParam</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">q</span><span class="jsdoc-syntax">;
546                     </span><span class="jsdoc-var">this.store.load</span><span class="jsdoc-syntax">({
547                         </span><span class="jsdoc-var">params</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.getParams</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">q</span><span class="jsdoc-syntax">)
548                     });
549                     </span><span class="jsdoc-var">this.expand</span><span class="jsdoc-syntax">();
550                 }
551             }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
552                 </span><span class="jsdoc-var">this.selectedIndex </span><span class="jsdoc-syntax">= -1;
553                 </span><span class="jsdoc-var">this.onLoad</span><span class="jsdoc-syntax">();
554             }
555         }
556     },
557
558     </span><span class="jsdoc-comment">// private
559     </span><span class="jsdoc-var">getParams </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">q</span><span class="jsdoc-syntax">){
560         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">p </span><span class="jsdoc-syntax">= {};
561         </span><span class="jsdoc-comment">//p[this.queryParam] = q;
562         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.pageSize</span><span class="jsdoc-syntax">){
563             </span><span class="jsdoc-var">p.start </span><span class="jsdoc-syntax">= 0;
564             </span><span class="jsdoc-var">p.limit </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.pageSize</span><span class="jsdoc-syntax">;
565         }
566         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">p</span><span class="jsdoc-syntax">;
567     },
568
569     </span><span class="jsdoc-comment">/**
570      * Hides the dropdown list if it is currently expanded. Fires the 'collapse' event on completion.
571      */
572     </span><span class="jsdoc-var">collapse </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
573
574     },
575
576     </span><span class="jsdoc-comment">// private
577     </span><span class="jsdoc-var">collapseIf </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">){
578
579     },
580
581     </span><span class="jsdoc-comment">/**
582      * Expands the dropdown list if it is currently hidden. Fires the 'expand' event on completion.
583      */
584     </span><span class="jsdoc-var">expand </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
585
586     } ,
587
588     </span><span class="jsdoc-comment">// private
589
590
591     /** 
592     * @cfg {Boolean} grow 
593     * @hide 
594     */
595     /** 
596     * @cfg {Number} growMin 
597     * @hide 
598     */
599     /** 
600     * @cfg {Number} growMax 
601     * @hide 
602     */
603     /**
604      * @hide
605      * @method autoSize
606      */
607
608     </span><span class="jsdoc-var">setWidth </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
609     {
610
611     },
612     </span><span class="jsdoc-var">getResizeEl </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
613         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.el</span><span class="jsdoc-syntax">;
614     }
615 });</span></code></body></html>