roojs-all.js
[roojs1] / docs / src / Roo_form_ComboNested.js.html
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">/*
2  * RooJS Library 1.1.1
3  * Copyright(c) 2008-2011  Alan Knowles
4  *
5  * License - LGPL
6  */
7
8
9 /**
10  * @class Roo.form.ComboNested
11  * @extends Roo.form.ComboBox
12  * A combobox for that allows selection of nested items in a list,
13  * eg.
14  *
15  *  Book
16  *    -&gt; red
17  *    -&gt; green
18  *  Table
19  *    -&gt; square
20  *      -&gt;red
21  *      -&gt;green
22  *    -&gt; rectangle
23  *      -&gt;green
24  *      
25  * 
26  * @constructor
27  * Create a new ComboNested
28  * @param {Object} config Configuration options
29  */
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...
33     // like
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">&quot;Roo.form.ComboNested : missing value for: &quot; </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">;
42         }
43     });
44
45
46 };
47
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">, {
49
50     </span><span class="jsdoc-comment">/*
51      * @config {Number} max Number of columns to show
52      */
53
54     </span><span class="jsdoc-var">maxColumns </span><span class="jsdoc-syntax">: 3,
55
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">,
62
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">)
64     {
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..
66
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">;
73
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">);
76
77
78         }
79
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">);
82         }
83
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">;
85
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">});
89
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;
94
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">();
98         }
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">&lt; </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">);
104         }
105
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">(  {
111
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">()
114             {
115                 </span><span class="jsdoc-var">_this.collapse</span><span class="jsdoc-syntax">();
116             }
117         });
118
119         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">( </span><span class="jsdoc-var">this.allowBlank </span><span class="jsdoc-syntax">&amp;&amp; !</span><span class="jsdoc-var">this.disableClear</span><span class="jsdoc-syntax">) {
120
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">'&amp;#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">()
125                 {
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);
129                 }
130             });
131         }
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">();
134         }
135
136     },
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">)
138     {
139
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">);
143
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'
145
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">});
151
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">'&lt;div class=&quot;'</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}&quot;&gt;{' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.displayField </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'}&lt;/div&gt;'</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">}
160             });
161         }
162
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">&gt; 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">: [ ]
169             });
170         }
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">;
172
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">,
176             {
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">}
181         );
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">&lt; 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">&gt; 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 });
192
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">);
196
197         </span><span class="jsdoc-comment">// hide the other vies..
198
199
200
201     </span><span class="jsdoc-syntax">},
202
203     </span><span class="jsdoc-var">restrictHeight </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
204     {
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">&lt; 1) {
214
215                 </span><span class="jsdoc-var">el.setHeight</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">h </span><span class="jsdoc-syntax">&lt; </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">&lt; </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">);
217
218             }
219
220
221         }, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
222
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">();
227
228     },
229
230
231     </span><span class="jsdoc-comment">// -- store handlers..
232     // private
233     </span><span class="jsdoc-var">onBeforeLoad </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
234     {
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">;
237         }
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">'&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">);
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;
242     },
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">)
245     {
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">&lt; </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">});
250             }
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">);
254
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'
256
257
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">;
261         }
262
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">() &gt; 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">();
268         }
269
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">();
272         }
273         </span><span class="jsdoc-comment">/*
274         this.stores[1].loadData([]);
275         this.stores[2].loadData([]);
276         this.views
277         */
278
279         //this.el.focus();
280     </span><span class="jsdoc-syntax">},
281
282
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">()
285     {
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">&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">) {
289             </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">);
290         }
291
292
293     },
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">) { },
296
297
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">)
299     {
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">();
301
302         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">opts.list </span><span class="jsdoc-syntax">&gt; </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">()&lt;  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">});
305
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">);
310                 }
311
312             }
313
314             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
315         }
316
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">;
323         }
324
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]);
326
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]);
329
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">(
331              (
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">();
339
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">());
341
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">&lt; </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">});
345         }
346
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)));
349
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">}
353
354     },
355
356
357
358
359     </span><span class="jsdoc-var">onDoubleClick </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
360     {
361         </span><span class="jsdoc-var">this.collapse</span><span class="jsdoc-syntax">(); </span><span class="jsdoc-comment">//??
362     </span><span class="jsdoc-syntax">},
363
364
365
366
367
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">)
370     {
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">: [ ]
375         });
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">() &lt; 1){
380             </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
381         }
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">;
387             }
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">&amp;&amp; </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">;
395                 }
396             }
397
398             </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
399         });
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">;
405     },
406
407     </span><span class="jsdoc-comment">/*
408      * find the stack of stores that match our value.
409      *
410      * 
411      */
412
413     </span><span class="jsdoc-var">selectActive </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">()
414     {
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">&lt; </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">);
420         }
421
422     }
423
424
425
426
427
428
429 });</span></code></body></html>