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">/*
4 * Copyright(c) 2006-2007, Ext JS, LLC.
6 * Originally Released Under LGPL - original licence link has changed is not relivant.
9 * <script type="text/javascript">
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)
17 * @param {Object/String} attributes The attributes/config for the node or just a string with the text for the node
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">/**
25 * Fires before this node is loaded, return false to cancel
26 * @param {Node} this This node
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">/**
31 * Fires when this node is loaded
32 * @param {Node} this This node
35 * The loader used by this node (defaults to using the tree's defined loader)
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">);
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">;
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">"beforeload"</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">;
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">;
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">);
68 </span><span class="jsdoc-comment">/**
69 * Returns true if this node is currently loading
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">;
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">"load"</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">);
84 </span><span class="jsdoc-comment">/**
85 * Returns true if this node has been loaded
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">;
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">() && !</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">);
100 </span><span class="jsdoc-comment">/**
101 * Trigger a reload for this node
102 * @param {Function} callback
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">);
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">;
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">);
116 });</span></code></body></html>