006ecbbcf1597a0d4392f917d78c49e0f4cdc865
[roojs1] / docs / src / Roo_tree_AsyncTreeNode.js.html
1 <html><head><title>/home/edward/gitlive/roojs1/Roo/tree/AsyncTreeNode.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.AsyncTreeNode
14  * @extends Roo.tree.TreeNode
15  * @cfg {TreeLoader} loader A TreeLoader to be used by this node (defaults to the loader defined on the tree)
16  * @constructor
17  * @param {Object/String} attributes The attributes/config for the node or just a string with the text for the node 
18  */
19  </span><span class="jsdoc-var">Roo.tree.AsyncTreeNode </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">){
20     </span><span class="jsdoc-var">this.loaded </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
21     </span><span class="jsdoc-var">this.loading </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
22     </span><span class="jsdoc-var">Roo.tree.AsyncTreeNode.superclass.constructor.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">);
23     </span><span class="jsdoc-comment">/**
24     * @event beforeload
25     * Fires before this node is loaded, return false to cancel
26     * @param {Node} this This node
27     */
28     </span><span class="jsdoc-var">this.addEvents</span><span class="jsdoc-syntax">({</span><span class="jsdoc-string">'beforeload'</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'load'</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">});
29     </span><span class="jsdoc-comment">/**
30     * @event load
31     * Fires when this node is loaded
32     * @param {Node} this This node
33     */
34     /**
35      * The loader used by this node (defaults to using the tree's defined loader)
36      * @type TreeLoader
37      * @property loader
38      */
39 </span><span class="jsdoc-syntax">};
40 </span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.tree.AsyncTreeNode</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.tree.TreeNode</span><span class="jsdoc-syntax">, {
41     </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">){
42         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.loading</span><span class="jsdoc-syntax">){ </span><span class="jsdoc-comment">// if an async load is already running, waiting til it's done
43             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">timer</span><span class="jsdoc-syntax">;
44             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">f </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
45                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.loading</span><span class="jsdoc-syntax">){ </span><span class="jsdoc-comment">// done loading
46                     </span><span class="jsdoc-var">clearInterval</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">timer</span><span class="jsdoc-syntax">);
47                     </span><span class="jsdoc-var">this.expand</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">);
48                 }
49             }</span><span class="jsdoc-var">.createDelegate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
50             </span><span class="jsdoc-var">timer </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">setInterval</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">f</span><span class="jsdoc-syntax">, 200);
51             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
52         }
53         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.loaded</span><span class="jsdoc-syntax">){
54             </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;beforeload&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">){
55                 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
56             }
57             </span><span class="jsdoc-var">this.loading </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
58             </span><span class="jsdoc-var">this.ui.beforeLoad</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
59             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">loader </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.loader </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">this.attributes.loader </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">this.getOwnerTree</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.getLoader</span><span class="jsdoc-syntax">();
60             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">loader</span><span class="jsdoc-syntax">){
61                 </span><span class="jsdoc-var">loader.load</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.loadComplete.createDelegate</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-var">callback</span><span class="jsdoc-syntax">]));
62                 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
63             }
64         }
65         </span><span class="jsdoc-var">Roo.tree.AsyncTreeNode.superclass.expand.call</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-var">callback</span><span class="jsdoc-syntax">);
66     },
67
68     </span><span class="jsdoc-comment">/**
69      * Returns true if this node is currently loading
70      * @return {Boolean}
71      */
72     </span><span class="jsdoc-var">isLoading </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
73         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.loading</span><span class="jsdoc-syntax">;
74     },
75
76     </span><span class="jsdoc-var">loadComplete </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">){
77         </span><span class="jsdoc-var">this.loading </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
78         </span><span class="jsdoc-var">this.loaded </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
79         </span><span class="jsdoc-var">this.ui.afterLoad</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
80         </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;load&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
81         </span><span class="jsdoc-var">this.expand</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">);
82     },
83
84     </span><span class="jsdoc-comment">/**
85      * Returns true if this node has been loaded
86      * @return {Boolean}
87      */
88     </span><span class="jsdoc-var">isLoaded </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
89         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.loaded</span><span class="jsdoc-syntax">;
90     },
91
92     </span><span class="jsdoc-var">hasChildNodes </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
93         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.isLeaf</span><span class="jsdoc-syntax">() &amp;&amp; !</span><span class="jsdoc-var">this.loaded</span><span class="jsdoc-syntax">){
94             </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
95         }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
96             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">Roo.tree.AsyncTreeNode.superclass.hasChildNodes.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
97         }
98     },
99
100     </span><span class="jsdoc-comment">/**
101      * Trigger a reload for this node
102      * @param {Function} callback
103      */
104     </span><span class="jsdoc-var">reload </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">){
105         </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">);
106         </span><span class="jsdoc-keyword">while</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.firstChild</span><span class="jsdoc-syntax">){
107             </span><span class="jsdoc-var">this.removeChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.firstChild</span><span class="jsdoc-syntax">);
108         }
109         </span><span class="jsdoc-var">this.childrenRendered </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
110         </span><span class="jsdoc-var">this.loaded </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
111         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.isHiddenRoot</span><span class="jsdoc-syntax">()){
112             </span><span class="jsdoc-var">this.expanded </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
113         }
114         </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">, </span><span class="jsdoc-var">callback</span><span class="jsdoc-syntax">);
115     }
116 });</span></code></body></html>