-/*!
- * Ext JS Library 3.1.0
- * Copyright(c) 2006-2009 Ext JS, LLC
- * licensing@extjs.com
- * http://www.extjs.com/license
- */
-/**\r
- * @class Ext.list.Sorter\r
- * @extends Ext.util.Observable\r
- * <p>Supporting Class for Ext.list.ListView</p>\r
- * @constructor\r
- * @param {Object} config\r
- */\r
-Ext.list.Sorter = Ext.extend(Ext.util.Observable, {\r
- /**\r
- * @cfg {Array} sortClasses\r
- * The CSS classes applied to a header when it is sorted. (defaults to <tt>["sort-asc", "sort-desc"]</tt>)\r
- */\r
- sortClasses : ["sort-asc", "sort-desc"],\r
-\r
- constructor: function(config){\r
- Ext.apply(this, config);\r
- Ext.list.Sorter.superclass.constructor.call(this);\r
- },\r
-\r
- init : function(listView){\r
- this.view = listView;\r
- listView.on('render', this.initEvents, this);\r
- },\r
-\r
- initEvents : function(view){\r
- view.mon(view.innerHd, 'click', this.onHdClick, this);\r
- view.innerHd.setStyle('cursor', 'pointer');\r
- view.mon(view.store, 'datachanged', this.updateSortState, this);\r
- this.updateSortState.defer(10, this, [view.store]);\r
- },\r
-\r
- updateSortState : function(store){\r
- var state = store.getSortState();\r
- if(!state){\r
- return;\r
- }\r
- this.sortState = state;\r
- var cs = this.view.columns, sortColumn = -1;\r
- for(var i = 0, len = cs.length; i < len; i++){\r
- if(cs[i].dataIndex == state.field){\r
- sortColumn = i;\r
- break;\r
- }\r
- }\r
- if(sortColumn != -1){\r
- var sortDir = state.direction;\r
- this.updateSortIcon(sortColumn, sortDir);\r
- }\r
- },\r
-\r
- updateSortIcon : function(col, dir){\r
- var sc = this.sortClasses;\r
- var hds = this.view.innerHd.select('em').removeClass(sc);\r
- hds.item(col).addClass(sc[dir == "DESC" ? 1 : 0]);\r
- },\r
-\r
- onHdClick : function(e){\r
- var hd = e.getTarget('em', 3);\r
- if(hd && !this.view.disableHeaders){\r
- var index = this.view.findHeaderIndex(hd);\r
- this.view.store.sort(this.view.columns[index].dataIndex);\r
- }\r
- }\r
-});\r
-\r
-// Backwards compatibility alias\r
-Ext.ListView.Sorter = Ext.list.Sorter;
\ No newline at end of file