Upgrade to ExtJS 3.0.0 - Released 07/06/2009
[extjs.git] / docs / source / ListStore.html
diff --git a/docs/source/ListStore.html b/docs/source/ListStore.html
new file mode 100644 (file)
index 0000000..6e0cfd9
--- /dev/null
@@ -0,0 +1,118 @@
+<html>\r
+<head>\r
+  <title>The source code</title>\r
+    <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />\r
+    <script type="text/javascript" src="../resources/prettify/prettify.js"></script>\r
+</head>\r
+<body  onload="prettyPrint();">\r
+    <pre class="prettyprint lang-js">\r
+tx.data.ListStore = Ext.extend(Ext.data.Store, {\r
+       constructor: function(){\r
+               tx.data.ListStore.superclass.constructor.call(this, {\r
+               sortInfo:{field: 'listName', direction: "ASC"},\r
+               reader: new Ext.data.JsonReader({\r
+                   id: 'listId',\r
+                               fields: tx.data.List\r
+               })\r
+           });\r
+               this.boundTrees = {};\r
+           this.conn = tx.data.conn;\r
+           this.proxy = new Ext.sql.Proxy(tx.data.conn, 'list', 'listId', this);\r
+       },\r
+       \r
+    getName : function(id){\r
+               var l = this.data.map[id];\r
+               return l ? l.data.listName : '';\r
+       },\r
+       \r
+       addList : function(name, id, isFolder, parentId){\r
+               var l = this.findList(name);\r
+               if(!l){\r
+                       var id = id || Ext.uniqueId();\r
+                       l = new tx.data.List({listId: id, listName: name, isFolder: isFolder === true, parentId: parentId || 'root'}, id);\r
+                       this.add(l);\r
+               }\r
+               return l;\r
+       },\r
+       \r
+       newList : function(isFolder, parentId){\r
+               var i = 1;\r
+               var text = isFolder ? 'New Folder ' : 'New List '; \r
+               while(this.findList(text + i)){\r
+                       i++;\r
+               }\r
+               return this.addList(text + i, undefined, isFolder, parentId);\r
+       },\r
+       \r
+       findList : function(name){\r
+               var d = this.data;\r
+               for(var i = 0, len = d.length; i < len; i++){\r
+                       if(d.items[i].data.listName === name){\r
+                               return d.items[i];\r
+                       }\r
+               }\r
+               return null;\r
+       },\r
+       \r
+       loadDemoLists: function(){\r
+               this.addList('Personal', 'personal', true, 'root');\r
+               this.addList('Family', 'family', false, 'personal');\r
+               this.addList('Bills', 'bills', false, 'personal');\r
+               this.addList('Fun', 'fun', false, 'personal');\r
+               this.addList('Other Stuff', 'personal-misc', false, 'personal');\r
+               this.addList('Work', 'work', true, 'root');\r
+               this.addList('Ext 2.x', 'ext2', false, 'work');\r
+               this.addList('Ext 1.x', 'ext1', false, 'work');\r
+               this.addList('Meetings', 'meetings', false, 'work');\r
+               this.addList('Miscellaneous', 'work-misc', false, 'work');\r
+       },\r
+       \r
+       bindTree : function(tree){\r
+               this.boundTrees[tree.id] = {\r
+                       add: function(ls, records){\r
+                               var pnode = tree.getNodeById(records[0].data.parentId);\r
+                               if(pnode){\r
+                                       pnode.reload();\r
+                               }\r
+                       },\r
+                       \r
+                       remove: function(ls, record){\r
+                               var node = tree.getNodeById(record.id);\r
+                               if(node && node.parentNode){\r
+                                       node.parentNode.removeChild(node);\r
+                               }\r
+                       },\r
+                       \r
+                       update: function(ls, record){\r
+                               var node = tree.getNodeById(record.id);\r
+                               if(node){\r
+                                       node.setText(record.data.listName);\r
+                               }\r
+                       }\r
+               };\r
+               \r
+               this.on(this.boundTrees[tree.id]);\r
+       },\r
+       \r
+       unbindTree : function(tree){\r
+               var h = this.boundTrees[tree.id];\r
+               if (h) {\r
+                       this.un('add', h.add);\r
+                       this.un('remove', h.remove);\r
+                       this.un('update', h.update);\r
+               }\r
+       },\r
+       \r
+       prepareTable : function(){\r
+        try{\r
+        this.createTable({\r
+            name: 'list',\r
+            key: 'listId',\r
+            fields: tx.data.List.prototype.fields\r
+        });\r
+        }catch(e){console.log(e);}\r
+    }\r
+});\r
+</pre>    \r
+</body>\r
+</html>
\ No newline at end of file