Subversion Repositories eFlore/Applications.cel

Rev

Go to most recent revision | Blame | Last modification | View Log | RSS feed

/*
 * Ext JS Library 0.20
 * Copyright(c) 2006-2008, Ext JS, LLC.
 * licensing@extjs.com
 * 
 * http://extjs.com/license
 */

ListLoader = function(config){
        Ext.apply(this, config);
};

Ext.extend(ListLoader, Ext.util.Observable, {
        keyAttribute: 'id',
        keyField: 'parentId',
        
        load: function(node, callback){
                var key = this.keyField;
                var v = node.attributes[this.keyAttribute];
                var rs = this.store.queryBy(function(r){
                        return r.data[key] === v;
                });
                node.beginUpdate();
        for (var i = 0, d = rs.items, len = d.length; i < len; i++) {
                        var n = this.createNode(d[i]);
                        if (n) {
                                node.appendChild(n);
                        }
                }
                node.endUpdate();
                if(typeof callback == "function"){
            callback(this, node);
        }
        },
        
        createNode : function(record){
                var d = record.data, n;
                if(d.isFolder){
                        n = new Ext.tree.AsyncTreeNode({
                                loader: this,
                                id: record.id,
                                text: d.listName,
                                leaf: false,
                                iconCls: 'icon-folder',
                                editable: true,
                                expanded: true,
                                isFolder: true
                        });
                }else{
                        n = new Ext.tree.TreeNode({
                                id: record.id,
                                text: d.listName,
                                leaf: true,
                                iconCls: 'icon-list',
                                editable: true
                        });
                }
                return n;
        }
});