Upgrade to ExtJS 3.0.0 - Released 07/06/2009
[extjs.git] / docs / source / ListLoader.html
1 <html>\r
2 <head>\r
3   <title>The source code</title>\r
4     <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />\r
5     <script type="text/javascript" src="../resources/prettify/prettify.js"></script>\r
6 </head>\r
7 <body  onload="prettyPrint();">\r
8     <pre class="prettyprint lang-js">ListLoader = function(config){\r
9         Ext.apply(this, config);\r
10 };\r
11 \r
12 Ext.extend(ListLoader, Ext.util.Observable, {\r
13         keyAttribute: 'id',\r
14         keyField: 'parentId',\r
15         \r
16         load: function(node, callback){\r
17                 var key = this.keyField;\r
18                 var v = node.attributes[this.keyAttribute];\r
19                 var rs = this.store.queryBy(function(r){\r
20                         return r.data[key] === v;\r
21                 });\r
22                 node.beginUpdate();\r
23         for (var i = 0, d = rs.items, len = d.length; i < len; i++) {\r
24                         var n = this.createNode(d[i]);\r
25                         if (n) {\r
26                                 node.appendChild(n);\r
27                         }\r
28                 }\r
29                 node.endUpdate();\r
30                 if(typeof callback == "function"){\r
31             callback(this, node);\r
32         }\r
33         },\r
34         \r
35         createNode : function(record){\r
36                 var d = record.data, n;\r
37                 if(d.isFolder){\r
38                         n = new Ext.tree.AsyncTreeNode({\r
39                                 loader: this,\r
40                                 id: record.id,\r
41                                 text: d.listName,\r
42                                 leaf: false,\r
43                                 iconCls: 'icon-folder',\r
44                                 editable: true,\r
45                                 expanded: true,\r
46                                 isFolder: true\r
47                         });\r
48                 }else{\r
49                         n = new Ext.tree.TreeNode({\r
50                                 id: record.id,\r
51                                 text: d.listName,\r
52                                 leaf: true,\r
53                                 iconCls: 'icon-list',\r
54                                 editable: true\r
55                         });\r
56                 }\r
57                 return n;\r
58         }\r
59 });</pre>    \r
60 </body>\r
61 </html>