X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/b37ceabb82336ee82757cd32efe353cfab8ec267..f5240829880f87e0cf581c6a296e436fdef0ef80:/docs/source/TreeSorter.html diff --git a/docs/source/TreeSorter.html b/docs/source/TreeSorter.html index f6550253..8426392b 100644 --- a/docs/source/TreeSorter.html +++ b/docs/source/TreeSorter.html @@ -7,7 +7,7 @@
/*!
- * Ext JS Library 3.2.2
+ * Ext JS Library 3.3.0
  * Copyright(c) 2006-2010 Ext JS, Inc.
  * licensing@extjs.com
  * http://www.extjs.com/license
@@ -31,8 +31,10 @@ new Ext.tree.TreeSorter(myTree, {
  * @param {TreePanel} tree
  * @param {Object} config
  */
-Ext.tree.TreeSorter = function(tree, config){
-    
/** +Ext.tree.TreeSorter = Ext.extend(Object, { + + constructor: function(tree, config){ +
/** * @cfg {Boolean} folderSort True to sort leaf nodes under non-leaf nodes (defaults to false) */
/** @@ -57,48 +59,54 @@ Ext.tree.TreeSorter = function(tree, config){ */ Ext.apply(this, config); - tree.on("beforechildrenrendered", this.doSort, this); - tree.on("append", this.updateSort, this); - tree.on("insert", this.updateSort, this); - tree.on("textchange", this.updateSortParent, this); + tree.on({ + scope: this, + beforechildrenrendered: this.doSort, + append: this.updateSort, + insert: this.updateSort, + textchange: this.updateSortParent + }); - var dsc = this.dir && this.dir.toLowerCase() == "desc"; - var p = this.property || "text"; - var sortType = this.sortType; - var fs = this.folderSort; - var cs = this.caseSensitive === true; - var leafAttr = this.leafAttr || 'leaf'; + var desc = this.dir && this.dir.toLowerCase() == 'desc', + prop = this.property || 'text'; + sortType = this.sortType; + folderSort = this.folderSort; + caseSensitive = this.caseSensitive === true; + leafAttr = this.leafAttr || 'leaf'; + if(Ext.isString(sortType)){ + sortType = Ext.data.SortTypes[sortType]; + } this.sortFn = function(n1, n2){ - if(fs){ - if(n1.attributes[leafAttr] && !n2.attributes[leafAttr]){ + var attr1 = n1.attributes, + attr2 = n2.attributes; + + if(folderSort){ + if(attr1[leafAttr] && !attr2[leafAttr]){ return 1; } - if(!n1.attributes[leafAttr] && n2.attributes[leafAttr]){ + if(!attr1[leafAttr] && attr2[leafAttr]){ return -1; } } - var v1 = sortType ? sortType(n1) : (cs ? n1.attributes[p] : n1.attributes[p].toUpperCase()); - var v2 = sortType ? sortType(n2) : (cs ? n2.attributes[p] : n2.attributes[p].toUpperCase()); + var prop1 = attr1[prop], + prop2 = attr2[prop], + v1 = sortType ? sortType(prop1) : (caseSensitive ? prop1 : prop1.toUpperCase()); + v2 = sortType ? sortType(prop2) : (caseSensitive ? prop2 : prop2.toUpperCase()); + if(v1 < v2){ - return dsc ? +1 : -1; + return desc ? 1 : -1; }else if(v1 > v2){ - return dsc ? -1 : +1; - }else{ - return 0; + return desc ? -1 : 1; } + return 0; }; -}; - -Ext.tree.TreeSorter.prototype = { + }, + doSort : function(node){ node.sort(this.sortFn); }, - compareNodes : function(n1, n2){ - return (n1.text.toUpperCase() > n2.text.toUpperCase() ? 1 : -1); - }, - updateSort : function(tree, node){ if(node.childrenRendered){ this.doSort.defer(1, this, [node]); @@ -110,7 +118,7 @@ Ext.tree.TreeSorter.prototype = { if(p && p.childrenRendered){ this.doSort.defer(1, this, [p]); } - } -};
+ } +}); \ No newline at end of file