source: trunk/web/addons/job_monarch/lib/extjs/air/samples/tasks/js/ListLoader.js @ 619

Last change on this file since 619 was 619, checked in by ramonb, 15 years ago

lib/:

  • added new AJAX dependancies: ExtJS, pChart, Lightbox2
File size: 1.2 KB
Line 
1/*
2 * Ext JS Library 0.30
3 * Copyright(c) 2006-2009, Ext JS, LLC.
4 * licensing@extjs.com
5 *
6 * http://extjs.com/license
7 */
8
9ListLoader = function(config){
10        Ext.apply(this, config);
11};
12
13Ext.extend(ListLoader, Ext.util.Observable, {
14        keyAttribute: 'id',
15        keyField: 'parentId',
16       
17        load: function(node, callback){
18                var key = this.keyField;
19                var v = node.attributes[this.keyAttribute];
20                var rs = this.store.queryBy(function(r){
21                        return r.data[key] === v;
22                });
23                node.beginUpdate();
24        for (var i = 0, d = rs.items, len = d.length; i < len; i++) {
25                        var n = this.createNode(d[i]);
26                        if (n) {
27                                node.appendChild(n);
28                        }
29                }
30                node.endUpdate();
31                if(typeof callback == "function"){
32            callback(this, node);
33        }
34        },
35       
36        createNode : function(record){
37                var d = record.data, n;
38                if(d.isFolder){
39                        n = new Ext.tree.AsyncTreeNode({
40                                loader: this,
41                                id: record.id,
42                                text: d.listName,
43                                leaf: false,
44                                iconCls: 'icon-folder',
45                                editable: true,
46                                expanded: true,
47                                isFolder: true
48                        });
49                }else{
50                        n = new Ext.tree.TreeNode({
51                                id: record.id,
52                                text: d.listName,
53                                leaf: true,
54                                iconCls: 'icon-list',
55                                editable: true
56                        });
57                }
58                return n;
59        }
60});
Note: See TracBrowser for help on using the repository browser.