1 <html><head><title>Roo/form/ComboNested.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">/*
3 * Copyright(c) 2008-2011 Alan Knowles
10 * @class Roo.form.ComboNested
11 * @extends Roo.form.ComboBox
12 * A combobox for that allows selection of nested items in a list,
27 * Create a new ComboNested
28 * @param {Object} config Configuration options
30 </span><span class="jsdoc-var">Roo.form.ComboNested </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">){
31 </span><span class="jsdoc-var">Roo.form.ComboCheck.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">);
32 </span><span class="jsdoc-comment">// should verify some data...
34 // hiddenName = required..
35 // displayField = required
36 // valudField == required
37 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">req</span><span class="jsdoc-syntax">= [ </span><span class="jsdoc-string">'hiddenName'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'displayField'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'valueField' </span><span class="jsdoc-syntax">];
38 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">_t </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
39 </span><span class="jsdoc-var">Roo.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">req</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">) {
40 </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">_t</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">]) == </span><span class="jsdoc-string">'undefined' </span><span class="jsdoc-syntax">) || !</span><span class="jsdoc-var">_t</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">) {
41 </span><span class="jsdoc-keyword">throw </span><span class="jsdoc-string">"Roo.form.ComboNested : missing value for: " </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">;
48 </span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.form.ComboNested</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.form.ComboBox</span><span class="jsdoc-syntax">, {
50 </span><span class="jsdoc-comment">/*
51 * @config {Number} max Number of columns to show
54 </span><span class="jsdoc-var">maxColumns </span><span class="jsdoc-syntax">: 3,
56 </span><span class="jsdoc-var">list </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">, </span><span class="jsdoc-comment">// the outermost div..
57 </span><span class="jsdoc-var">innerLists </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">, </span><span class="jsdoc-comment">// the
58 </span><span class="jsdoc-var">views </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
59 </span><span class="jsdoc-var">stores </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
60 </span><span class="jsdoc-comment">// private
61 </span><span class="jsdoc-var">loadingChildren </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
63 </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">)
65 </span><span class="jsdoc-var">Roo.form.ComboBox.superclass.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">); </span><span class="jsdoc-comment">// skip parent call - got to above..
67 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.hiddenName</span><span class="jsdoc-syntax">){
68 </span><span class="jsdoc-var">this.hiddenField </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el.insertSibling</span><span class="jsdoc-syntax">({</span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">'input'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">type</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">'hidden'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.hiddenName</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">: (</span><span class="jsdoc-var">this.hiddenId</span><span class="jsdoc-syntax">||</span><span class="jsdoc-var">this.hiddenName</span><span class="jsdoc-syntax">)},
69 </span><span class="jsdoc-string">'before'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
70 </span><span class="jsdoc-var">this.hiddenField.value </span><span class="jsdoc-syntax">=
71 </span><span class="jsdoc-var">this.hiddenValue </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-var">undefined </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">this.hiddenValue </span><span class="jsdoc-syntax">:
72 </span><span class="jsdoc-var">this.value </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-var">undefined </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">this.value </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
74 </span><span class="jsdoc-comment">// prevent input submission
75 </span><span class="jsdoc-var">this.el.dom.removeAttribute</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'name'</span><span class="jsdoc-syntax">);
80 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isGecko</span><span class="jsdoc-syntax">){
81 </span><span class="jsdoc-var">this.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">);
84 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cls </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'x-combo-list'</span><span class="jsdoc-syntax">;
86 </span><span class="jsdoc-var">this.list </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.Layer</span><span class="jsdoc-syntax">({
87 </span><span class="jsdoc-var">shadow</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.shadow</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: [</span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.listClass</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.join</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">' '</span><span class="jsdoc-syntax">), </span><span class="jsdoc-var">constrain</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">false
88 </span><span class="jsdoc-syntax">});
90 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">lw </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.listWidth </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">Math.max</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.wrap.getWidth</span><span class="jsdoc-syntax">(), </span><span class="jsdoc-var">this.minListWidth</span><span class="jsdoc-syntax">);
91 </span><span class="jsdoc-var">this.list.setWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">lw</span><span class="jsdoc-syntax">);
92 </span><span class="jsdoc-var">this.list.swallowEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'mousewheel'</span><span class="jsdoc-syntax">);
93 </span><span class="jsdoc-var">this.assetHeight </span><span class="jsdoc-syntax">= 0;
95 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.title</span><span class="jsdoc-syntax">){
96 </span><span class="jsdoc-var">this.header </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.list.createChild</span><span class="jsdoc-syntax">({</span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">:</span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">+</span><span class="jsdoc-string">'-hd'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">html</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.title</span><span class="jsdoc-syntax">});
97 </span><span class="jsdoc-var">this.assetHeight </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">this.header.getHeight</span><span class="jsdoc-syntax">();
99 </span><span class="jsdoc-var">this.innerLists </span><span class="jsdoc-syntax">= [];
100 </span><span class="jsdoc-var">this.views </span><span class="jsdoc-syntax">= [];
101 </span><span class="jsdoc-var">this.stores </span><span class="jsdoc-syntax">= [];
102 </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">< </span><span class="jsdoc-var">this.maxColumns</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
103 </span><span class="jsdoc-var">this.onRenderList</span><span class="jsdoc-syntax">( </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">);
106 </span><span class="jsdoc-comment">// always needs footer, as we are going to have an 'OK' button.
107 </span><span class="jsdoc-var">this.footer </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.list.createChild</span><span class="jsdoc-syntax">({</span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">:</span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">+</span><span class="jsdoc-string">'-ft'</span><span class="jsdoc-syntax">});
108 </span><span class="jsdoc-var">this.pageTb </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.Toolbar</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.footer</span><span class="jsdoc-syntax">);
109 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">_this </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
110 </span><span class="jsdoc-var">this.pageTb.add</span><span class="jsdoc-syntax">( {
112 </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'Done'</span><span class="jsdoc-syntax">,
113 </span><span class="jsdoc-var">handler</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
115 </span><span class="jsdoc-var">_this.collapse</span><span class="jsdoc-syntax">();
119 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">( </span><span class="jsdoc-var">this.allowBlank </span><span class="jsdoc-syntax">&& !</span><span class="jsdoc-var">this.disableClear</span><span class="jsdoc-syntax">) {
121 </span><span class="jsdoc-var">this.pageTb.add</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.Toolbar.Fill</span><span class="jsdoc-syntax">(), {
122 </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'x-btn-icon x-btn-clear'</span><span class="jsdoc-syntax">,
123 </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'&#160;'</span><span class="jsdoc-syntax">,
124 </span><span class="jsdoc-var">handler</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
126 </span><span class="jsdoc-var">_this.collapse</span><span class="jsdoc-syntax">();
127 </span><span class="jsdoc-var">_this.clearValue</span><span class="jsdoc-syntax">();
128 </span><span class="jsdoc-var">_this.onSelect</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">, -1);
132 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.footer</span><span class="jsdoc-syntax">) {
133 </span><span class="jsdoc-var">this.assetHeight </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">this.footer.getHeight</span><span class="jsdoc-syntax">();
137 </span><span class="jsdoc-var">onRenderList </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">( </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">)
140 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">lw </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Math.floor</span><span class="jsdoc-syntax">(
141 ((</span><span class="jsdoc-var">this.listWidth </span><span class="jsdoc-syntax">* </span><span class="jsdoc-var">this.maxColumns </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">Math.max</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.wrap.getWidth</span><span class="jsdoc-syntax">(), </span><span class="jsdoc-var">this.minListWidth</span><span class="jsdoc-syntax">)) - </span><span class="jsdoc-var">this.list.getFrameWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'lr'</span><span class="jsdoc-syntax">)) / </span><span class="jsdoc-var">this.maxColumns
142 </span><span class="jsdoc-syntax">);
144 </span><span class="jsdoc-var">this.list.setWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">lw</span><span class="jsdoc-syntax">); </span><span class="jsdoc-comment">// default to '1'
146 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">il </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.innerLists</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">this.list.createChild</span><span class="jsdoc-syntax">({</span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">:</span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">+</span><span class="jsdoc-string">'-inner'</span><span class="jsdoc-syntax">});
147 </span><span class="jsdoc-comment">//il.on('mouseover', this.onViewOver, this, { list: i });
148 //il.on('mousemove', this.onViewMove, this, { list: i });
149 </span><span class="jsdoc-var">il.setWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">lw</span><span class="jsdoc-syntax">);
150 </span><span class="jsdoc-var">il.setStyle</span><span class="jsdoc-syntax">({ </span><span class="jsdoc-string">'overflow-x' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'hidden'</span><span class="jsdoc-syntax">});
152 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.tpl</span><span class="jsdoc-syntax">){
153 </span><span class="jsdoc-var">this.tpl </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.Template</span><span class="jsdoc-syntax">({
154 </span><span class="jsdoc-var">html </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'<div class="'</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">+</span><span class="jsdoc-string">'-item '</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">+</span><span class="jsdoc-string">'-item-{cn:this.isEmpty}">{' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.displayField </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'}</div>'</span><span class="jsdoc-syntax">,
155 </span><span class="jsdoc-var">isEmpty</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">, </span><span class="jsdoc-var">allValues</span><span class="jsdoc-syntax">) {
156 </span><span class="jsdoc-comment">//Roo.log(value);
157 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">dl </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value.data</span><span class="jsdoc-syntax">) != </span><span class="jsdoc-string">'undefined' </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">value.data.length </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">value.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-comment">///json is a nested response..
158 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">dl </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">'has-children' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'no-children'
159 </span><span class="jsdoc-syntax">}
163 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">store </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.store</span><span class="jsdoc-syntax">;
164 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">> 0) {
165 </span><span class="jsdoc-var">store </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.data.SimpleStore</span><span class="jsdoc-syntax">({
166 </span><span class="jsdoc-comment">//fields : this.store.reader.meta.fields,
167 </span><span class="jsdoc-var">reader </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.store.reader</span><span class="jsdoc-syntax">,
168 </span><span class="jsdoc-var">data </span><span class="jsdoc-syntax">: [ ]
171 </span><span class="jsdoc-var">this.stores</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">store</span><span class="jsdoc-syntax">;
173 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">view </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.views</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.View</span><span class="jsdoc-syntax">(
174 </span><span class="jsdoc-var">il</span><span class="jsdoc-syntax">,
175 </span><span class="jsdoc-var">this.tpl</span><span class="jsdoc-syntax">,
177 </span><span class="jsdoc-var">singleSelect</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
178 </span><span class="jsdoc-var">store</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">store</span><span class="jsdoc-syntax">,
179 </span><span class="jsdoc-var">selectedClass</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.selectedClass
180 </span><span class="jsdoc-syntax">}
182 </span><span class="jsdoc-var">view.getEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.setWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">lw</span><span class="jsdoc-syntax">);
183 </span><span class="jsdoc-var">view.getEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.setStyle</span><span class="jsdoc-syntax">({
184 </span><span class="jsdoc-var">position</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< 1 ? </span><span class="jsdoc-string">'relative' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'absolute'</span><span class="jsdoc-syntax">,
185 </span><span class="jsdoc-var">top</span><span class="jsdoc-syntax">: 0,
186 </span><span class="jsdoc-var">left</span><span class="jsdoc-syntax">: (</span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">* </span><span class="jsdoc-var">lw </span><span class="jsdoc-syntax">) + </span><span class="jsdoc-string">'px'</span><span class="jsdoc-syntax">,
187 </span><span class="jsdoc-var">display </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">> 0 ? </span><span class="jsdoc-string">'none' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'block'
188 </span><span class="jsdoc-syntax">});
189 </span><span class="jsdoc-var">view.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'selectionchange'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onSelectChange.createDelegate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, {</span><span class="jsdoc-var">list </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">}, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">));
190 </span><span class="jsdoc-var">view.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'dblclick'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onDoubleClick.createDelegate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, {</span><span class="jsdoc-var">list </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">}, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">));
191 </span><span class="jsdoc-comment">//view.on('click', this.onViewClick, this, { list : i });
193 </span><span class="jsdoc-var">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">);
194 </span><span class="jsdoc-var">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">, { </span><span class="jsdoc-var">list </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">});
195 </span><span class="jsdoc-var">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">);
197 </span><span class="jsdoc-comment">// hide the other vies..
201 </span><span class="jsdoc-syntax">},
203 </span><span class="jsdoc-var">restrictHeight </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
205 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">mh </span><span class="jsdoc-syntax">= 0;
206 </span><span class="jsdoc-var">Roo.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.innerLists</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">il</span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">) {
207 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">el </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.views</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.getEl</span><span class="jsdoc-syntax">();
208 </span><span class="jsdoc-var">el.dom.style.height </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
209 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">inner </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">el.dom</span><span class="jsdoc-syntax">;
210 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">h </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Math.max</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">il.clientHeight</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">il.offsetHeight</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">il.scrollHeight</span><span class="jsdoc-syntax">);
211 </span><span class="jsdoc-comment">// only adjust heights on other ones..
212 </span><span class="jsdoc-var">mh </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Math.max</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">h</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">mh</span><span class="jsdoc-syntax">);
213 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< 1) {
215 </span><span class="jsdoc-var">el.setHeight</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">h </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">this.maxHeight </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">'auto' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.maxHeight</span><span class="jsdoc-syntax">);
216 </span><span class="jsdoc-var">il.setHeight</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">h </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">this.maxHeight </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">'auto' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.maxHeight</span><span class="jsdoc-syntax">);
221 }, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
223 </span><span class="jsdoc-var">this.list.beginUpdate</span><span class="jsdoc-syntax">();
224 </span><span class="jsdoc-var">this.list.setHeight</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">mh</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">this.list.getFrameWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'tb'</span><span class="jsdoc-syntax">)+</span><span class="jsdoc-var">this.assetHeight</span><span class="jsdoc-syntax">);
225 </span><span class="jsdoc-var">this.list.alignTo</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.listAlign</span><span class="jsdoc-syntax">);
226 </span><span class="jsdoc-var">this.list.endUpdate</span><span class="jsdoc-syntax">();
231 </span><span class="jsdoc-comment">// -- store handlers..
233 </span><span class="jsdoc-var">onBeforeLoad </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
235 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.hasFocus</span><span class="jsdoc-syntax">){
236 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
238 </span><span class="jsdoc-var">this.innerLists</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.update</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.loadingText </span><span class="jsdoc-syntax">?
239 </span><span class="jsdoc-string">'<div class="loading-indicator">'</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">this.loadingText</span><span class="jsdoc-syntax">+</span><span class="jsdoc-string">'</div>' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">);
240 </span><span class="jsdoc-var">this.restrictHeight</span><span class="jsdoc-syntax">();
241 </span><span class="jsdoc-var">this.selectedIndex </span><span class="jsdoc-syntax">= -1;
243 </span><span class="jsdoc-comment">// private
244 </span><span class="jsdoc-var">onLoad </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">a</span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">d</span><span class="jsdoc-syntax">)
246 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.loadingChildren</span><span class="jsdoc-syntax">) {
247 </span><span class="jsdoc-comment">// then we are loading the top level. - hide the children
248 </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">= 1;</span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">this.views.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
249 </span><span class="jsdoc-var">this.views</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.getEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.setStyle</span><span class="jsdoc-syntax">({ </span><span class="jsdoc-var">display </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'none' </span><span class="jsdoc-syntax">});
251 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">lw </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Math.floor</span><span class="jsdoc-syntax">(
252 ((</span><span class="jsdoc-var">this.listWidth </span><span class="jsdoc-syntax">* </span><span class="jsdoc-var">this.maxColumns </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">Math.max</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.wrap.getWidth</span><span class="jsdoc-syntax">(), </span><span class="jsdoc-var">this.minListWidth</span><span class="jsdoc-syntax">)) - </span><span class="jsdoc-var">this.list.getFrameWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'lr'</span><span class="jsdoc-syntax">)) / </span><span class="jsdoc-var">this.maxColumns
253 </span><span class="jsdoc-syntax">);
255 </span><span class="jsdoc-var">this.list.setWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">lw</span><span class="jsdoc-syntax">); </span><span class="jsdoc-comment">// default to '1'
258 </span><span class="jsdoc-syntax">}
259 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.hasFocus</span><span class="jsdoc-syntax">){
260 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
263 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.store.getCount</span><span class="jsdoc-syntax">() > 0) {
264 </span><span class="jsdoc-var">this.expand</span><span class="jsdoc-syntax">();
265 </span><span class="jsdoc-var">this.restrictHeight</span><span class="jsdoc-syntax">();
266 } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
267 </span><span class="jsdoc-var">this.onEmptyResults</span><span class="jsdoc-syntax">();
270 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.loadingChildren</span><span class="jsdoc-syntax">) {
271 </span><span class="jsdoc-var">this.selectActive</span><span class="jsdoc-syntax">();
273 </span><span class="jsdoc-comment">/*
274 this.stores[1].loadData([]);
275 this.stores[2].loadData([]);
280 </span><span class="jsdoc-syntax">},
283 </span><span class="jsdoc-comment">// private
284 </span><span class="jsdoc-var">onLoadException </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
286 </span><span class="jsdoc-var">this.collapse</span><span class="jsdoc-syntax">();
287 </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">);
288 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.store </span><span class="jsdoc-syntax">&& </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">) {
289 </span><span class="jsdoc-var">Roo.MessageBox.alert</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"Error loading"</span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">this.store.reader.jsonData.errorMsg</span><span class="jsdoc-syntax">);
294 </span><span class="jsdoc-comment">// no cleaning of leading spaces on blur here.
295 </span><span class="jsdoc-var">cleanLeadingSpace </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">) { },
298 </span><span class="jsdoc-var">onSelectChange </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">view</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">sels</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">opts </span><span class="jsdoc-syntax">)
300 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ix </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">view.getSelectedIndexes</span><span class="jsdoc-syntax">();
302 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">opts.list </span><span class="jsdoc-syntax">> </span><span class="jsdoc-var">this.maxColumns </span><span class="jsdoc-syntax">- 2) {
303 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">view.store.getCount</span><span class="jsdoc-syntax">()< 1) {
304 </span><span class="jsdoc-var">this.views</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">opts.list </span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.getEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.setStyle</span><span class="jsdoc-syntax">({ </span><span class="jsdoc-var">display </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'none' </span><span class="jsdoc-syntax">});
306 } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
307 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ix.length</span><span class="jsdoc-syntax">) {
308 </span><span class="jsdoc-comment">// used to clear ?? but if we are loading unselected
309 </span><span class="jsdoc-var">this.setFromData</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">view.store.getAt</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ix</span><span class="jsdoc-syntax">[0])</span><span class="jsdoc-var">.data</span><span class="jsdoc-syntax">);
314 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
317 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">ix.length</span><span class="jsdoc-syntax">) {
318 </span><span class="jsdoc-comment">// this get's fired when trigger opens..
319 // this.setFromData({});
320 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">str </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.stores</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">opts.list</span><span class="jsdoc-syntax">+1];
321 </span><span class="jsdoc-var">str.data.clear</span><span class="jsdoc-syntax">(); </span><span class="jsdoc-comment">// removeall wihtout the fire events..
322 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
325 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">rec </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">view.store.getAt</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ix</span><span class="jsdoc-syntax">[0]);
327 </span><span class="jsdoc-var">this.setFromData</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rec.data</span><span class="jsdoc-syntax">);
328 </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">rec</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ix</span><span class="jsdoc-syntax">[0]);
330 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">lw </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Math.floor</span><span class="jsdoc-syntax">(
332 (</span><span class="jsdoc-var">this.listWidth </span><span class="jsdoc-syntax">* </span><span class="jsdoc-var">this.maxColumns </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">Math.max</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.wrap.getWidth</span><span class="jsdoc-syntax">(), </span><span class="jsdoc-var">this.minListWidth</span><span class="jsdoc-syntax">)) - </span><span class="jsdoc-var">this.list.getFrameWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'lr'</span><span class="jsdoc-syntax">)
333 ) / </span><span class="jsdoc-var">this.maxColumns
334 </span><span class="jsdoc-syntax">);
335 </span><span class="jsdoc-var">this.loadingChildren </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
336 </span><span class="jsdoc-var">this.stores</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">opts.list</span><span class="jsdoc-syntax">+1]</span><span class="jsdoc-var">.loadDataFromChildren</span><span class="jsdoc-syntax">( </span><span class="jsdoc-var">rec </span><span class="jsdoc-syntax">);
337 </span><span class="jsdoc-var">this.loadingChildren </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
338 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">dl </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.stores</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">opts.list</span><span class="jsdoc-syntax">+1]</span><span class="jsdoc-var">. getTotalCount</span><span class="jsdoc-syntax">();
340 </span><span class="jsdoc-var">this.views</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">opts.list</span><span class="jsdoc-syntax">+1]</span><span class="jsdoc-var">.getEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.setHeight</span><span class="jsdoc-syntax">( </span><span class="jsdoc-var">this.innerLists</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.getHeight</span><span class="jsdoc-syntax">());
342 </span><span class="jsdoc-var">this.views</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">opts.list</span><span class="jsdoc-syntax">+1]</span><span class="jsdoc-var">.getEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.setStyle</span><span class="jsdoc-syntax">({ </span><span class="jsdoc-var">display </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">dl </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">'block' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'none' </span><span class="jsdoc-syntax">});
343 </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">= </span><span class="jsdoc-var">opts.list</span><span class="jsdoc-syntax">+2; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">this.views.length</span><span class="jsdoc-syntax">;</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
344 </span><span class="jsdoc-var">this.views</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.getEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.setStyle</span><span class="jsdoc-syntax">({ </span><span class="jsdoc-var">display </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'none' </span><span class="jsdoc-syntax">});
347 </span><span class="jsdoc-var">this.innerLists</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">opts.list</span><span class="jsdoc-syntax">+1]</span><span class="jsdoc-var">.setHeight</span><span class="jsdoc-syntax">( </span><span class="jsdoc-var">this.innerLists</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.getHeight</span><span class="jsdoc-syntax">());
348 </span><span class="jsdoc-var">this.list.setWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">lw </span><span class="jsdoc-syntax">* (</span><span class="jsdoc-var">opts.list </span><span class="jsdoc-syntax">+ (</span><span class="jsdoc-var">dl </span><span class="jsdoc-syntax">? 2 : 1)));
350 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.isLoading</span><span class="jsdoc-syntax">) {
351 </span><span class="jsdoc-comment">// this.selectActive(opts.list);
352 </span><span class="jsdoc-syntax">}
359 </span><span class="jsdoc-var">onDoubleClick </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
361 </span><span class="jsdoc-var">this.collapse</span><span class="jsdoc-syntax">(); </span><span class="jsdoc-comment">//??
362 </span><span class="jsdoc-syntax">},
368 </span><span class="jsdoc-comment">// private
369 </span><span class="jsdoc-var">recordToStack </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">store</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">, </span><span class="jsdoc-var">stack</span><span class="jsdoc-syntax">)
371 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cstore </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.data.SimpleStore</span><span class="jsdoc-syntax">({
372 </span><span class="jsdoc-comment">//fields : this.store.reader.meta.fields, // we need array reader.. for
373 </span><span class="jsdoc-var">reader </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.store.reader</span><span class="jsdoc-syntax">,
374 </span><span class="jsdoc-var">data </span><span class="jsdoc-syntax">: [ ]
376 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">_this </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
377 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">record </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
378 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">srec </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
379 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">store.getCount</span><span class="jsdoc-syntax">() < 1){
380 </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
382 </span><span class="jsdoc-var">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">){
383 </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">){
384 </span><span class="jsdoc-var">record </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">;
385 </span><span class="jsdoc-var">srec </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">;
386 </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
388 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r.data.cn </span><span class="jsdoc-syntax">&& </span><span class="jsdoc-var">r.data.cn.length</span><span class="jsdoc-syntax">) {
389 </span><span class="jsdoc-var">cstore.loadDataFromChildren</span><span class="jsdoc-syntax">( </span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">);
390 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cret </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">_this.recordToStack</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cstore</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">, </span><span class="jsdoc-var">stack</span><span class="jsdoc-syntax">);
391 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cret </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">) {
392 </span><span class="jsdoc-var">record </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cret</span><span class="jsdoc-syntax">;
393 </span><span class="jsdoc-var">srec </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">;
394 </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
398 </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
400 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">record </span><span class="jsdoc-syntax">== </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">) {
401 </span><span class="jsdoc-keyword">return false
402 </span><span class="jsdoc-syntax">}
403 </span><span class="jsdoc-var">stack.unshift</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">srec</span><span class="jsdoc-syntax">);
404 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">record</span><span class="jsdoc-syntax">;
407 </span><span class="jsdoc-comment">/*
408 * find the stack of stores that match our value.
413 </span><span class="jsdoc-var">selectActive </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">()
415 </span><span class="jsdoc-comment">// if store is not loaded, then we will need to wait for that to happen first.
416 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">stack </span><span class="jsdoc-syntax">= [];
417 </span><span class="jsdoc-var">this.recordToStack</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.store</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.valueField</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.getValue</span><span class="jsdoc-syntax">(), </span><span class="jsdoc-var">stack</span><span class="jsdoc-syntax">);
418 </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">< </span><span class="jsdoc-var">stack.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++ ) {
419 </span><span class="jsdoc-var">this.views</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">stack</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.store.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">stack</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]), </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">false </span><span class="jsdoc-syntax">);
429 });</span></code></body></html>