2 * Ext JS Library 0.30
\r
3 * Copyright(c) 2006-2009, Ext JS, LLC.
\r
4 * licensing@extjs.com
\r
6 * http://extjs.com/license
\r
9 Ext.tree.LocalTreeLoader = Ext.extend(Ext.tree.TreeLoader, {
10 requestData : function(node, callback){
11 if(this.fireEvent("beforeload", this, node, callback) !== false){
12 var p = Ext.urlDecode(this.getParams(node));
13 var response = this.dataFn(node);
14 this.processResponse(response, node, callback);
15 this.fireEvent("load", this, node, response);
17 // if the load is cancelled, make sure we notify
18 // the node that we are done
19 if(typeof callback == "function"){
24 processResponse : function(o, node, callback){
27 for(var i = 0, len = o.length; i < len; i++){
28 var n = this.createNode(o[i]);
34 if(typeof callback == "function"){
38 this.handleFailure(response);
41 load : function(node, callback){
43 while(node.firstChild){
44 node.removeChild(node.firstChild);
47 if(this.doPreload(node)){ // preloaded json children
48 if(typeof callback == "function"){
51 }else if(this.dataFn||this.fn){
52 this.requestData(node, callback);
58 * @cfg {air.File} directory
59 * Initial directory to load the FileTree from
61 Ext.air.FileTreeLoader = Ext.extend(Ext.tree.LocalTreeLoader, {
62 extensionFilter: false,
63 dataFn: function(currNode) {
65 if (currNode.attributes.url) {
66 currDir = this.directory.resolvePath(currNode.attributes.url);
68 currDir = this.directory;
71 var c = currDir.getDirectoryListing();
72 for (i = 0; i < c.length; i++) {
73 if (c[i].isDirectory || this.extensionFilter === false || this.extensionFilter === c[i].extension)
77 extension: c[i].extension,
78 leaf: !c[i].isDirectory