Fix #5681 - fix bootstrap4 detection
[roojs1] / docs / src / Roo_tree_TreeNode.js.html
1 <html><head><title>Roo/tree/TreeNode.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty"><span class="jsdoc-comment">/*
2  * Based on:
3  * Ext JS Library 1.1.1
4  * Copyright(c) 2006-2007, Ext JS, LLC.
5  *
6  * Originally Released Under LGPL - original licence link has changed is not relivant.
7  *
8  * Fork - LGPL
9  * &lt;script type=&quot;text/javascript&quot;&gt;
10  */
11
12 /**
13  * @class Roo.tree.TreeNode
14  * @extends Roo.data.Node
15  * @cfg {String} text The text for this node
16  * @cfg {Boolean} expanded true to start the node expanded
17  * @cfg {Boolean} allowDrag false to make this node undraggable if DD is on (defaults to true)
18  * @cfg {Boolean} allowDrop false if this node cannot be drop on
19  * @cfg {Boolean} disabled true to start the node disabled
20  * @cfg {String} icon The path to an icon for the node. The preferred way to do this
21  *    is to use the cls or iconCls attributes and add the icon via a CSS background image.
22  * @cfg {String} cls A css class to be added to the node
23  * @cfg {String} iconCls A css class to be added to the nodes icon element for applying css background images
24  * @cfg {String} href URL of the link used for the node (defaults to #)
25  * @cfg {String} hrefTarget target frame for the link
26  * @cfg {String} qtip An Ext QuickTip for the node
27  * @cfg {String} qtipCfg An Ext QuickTip config for the node (used instead of qtip)
28  * @cfg {Boolean} singleClickExpand True for single click expand on this node
29  * @cfg {Function} uiProvider A UI &lt;b&gt;class&lt;/b&gt; to use for this node (defaults to Roo.tree.TreeNodeUI)
30  * @cfg {Boolean} checked True to render a checked checkbox for this node, false to render an unchecked checkbox
31  * (defaults to undefined with no checkbox rendered)
32  * @constructor
33  * @param {Object/String} attributes The attributes/config for the node or just a string with the text for the node
34  */
35 </span><span class="jsdoc-var">Roo.tree.TreeNode </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">attributes</span><span class="jsdoc-syntax">){
36     </span><span class="jsdoc-var">attributes </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">attributes </span><span class="jsdoc-syntax">|| {};
37     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">attributes </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">&quot;string&quot;</span><span class="jsdoc-syntax">){
38         </span><span class="jsdoc-var">attributes </span><span class="jsdoc-syntax">= {</span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">attributes</span><span class="jsdoc-syntax">};
39     }
40     </span><span class="jsdoc-var">this.childrenRendered </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
41     </span><span class="jsdoc-var">this.rendered </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
42     </span><span class="jsdoc-var">Roo.tree.TreeNode.superclass.constructor.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">attributes</span><span class="jsdoc-syntax">);
43     </span><span class="jsdoc-var">this.expanded </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">attributes.expanded </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
44     </span><span class="jsdoc-var">this.isTarget </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">attributes.isTarget </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
45     </span><span class="jsdoc-var">this.draggable </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">attributes.draggable </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">false </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">attributes.allowDrag </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
46     </span><span class="jsdoc-var">this.allowChildren </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">attributes.allowChildren </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">false </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">attributes.allowDrop </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
47
48     </span><span class="jsdoc-comment">/**
49      * Read-only. The text for this node. To change it use setText().
50      * @type String
51      */
52     </span><span class="jsdoc-var">this.text </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">attributes.text</span><span class="jsdoc-syntax">;
53     </span><span class="jsdoc-comment">/**
54      * True if this node is disabled.
55      * @type Boolean
56      */
57     </span><span class="jsdoc-var">this.disabled </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">attributes.disabled </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
58
59     </span><span class="jsdoc-var">this.addEvents</span><span class="jsdoc-syntax">({
60         </span><span class="jsdoc-comment">/**
61         * @event textchange
62         * Fires when the text for this node is changed
63         * @param {Node} this This node
64         * @param {String} text The new text
65         * @param {String} oldText The old text
66         */
67         </span><span class="jsdoc-string">&quot;textchange&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
68         </span><span class="jsdoc-comment">/**
69         * @event beforeexpand
70         * Fires before this node is expanded, return false to cancel.
71         * @param {Node} this This node
72         * @param {Boolean} deep
73         * @param {Boolean} anim
74         */
75         </span><span class="jsdoc-string">&quot;beforeexpand&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
76         </span><span class="jsdoc-comment">/**
77         * @event beforecollapse
78         * Fires before this node is collapsed, return false to cancel.
79         * @param {Node} this This node
80         * @param {Boolean} deep
81         * @param {Boolean} anim
82         */
83         </span><span class="jsdoc-string">&quot;beforecollapse&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
84         </span><span class="jsdoc-comment">/**
85         * @event expand
86         * Fires when this node is expanded
87         * @param {Node} this This node
88         */
89         </span><span class="jsdoc-string">&quot;expand&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
90         </span><span class="jsdoc-comment">/**
91         * @event disabledchange
92         * Fires when the disabled status of this node changes
93         * @param {Node} this This node
94         * @param {Boolean} disabled
95         */
96         </span><span class="jsdoc-string">&quot;disabledchange&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
97         </span><span class="jsdoc-comment">/**
98         * @event collapse
99         * Fires when this node is collapsed
100         * @param {Node} this This node
101         */
102         </span><span class="jsdoc-string">&quot;collapse&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
103         </span><span class="jsdoc-comment">/**
104         * @event beforeclick
105         * Fires before click processing. Return false to cancel the default action.
106         * @param {Node} this This node
107         * @param {Roo.EventObject} e The event object
108         */
109         </span><span class="jsdoc-string">&quot;beforeclick&quot;</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
110         </span><span class="jsdoc-comment">/**
111         * @event checkchange
112         * Fires when a node with a checkbox's checked property changes
113         * @param {Node} this This node
114         * @param {Boolean} checked
115         */
116         </span><span class="jsdoc-string">&quot;checkchange&quot;</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
117         </span><span class="jsdoc-comment">/**
118         * @event click
119         * Fires when this node is clicked
120         * @param {Node} this This node
121         * @param {Roo.EventObject} e The event object
122         */
123         </span><span class="jsdoc-string">&quot;click&quot;</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
124         </span><span class="jsdoc-comment">/**
125         * @event dblclick
126         * Fires when this node is double clicked
127         * @param {Node} this This node
128         * @param {Roo.EventObject} e The event object
129         */
130         </span><span class="jsdoc-string">&quot;dblclick&quot;</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
131         </span><span class="jsdoc-comment">/**
132         * @event contextmenu
133         * Fires when this node is right clicked
134         * @param {Node} this This node
135         * @param {Roo.EventObject} e The event object
136         */
137         </span><span class="jsdoc-string">&quot;contextmenu&quot;</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
138         </span><span class="jsdoc-comment">/**
139         * @event beforechildrenrendered
140         * Fires right before the child nodes for this node are rendered
141         * @param {Node} this This node
142         */
143         </span><span class="jsdoc-string">&quot;beforechildrenrendered&quot;</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">true
144     </span><span class="jsdoc-syntax">});
145
146     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">uiClass </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.attributes.uiProvider </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">Roo.tree.TreeNodeUI</span><span class="jsdoc-syntax">;
147
148     </span><span class="jsdoc-comment">/**
149      * Read-only. The UI for this node
150      * @type TreeNodeUI
151      */
152     </span><span class="jsdoc-var">this.ui </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">uiClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
153
154     </span><span class="jsdoc-comment">// finally support items[]
155     </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.attributes.items</span><span class="jsdoc-syntax">) == </span><span class="jsdoc-string">'undefined' </span><span class="jsdoc-syntax">|| !</span><span class="jsdoc-var">this.attributes.items</span><span class="jsdoc-syntax">) {
156         </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
157     }
158
159
160     </span><span class="jsdoc-var">Roo.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.attributes.items</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">) {
161         </span><span class="jsdoc-var">this.appendChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.factory</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">Roo.Tree</span><span class="jsdoc-syntax">));
162     }, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
163     </span><span class="jsdoc-keyword">delete </span><span class="jsdoc-var">this.attributes.items</span><span class="jsdoc-syntax">;
164
165
166
167 };
168 </span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.tree.TreeNode</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.data.Node</span><span class="jsdoc-syntax">, {
169     </span><span class="jsdoc-var">preventHScroll</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
170     </span><span class="jsdoc-comment">/**
171      * Returns true if this node is expanded
172      * @return {Boolean}
173      */
174     </span><span class="jsdoc-var">isExpanded </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
175         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.expanded</span><span class="jsdoc-syntax">;
176     },
177
178     </span><span class="jsdoc-comment">/**
179      * Returns the UI object for this node
180      * @return {TreeNodeUI}
181      */
182     </span><span class="jsdoc-var">getUI </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
183         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.ui</span><span class="jsdoc-syntax">;
184     },
185
186     </span><span class="jsdoc-comment">// private override
187     </span><span class="jsdoc-var">setFirstChild </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">){
188         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">of </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.firstChild</span><span class="jsdoc-syntax">;
189         </span><span class="jsdoc-var">Roo.tree.TreeNode.superclass.setFirstChild.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">);
190         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.childrenRendered </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">of </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">node </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-var">of</span><span class="jsdoc-syntax">){
191             </span><span class="jsdoc-var">of.renderIndent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
192         }
193         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.rendered</span><span class="jsdoc-syntax">){
194             </span><span class="jsdoc-var">this.renderIndent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
195         }
196     },
197
198     </span><span class="jsdoc-comment">// private override
199     </span><span class="jsdoc-var">setLastChild </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">){
200         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ol </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.lastChild</span><span class="jsdoc-syntax">;
201         </span><span class="jsdoc-var">Roo.tree.TreeNode.superclass.setLastChild.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">);
202         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.childrenRendered </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">ol </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">node </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-var">ol</span><span class="jsdoc-syntax">){
203             </span><span class="jsdoc-var">ol.renderIndent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
204         }
205         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.rendered</span><span class="jsdoc-syntax">){
206             </span><span class="jsdoc-var">this.renderIndent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
207         }
208     },
209
210     </span><span class="jsdoc-comment">// these methods are overridden to provide lazy rendering support
211     // private override
212     </span><span class="jsdoc-var">appendChild </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
213     {
214         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">node </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.tree.TreeNode.superclass.appendChild.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">arguments</span><span class="jsdoc-syntax">);
215         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">this.childrenRendered</span><span class="jsdoc-syntax">){
216             </span><span class="jsdoc-var">node.render</span><span class="jsdoc-syntax">();
217         }
218         </span><span class="jsdoc-var">this.ui.updateExpandIcon</span><span class="jsdoc-syntax">();
219         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">;
220     },
221
222     </span><span class="jsdoc-comment">// private override
223     </span><span class="jsdoc-var">removeChild </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">){
224         </span><span class="jsdoc-var">this.ownerTree.getSelectionModel</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.unselect</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">);
225         </span><span class="jsdoc-var">Roo.tree.TreeNode.superclass.removeChild.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">arguments</span><span class="jsdoc-syntax">);
226         </span><span class="jsdoc-comment">// if it's been rendered remove dom node
227         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.childrenRendered</span><span class="jsdoc-syntax">){
228             </span><span class="jsdoc-var">node.ui.remove</span><span class="jsdoc-syntax">();
229         }
230         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.childNodes.length </span><span class="jsdoc-syntax">&lt; 1){
231             </span><span class="jsdoc-var">this.collapse</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">);
232         }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
233             </span><span class="jsdoc-var">this.ui.updateExpandIcon</span><span class="jsdoc-syntax">();
234         }
235         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.firstChild</span><span class="jsdoc-syntax">) {
236             </span><span class="jsdoc-var">this.childrenRendered </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
237         }
238         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">;
239     },
240
241     </span><span class="jsdoc-comment">// private override
242     </span><span class="jsdoc-var">insertBefore </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">refNode</span><span class="jsdoc-syntax">){
243         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">newNode </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.tree.TreeNode.superclass.insertBefore.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">arguments</span><span class="jsdoc-syntax">);
244         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">newNode </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">refNode </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">this.childrenRendered</span><span class="jsdoc-syntax">){
245             </span><span class="jsdoc-var">node.render</span><span class="jsdoc-syntax">();
246         }
247         </span><span class="jsdoc-var">this.ui.updateExpandIcon</span><span class="jsdoc-syntax">();
248         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">newNode</span><span class="jsdoc-syntax">;
249     },
250
251     </span><span class="jsdoc-comment">/**
252      * Sets the text for this node
253      * @param {String} text
254      */
255     </span><span class="jsdoc-var">setText </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">){
256         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">oldText </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.text</span><span class="jsdoc-syntax">;
257         </span><span class="jsdoc-var">this.text </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">;
258         </span><span class="jsdoc-var">this.attributes.text </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">;
259         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.rendered</span><span class="jsdoc-syntax">){ </span><span class="jsdoc-comment">// event without subscribing
260             </span><span class="jsdoc-var">this.ui.onTextChange</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">oldText</span><span class="jsdoc-syntax">);
261         }
262         </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;textchange&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">oldText</span><span class="jsdoc-syntax">);
263     },
264
265     </span><span class="jsdoc-comment">/**
266      * Triggers selection of this node
267      */
268     </span><span class="jsdoc-var">select </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
269         </span><span class="jsdoc-var">this.getOwnerTree</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.getSelectionModel</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
270     },
271
272     </span><span class="jsdoc-comment">/**
273      * Triggers deselection of this node
274      */
275     </span><span class="jsdoc-var">unselect </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
276         </span><span class="jsdoc-var">this.getOwnerTree</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.getSelectionModel</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.unselect</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
277     },
278
279     </span><span class="jsdoc-comment">/**
280      * Returns true if this node is selected
281      * @return {Boolean}
282      */
283     </span><span class="jsdoc-var">isSelected </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
284         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.getOwnerTree</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.getSelectionModel</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.isSelected</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
285     },
286
287     </span><span class="jsdoc-comment">/**
288      * Expand this node.
289      * @param {Boolean} deep (optional) True to expand all children as well
290      * @param {Boolean} anim (optional) false to cancel the default animation
291      * @param {Function} callback (optional) A callback to be called when
292      * expanding this node completes (does not wait for deep expand to complete).
293      * Called with 1 parameter, this node.
294      */
295     </span><span class="jsdoc-var">expand </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">deep</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">anim</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">callback</span><span class="jsdoc-syntax">){
296         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.expanded</span><span class="jsdoc-syntax">){
297             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;beforeexpand&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">deep</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">anim</span><span class="jsdoc-syntax">) === </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">){
298                 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
299             }
300             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.childrenRendered</span><span class="jsdoc-syntax">){
301                 </span><span class="jsdoc-var">this.renderChildren</span><span class="jsdoc-syntax">();
302             }
303             </span><span class="jsdoc-var">this.expanded </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
304             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.isHiddenRoot</span><span class="jsdoc-syntax">() &amp;&amp; (</span><span class="jsdoc-var">this.getOwnerTree</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.animate </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">anim </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">) || </span><span class="jsdoc-var">anim</span><span class="jsdoc-syntax">){
305                 </span><span class="jsdoc-var">this.ui.animExpand</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
306                     </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;expand&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
307                     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">callback </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">&quot;function&quot;</span><span class="jsdoc-syntax">){
308                         </span><span class="jsdoc-var">callback</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
309                     }
310                     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">deep </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">){
311                         </span><span class="jsdoc-var">this.expandChildNodes</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
312                     }
313                 }</span><span class="jsdoc-var">.createDelegate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">));
314                 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
315             }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
316                 </span><span class="jsdoc-var">this.ui.expand</span><span class="jsdoc-syntax">();
317                 </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;expand&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
318                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">callback </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">&quot;function&quot;</span><span class="jsdoc-syntax">){
319                     </span><span class="jsdoc-var">callback</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
320                 }
321             }
322         }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
323            </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">callback </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">&quot;function&quot;</span><span class="jsdoc-syntax">){
324                </span><span class="jsdoc-var">callback</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
325            }
326         }
327         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">deep </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">){
328             </span><span class="jsdoc-var">this.expandChildNodes</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
329         }
330     },
331
332     </span><span class="jsdoc-var">isHiddenRoot </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
333         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.isRoot </span><span class="jsdoc-syntax">&amp;&amp; !</span><span class="jsdoc-var">this.getOwnerTree</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.rootVisible</span><span class="jsdoc-syntax">;
334     },
335
336     </span><span class="jsdoc-comment">/**
337      * Collapse this node.
338      * @param {Boolean} deep (optional) True to collapse all children as well
339      * @param {Boolean} anim (optional) false to cancel the default animation
340      */
341     </span><span class="jsdoc-var">collapse </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">deep</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">anim</span><span class="jsdoc-syntax">){
342         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.expanded </span><span class="jsdoc-syntax">&amp;&amp; !</span><span class="jsdoc-var">this.isHiddenRoot</span><span class="jsdoc-syntax">()){
343             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;beforecollapse&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">deep</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">anim</span><span class="jsdoc-syntax">) === </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">){
344                 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
345             }
346             </span><span class="jsdoc-var">this.expanded </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
347             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">((</span><span class="jsdoc-var">this.getOwnerTree</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.animate </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">anim </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">) || </span><span class="jsdoc-var">anim</span><span class="jsdoc-syntax">){
348                 </span><span class="jsdoc-var">this.ui.animCollapse</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
349                     </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;collapse&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
350                     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">deep </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">){
351                         </span><span class="jsdoc-var">this.collapseChildNodes</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
352                     }
353                 }</span><span class="jsdoc-var">.createDelegate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">));
354                 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
355             }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
356                 </span><span class="jsdoc-var">this.ui.collapse</span><span class="jsdoc-syntax">();
357                 </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;collapse&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
358             }
359         }
360         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">deep </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">){
361             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cs </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.childNodes</span><span class="jsdoc-syntax">;
362             </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">len </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cs.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
363                 </span><span class="jsdoc-var">cs</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.collapse</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">);
364             }
365         }
366     },
367
368     </span><span class="jsdoc-comment">// private
369     </span><span class="jsdoc-var">delayedExpand </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">delay</span><span class="jsdoc-syntax">){
370         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.expandProcId</span><span class="jsdoc-syntax">){
371             </span><span class="jsdoc-var">this.expandProcId </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.expand.defer</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">delay</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
372         }
373     },
374
375     </span><span class="jsdoc-comment">// private
376     </span><span class="jsdoc-var">cancelExpand </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
377         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.expandProcId</span><span class="jsdoc-syntax">){
378             </span><span class="jsdoc-var">clearTimeout</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.expandProcId</span><span class="jsdoc-syntax">);
379         }
380         </span><span class="jsdoc-var">this.expandProcId </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
381     },
382
383     </span><span class="jsdoc-comment">/**
384      * Toggles expanded/collapsed state of the node
385      */
386     </span><span class="jsdoc-var">toggle </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
387         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.expanded</span><span class="jsdoc-syntax">){
388             </span><span class="jsdoc-var">this.collapse</span><span class="jsdoc-syntax">();
389         }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
390             </span><span class="jsdoc-var">this.expand</span><span class="jsdoc-syntax">();
391         }
392     },
393
394     </span><span class="jsdoc-comment">/**
395      * Ensures all parent nodes are expanded
396      */
397     </span><span class="jsdoc-var">ensureVisible </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">callback</span><span class="jsdoc-syntax">){
398         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">tree </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getOwnerTree</span><span class="jsdoc-syntax">();
399         </span><span class="jsdoc-var">tree.expandPath</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.parentNode.getPath</span><span class="jsdoc-syntax">(), </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
400             </span><span class="jsdoc-var">tree.getTreeEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.scrollChildIntoView</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.ui.anchor</span><span class="jsdoc-syntax">);
401             </span><span class="jsdoc-var">Roo.callback</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">callback</span><span class="jsdoc-syntax">);
402         }</span><span class="jsdoc-var">.createDelegate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">));
403     },
404
405     </span><span class="jsdoc-comment">/**
406      * Expand all child nodes
407      * @param {Boolean} deep (optional) true if the child nodes should also expand their child nodes
408      */
409     </span><span class="jsdoc-var">expandChildNodes </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">deep</span><span class="jsdoc-syntax">){
410         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cs </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.childNodes</span><span class="jsdoc-syntax">;
411         </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">len </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cs.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
412                 </span><span class="jsdoc-var">cs</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.expand</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">deep</span><span class="jsdoc-syntax">);
413         }
414     },
415
416     </span><span class="jsdoc-comment">/**
417      * Collapse all child nodes
418      * @param {Boolean} deep (optional) true if the child nodes should also collapse their child nodes
419      */
420     </span><span class="jsdoc-var">collapseChildNodes </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">deep</span><span class="jsdoc-syntax">){
421         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cs </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.childNodes</span><span class="jsdoc-syntax">;
422         </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">len </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cs.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
423                 </span><span class="jsdoc-var">cs</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.collapse</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">deep</span><span class="jsdoc-syntax">);
424         }
425     },
426
427     </span><span class="jsdoc-comment">/**
428      * Disables this node
429      */
430     </span><span class="jsdoc-var">disable </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
431         </span><span class="jsdoc-var">this.disabled </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
432         </span><span class="jsdoc-var">this.unselect</span><span class="jsdoc-syntax">();
433         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.rendered </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">this.ui.onDisableChange</span><span class="jsdoc-syntax">){ </span><span class="jsdoc-comment">// event without subscribing
434             </span><span class="jsdoc-var">this.ui.onDisableChange</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
435         }
436         </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;disabledchange&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
437     },
438
439     </span><span class="jsdoc-comment">/**
440      * Enables this node
441      */
442     </span><span class="jsdoc-var">enable </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
443         </span><span class="jsdoc-var">this.disabled </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
444         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.rendered </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">this.ui.onDisableChange</span><span class="jsdoc-syntax">){ </span><span class="jsdoc-comment">// event without subscribing
445             </span><span class="jsdoc-var">this.ui.onDisableChange</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">);
446         }
447         </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;disabledchange&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">);
448     },
449
450     </span><span class="jsdoc-comment">// private
451     </span><span class="jsdoc-var">renderChildren </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">suppressEvent</span><span class="jsdoc-syntax">){
452         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">suppressEvent </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">){
453             </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;beforechildrenrendered&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
454         }
455         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cs </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.childNodes</span><span class="jsdoc-syntax">;
456         </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">len </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cs.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
457             </span><span class="jsdoc-var">cs</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.render</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
458         }
459         </span><span class="jsdoc-var">this.childrenRendered </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
460     },
461
462     </span><span class="jsdoc-comment">// private
463     </span><span class="jsdoc-var">sort </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">scope</span><span class="jsdoc-syntax">){
464         </span><span class="jsdoc-var">Roo.tree.TreeNode.superclass.sort.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">arguments</span><span class="jsdoc-syntax">);
465         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.childrenRendered</span><span class="jsdoc-syntax">){
466             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cs </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.childNodes</span><span class="jsdoc-syntax">;
467             </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">len </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cs.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
468                 </span><span class="jsdoc-var">cs</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.render</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
469             }
470         }
471     },
472
473     </span><span class="jsdoc-comment">// private
474     </span><span class="jsdoc-var">render </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">bulkRender</span><span class="jsdoc-syntax">){
475         </span><span class="jsdoc-var">this.ui.render</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">bulkRender</span><span class="jsdoc-syntax">);
476         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.rendered</span><span class="jsdoc-syntax">){
477             </span><span class="jsdoc-var">this.rendered </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
478             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.expanded</span><span class="jsdoc-syntax">){
479                 </span><span class="jsdoc-var">this.expanded </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
480                 </span><span class="jsdoc-var">this.expand</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">);
481             }
482         }
483     },
484
485     </span><span class="jsdoc-comment">// private
486     </span><span class="jsdoc-var">renderIndent </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">deep</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">refresh</span><span class="jsdoc-syntax">){
487         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">refresh</span><span class="jsdoc-syntax">){
488             </span><span class="jsdoc-var">this.ui.childIndent </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
489         }
490         </span><span class="jsdoc-var">this.ui.renderIndent</span><span class="jsdoc-syntax">();
491         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">deep </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-keyword">true </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">this.childrenRendered</span><span class="jsdoc-syntax">){
492             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cs </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.childNodes</span><span class="jsdoc-syntax">;
493             </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">len </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cs.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
494                 </span><span class="jsdoc-var">cs</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.renderIndent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">refresh</span><span class="jsdoc-syntax">);
495             }
496         }
497     }
498 });</span></code></body></html>