X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/ee06f37b0f6f6d94cd05a6ffae556660f7c4a2bc..c930e9176a5a85509c5b0230e2bff5c22a591432:/docs/source/ListStore.html diff --git a/docs/source/ListStore.html b/docs/source/ListStore.html new file mode 100644 index 00000000..6e0cfd91 --- /dev/null +++ b/docs/source/ListStore.html @@ -0,0 +1,118 @@ + +
++tx.data.ListStore = Ext.extend(Ext.data.Store, { + constructor: function(){ + tx.data.ListStore.superclass.constructor.call(this, { + sortInfo:{field: 'listName', direction: "ASC"}, + reader: new Ext.data.JsonReader({ + id: 'listId', + fields: tx.data.List + }) + }); + this.boundTrees = {}; + this.conn = tx.data.conn; + this.proxy = new Ext.sql.Proxy(tx.data.conn, 'list', 'listId', this); + }, + + getName : function(id){ + var l = this.data.map[id]; + return l ? l.data.listName : ''; + }, + + addList : function(name, id, isFolder, parentId){ + var l = this.findList(name); + if(!l){ + var id = id || Ext.uniqueId(); + l = new tx.data.List({listId: id, listName: name, isFolder: isFolder === true, parentId: parentId || 'root'}, id); + this.add(l); + } + return l; + }, + + newList : function(isFolder, parentId){ + var i = 1; + var text = isFolder ? 'New Folder ' : 'New List '; + while(this.findList(text + i)){ + i++; + } + return this.addList(text + i, undefined, isFolder, parentId); + }, + + findList : function(name){ + var d = this.data; + for(var i = 0, len = d.length; i < len; i++){ + if(d.items[i].data.listName === name){ + return d.items[i]; + } + } + return null; + }, + + loadDemoLists: function(){ + this.addList('Personal', 'personal', true, 'root'); + this.addList('Family', 'family', false, 'personal'); + this.addList('Bills', 'bills', false, 'personal'); + this.addList('Fun', 'fun', false, 'personal'); + this.addList('Other Stuff', 'personal-misc', false, 'personal'); + this.addList('Work', 'work', true, 'root'); + this.addList('Ext 2.x', 'ext2', false, 'work'); + this.addList('Ext 1.x', 'ext1', false, 'work'); + this.addList('Meetings', 'meetings', false, 'work'); + this.addList('Miscellaneous', 'work-misc', false, 'work'); + }, + + bindTree : function(tree){ + this.boundTrees[tree.id] = { + add: function(ls, records){ + var pnode = tree.getNodeById(records[0].data.parentId); + if(pnode){ + pnode.reload(); + } + }, + + remove: function(ls, record){ + var node = tree.getNodeById(record.id); + if(node && node.parentNode){ + node.parentNode.removeChild(node); + } + }, + + update: function(ls, record){ + var node = tree.getNodeById(record.id); + if(node){ + node.setText(record.data.listName); + } + } + }; + + this.on(this.boundTrees[tree.id]); + }, + + unbindTree : function(tree){ + var h = this.boundTrees[tree.id]; + if (h) { + this.un('add', h.add); + this.un('remove', h.remove); + this.un('update', h.update); + } + }, + + prepareTable : function(){ + try{ + this.createTable({ + name: 'list', + key: 'listId', + fields: tx.data.List.prototype.fields + }); + }catch(e){console.log(e);} + } +}); ++ + \ No newline at end of file