grid.js
54 KB
/*
* Ext JS Library 1.1 Beta 1
* Copyright(c) 2006-2007, Ext JS, LLC.
* licensing@extjs.com
*
* http://www.extjs.com/license
*/
Ext.grid.Grid=function(_1,_2){this.container=Ext.get(_1);this.container.update("");this.container.setStyle("overflow","hidden");this.container.addClass("x-grid-container");this.id=this.container.id;Ext.apply(this,_2);if(this.ds){this.dataSource=this.ds;delete this.ds;}if(this.cm){this.colModel=this.cm;delete this.cm;}if(this.sm){this.selModel=this.sm;delete this.sm;}if(this.width){this.container.setWidth(this.width);}if(this.height){this.container.setHeight(this.height);}this.addEvents({"click":true,"dblclick":true,"contextmenu":true,"mousedown":true,"mouseup":true,"mouseover":true,"mouseout":true,"keypress":true,"keydown":true,"cellclick":true,"celldblclick":true,"rowclick":true,"rowdblclick":true,"headerclick":true,"headerdblclick":true,"rowcontextmenu":true,"cellcontextmenu":true,"headercontextmenu":true,"bodyscroll":true,"columnresize":true,"columnmove":true,"startdrag":true,"enddrag":true,"dragdrop":true,"dragover":true,"dragenter":true,"dragout":true,render:true});Ext.grid.Grid.superclass.constructor.call(this);};Ext.extend(Ext.grid.Grid,Ext.util.Observable,{minColumnWidth:25,autoSizeColumns:false,autoSizeHeaders:true,monitorWindowResize:true,maxRowsToMeasure:0,trackMouseOver:true,enableDragDrop:false,enableColumnMove:true,enableColumnHide:true,enableRowHeightSync:false,stripeRows:true,autoHeight:false,autoExpandColumn:false,autoExpandMin:50,autoExpandMax:1000,view:null,loadMask:false,rendered:false,render:function(){var c=this.container;if((!c.dom.offsetHeight||c.dom.offsetHeight<20)||c.getStyle("height")=="auto"){this.autoHeight=true;}var _4=this.getView();_4.init(this);c.on("click",this.onClick,this);c.on("dblclick",this.onDblClick,this);c.on("contextmenu",this.onContextMenu,this);c.on("keydown",this.onKeyDown,this);this.relayEvents(c,["mousedown","mouseup","mouseover","mouseout","keypress"]);this.getSelectionModel().init(this);_4.render();if(this.loadMask){this.loadMask=new Ext.LoadMask(this.container,Ext.apply({store:this.dataSource},this.loadMask));}this.rendered=true;this.fireEvent("render",this);return this;},reconfigure:function(_5,_6){if(this.loadMask){this.loadMask.destroy();this.loadMask=new Ext.LoadMask(this.container,Ext.apply({store:_5},this.loadMask));}this.view.bind(_5,_6);this.dataSource=_5;this.colModel=_6;this.view.refresh(true);},onKeyDown:function(e){this.fireEvent("keydown",e);},destroy:function(_8,_9){if(this.loadMask){this.loadMask.destroy();}var c=this.container;c.removeAllListeners();this.view.destroy();this.colModel.purgeListeners();if(!_9){this.purgeListeners();}c.update("");if(_8===true){c.remove();}},processEvent:function(_b,e){this.fireEvent(_b,e);var t=e.getTarget();var v=this.view;var _f=v.findHeaderIndex(t);if(_f!==false){this.fireEvent("header"+_b,this,_f,e);}else{var row=v.findRowIndex(t);var _11=v.findCellIndex(t);if(row!==false){this.fireEvent("row"+_b,this,row,e);if(_11!==false){this.fireEvent("cell"+_b,this,row,_11,e);}}}},onClick:function(e){this.processEvent("click",e);},onContextMenu:function(e,t){this.processEvent("contextmenu",e);},onDblClick:function(e){this.processEvent("dblclick",e);},walkCells:function(row,col,_18,fn,_1a){var cm=this.colModel,_1c=cm.getColumnCount();var ds=this.dataSource,_1e=ds.getCount(),_1f=true;if(_18<0){if(col<0){row--;_1f=false;}while(row>=0){if(!_1f){col=_1c-1;}_1f=false;while(col>=0){if(fn.call(_1a||this,row,col,cm)===true){return[row,col];}col--;}row--;}}else{if(col>=_1c){row++;_1f=false;}while(row<_1e){if(!_1f){col=0;}_1f=false;while(col<_1c){if(fn.call(_1a||this,row,col,cm)===true){return[row,col];}col++;}row++;}}return null;},getSelections:function(){return this.selModel.getSelections();},autoSize:function(){if(this.rendered){this.view.layout();if(this.view.adjustForScroll){this.view.adjustForScroll();}}},getGridEl:function(){return this.container;},stopEditing:function(){},getSelectionModel:function(){if(!this.selModel){this.selModel=new Ext.grid.RowSelectionModel();}return this.selModel;},getDataSource:function(){return this.dataSource;},getColumnModel:function(){return this.colModel;},getView:function(){if(!this.view){this.view=new Ext.grid.GridView(this.viewConfig);}return this.view;},getDragDropText:function(){var _20=this.selModel.getCount();return String.format(this.ddText,_20,_20==1?"":"s");}});Ext.grid.Grid.prototype.ddText="{0} selected row{1}";
Ext.grid.AbstractGridView=function(){this.grid=null;this.events={"beforerowremoved":true,"beforerowsinserted":true,"beforerefresh":true,"rowremoved":true,"rowsinserted":true,"rowupdated":true,"refresh":true};Ext.grid.AbstractGridView.superclass.constructor.call(this);};Ext.extend(Ext.grid.AbstractGridView,Ext.util.Observable,{rowClass:"x-grid-row",cellClass:"x-grid-cell",tdClass:"x-grid-td",hdClass:"x-grid-hd",splitClass:"x-grid-hd-split",init:function(_1){this.grid=_1;var _2=this.grid.getGridEl().id;this.colSelector="#"+_2+" ."+this.cellClass+"-";this.tdSelector="#"+_2+" ."+this.tdClass+"-";this.hdSelector="#"+_2+" ."+this.hdClass+"-";this.splitSelector="#"+_2+" ."+this.splitClass+"-";},getColumnRenderers:function(){var _3=[];var cm=this.grid.colModel;var _5=cm.getColumnCount();for(var i=0;i<_5;i++){_3[i]=cm.getRenderer(i);}return _3;},getColumnIds:function(){var _7=[];var cm=this.grid.colModel;var _9=cm.getColumnCount();for(var i=0;i<_9;i++){_7[i]=cm.getColumnId(i);}return _7;},getDataIndexes:function(){if(!this.indexMap){this.indexMap=this.buildIndexMap();}return this.indexMap.colToData;},getColumnIndexByDataIndex:function(_b){if(!this.indexMap){this.indexMap=this.buildIndexMap();}return this.indexMap.dataToCol[_b];},setCSSStyle:function(_c,_d,_e){var _f="#"+this.grid.id+" .x-grid-col-"+_c;Ext.util.CSS.updateRule(_f,_d,_e);},generateRules:function(cm){var _11=[];for(var i=0,len=cm.getColumnCount();i<len;i++){var cid=cm.getColumnId(i);_11.push(this.colSelector,cid," {\n",cm.config[i].css,"}\n",this.tdSelector,cid," {\n}\n",this.hdSelector,cid," {\n}\n",this.splitSelector,cid," {\n}\n");}return Ext.util.CSS.createStyleSheet(_11.join(""));}});
Ext.grid.GridView=function(_1){Ext.grid.GridView.superclass.constructor.call(this);this.el=null;Ext.apply(this,_1);};Ext.extend(Ext.grid.GridView,Ext.grid.AbstractGridView,{rowClass:"x-grid-row",cellClass:"x-grid-col",tdClass:"x-grid-td",hdClass:"x-grid-hd",splitClass:"x-grid-split",sortClasses:["sort-asc","sort-desc"],enableMoveAnim:false,hlColor:"C3DAF9",dh:Ext.DomHelper,fly:Ext.Element.fly,css:Ext.util.CSS,borderWidth:1,splitOffset:3,scrollIncrement:22,cellRE:/(?:.*?)x-grid-(?:hd|cell|csplit)-(?:[\d]+)-([\d]+)(?:.*?)/,findRE:/\s?(?:x-grid-hd|x-grid-col|x-grid-csplit)\s/,bind:function(ds,cm){if(this.ds){this.ds.un("load",this.onLoad,this);this.ds.un("datachanged",this.onDataChange);this.ds.un("add",this.onAdd);this.ds.un("remove",this.onRemove);this.ds.un("update",this.onUpdate);this.ds.un("clear",this.onClear);}if(ds){ds.on("load",this.onLoad,this);ds.on("datachanged",this.onDataChange,this);ds.on("add",this.onAdd,this);ds.on("remove",this.onRemove,this);ds.on("update",this.onUpdate,this);ds.on("clear",this.onClear,this);}this.ds=ds;if(this.cm){this.cm.un("widthchange",this.onColWidthChange,this);this.cm.un("headerchange",this.onHeaderChange,this);this.cm.un("hiddenchange",this.onHiddenChange,this);this.cm.un("columnmoved",this.onColumnMove,this);this.cm.un("columnlockchange",this.onColumnLock,this);}if(cm){this.generateRules(cm);cm.on("widthchange",this.onColWidthChange,this);cm.on("headerchange",this.onHeaderChange,this);cm.on("hiddenchange",this.onHiddenChange,this);cm.on("columnmoved",this.onColumnMove,this);cm.on("columnlockchange",this.onColumnLock,this);}this.cm=cm;},init:function(_4){Ext.grid.GridView.superclass.init.call(this,_4);this.bind(_4.dataSource,_4.colModel);_4.on("headerclick",this.handleHeaderClick,this);if(_4.trackMouseOver){_4.on("mouseover",this.onRowOver,this);_4.on("mouseout",this.onRowOut,this);}_4.cancelTextSelection=function(){};this.gridId=_4.id;var _5=this.templates||{};if(!_5.master){_5.master=new Ext.Template("<div class=\"x-grid\" hidefocus=\"true\">","<div class=\"x-grid-topbar\"></div>","<div class=\"x-grid-scroller\"><div></div></div>","<div class=\"x-grid-locked\">","<div class=\"x-grid-header\">{lockedHeader}</div>","<div class=\"x-grid-body\">{lockedBody}</div>","</div>","<div class=\"x-grid-viewport\">","<div class=\"x-grid-header\">{header}</div>","<div class=\"x-grid-body\">{body}</div>","</div>","<div class=\"x-grid-bottombar\"></div>","<a href=\"#\" class=\"x-grid-focus\" tabIndex=\"-1\"></a>","<div class=\"x-grid-resize-proxy\"> </div>","</div>");_5.master.disableformats=true;}if(!_5.header){_5.header=new Ext.Template("<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">","<tbody><tr class=\"x-grid-hd-row\">{cells}</tr></tbody>","</table>{splits}");_5.header.disableformats=true;}_5.header.compile();if(!_5.hcell){_5.hcell=new Ext.Template("<td class=\"x-grid-hd x-grid-td-{id} {cellId}\"><div title=\"{title}\" class=\"x-grid-hd-inner x-grid-hd-{id}\">","<div class=\"x-grid-hd-text\" unselectable=\"on\">{value}<img class=\"x-grid-sort-icon\" src=\"",Ext.BLANK_IMAGE_URL,"\" /></div>","</div></td>");_5.hcell.disableFormats=true;}_5.hcell.compile();if(!_5.hsplit){_5.hsplit=new Ext.Template("<div class=\"x-grid-split {splitId} x-grid-split-{id}\" style=\"{style}\" unselectable=\"on\"> </div>");_5.hsplit.disableFormats=true;}_5.hsplit.compile();if(!_5.body){_5.body=new Ext.Template("<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">","<tbody>{rows}</tbody>","</table>");_5.body.disableFormats=true;}_5.body.compile();if(!_5.row){_5.row=new Ext.Template("<tr class=\"x-grid-row {alt}\">{cells}</tr>");_5.row.disableFormats=true;}_5.row.compile();if(!_5.cell){_5.cell=new Ext.Template("<td class=\"x-grid-col x-grid-td-{id} {cellId} {css}\" tabIndex=\"0\">","<div class=\"x-grid-col-{id} x-grid-cell-inner\"><div class=\"x-grid-cell-text\" unselectable=\"on\" {attr}>{value}</div></div>","</td>");_5.cell.disableFormats=true;}_5.cell.compile();this.templates=_5;},onColWidthChange:function(){this.updateColumns.apply(this,arguments);},onHeaderChange:function(){this.updateHeaders.apply(this,arguments);},onHiddenChange:function(){this.handleHiddenChange.apply(this,arguments);},onColumnMove:function(){this.handleColumnMove.apply(this,arguments);},onColumnLock:function(){this.handleLockChange.apply(this,arguments);},onDataChange:function(){this.refresh();this.updateHeaderSortState();},onClear:function(){this.refresh();},onUpdate:function(ds,_7){this.refreshRow(_7);},refreshRow:function(_8){var ds=this.ds,_a;if(typeof _8=="number"){_a=_8;_8=ds.getAt(_a);}else{_a=ds.indexOf(_8);}var _b=this.getRowComposite(_a);var _c=[];this.insertRows(ds,_a,_a,true);this.onRemove(ds,_8,_a+1,true);this.syncRowHeights(_a,_a);this.layout();this.fireEvent("rowupdated",this,_a,_8);},onAdd:function(ds,_e,_f){this.insertRows(ds,_f,_f+(_e.length-1));},onRemove:function(ds,_11,_12,_13){if(_13!==true){this.fireEvent("beforerowremoved",this,_12,_11);}var bt=this.getBodyTable(),lt=this.getLockedTable();if(bt.rows[_12]){bt.firstChild.removeChild(bt.rows[_12]);}if(lt.rows[_12]){lt.firstChild.removeChild(lt.rows[_12]);}if(_13!==true){this.stripeRows(_12);this.syncRowHeights(_12,_12);this.layout();this.fireEvent("rowremoved",this,_12,_11);}},onLoad:function(){this.scrollToTop();},scrollToTop:function(){if(this.scroller){this.scroller.dom.scrollTop=0;this.syncScroll();}},getHeaderPanel:function(_16){if(_16){this.headerPanel.show();}return this.headerPanel;},getFooterPanel:function(_17){if(_17){this.footerPanel.show();}return this.footerPanel;},initElements:function(){var E=Ext.Element;var el=this.grid.getGridEl().dom.firstChild;var cs=el.childNodes;this.el=new E(el);this.headerPanel=new E(el.firstChild);this.headerPanel.enableDisplayMode("block");this.scroller=new E(cs[1]);this.scrollSizer=new E(this.scroller.dom.firstChild);this.lockedWrap=new E(cs[2]);this.lockedHd=new E(this.lockedWrap.dom.firstChild);this.lockedBody=new E(this.lockedWrap.dom.childNodes[1]);this.mainWrap=new E(cs[3]);this.mainHd=new E(this.mainWrap.dom.firstChild);this.mainBody=new E(this.mainWrap.dom.childNodes[1]);this.footerPanel=new E(cs[4]);this.footerPanel.enableDisplayMode("block");this.focusEl=new E(cs[5]);this.focusEl.swallowEvent("click",true);this.resizeProxy=new E(cs[6]);this.headerSelector=String.format("#{0} td.x-grid-hd, #{1} td.x-grid-hd",this.lockedHd.id,this.mainHd.id);this.splitterSelector=String.format("#{0} div.x-grid-split, #{1} div.x-grid-split",this.lockedHd.id,this.mainHd.id);},getHeaderCell:function(_1b){return Ext.DomQuery.select(this.headerSelector)[_1b];},getHeaderCellMeasure:function(_1c){return this.getHeaderCell(_1c).firstChild;},getHeaderCellText:function(_1d){return this.getHeaderCell(_1d).firstChild.firstChild;},getLockedTable:function(){return this.lockedBody.dom.firstChild;},getBodyTable:function(){return this.mainBody.dom.firstChild;},getLockedRow:function(_1e){return this.getLockedTable().rows[_1e];},getRow:function(_1f){return this.getBodyTable().rows[_1f];},getRowComposite:function(_20){if(!this.rowEl){this.rowEl=new Ext.CompositeElementLite();}var els=[],_22,_23;if(_22=this.getLockedRow(_20)){els.push(_22);}if(_23=this.getRow(_20)){els.push(_23);}this.rowEl.elements=els;return this.rowEl;},getCell:function(_24,_25){var _26=this.cm.getLockedCount();var _27;if(_25<_26){_27=this.lockedBody.dom.firstChild;}else{_27=this.mainBody.dom.firstChild;_25-=_26;}return _27.rows[_24].childNodes[_25];},getCellText:function(_28,_29){return this.getCell(_28,_29).firstChild.firstChild;},getCellBox:function(_2a){var b=this.fly(_2a).getBox();if(Ext.isOpera){b.y=_2a.offsetTop+this.mainBody.getY();}return b;},getCellIndex:function(_2c){var id=String(_2c.className).match(this.cellRE);if(id){return parseInt(id[1],10);}return 0;},findHeaderIndex:function(n){var r=Ext.fly(n).findParent("td."+this.hdClass,6);return r?this.getCellIndex(r):false;},findHeaderCell:function(n){var r=Ext.fly(n).findParent("td."+this.hdClass,6);return r?r:false;},findRowIndex:function(n){if(!n){return false;}var r=Ext.fly(n).findParent("tr."+this.rowClass,6);return r?r.rowIndex:false;},findCellIndex:function(_34){var _35=this.el.dom;while(_34&&_34!=_35){if(this.findRE.test(_34.className)){return this.getCellIndex(_34);}_34=_34.parentNode;}return false;},getColumnId:function(_36){return this.cm.getColumnId(_36);},getSplitters:function(){if(this.splitterSelector){return Ext.DomQuery.select(this.splitterSelector);}else{return null;}},getSplitter:function(_37){return this.getSplitters()[_37];},onRowOver:function(e,t){var row;if((row=this.findRowIndex(t))!==false){this.getRowComposite(row).addClass("x-grid-row-over");}},onRowOut:function(e,t){var row;if((row=this.findRowIndex(t))!==false&&row!==this.findRowIndex(e.getRelatedTarget())){this.getRowComposite(row).removeClass("x-grid-row-over");}},renderHeaders:function(){var cm=this.cm;var ct=this.templates.hcell,ht=this.templates.header,st=this.templates.hsplit;var cb=[],lb=[],sb=[],lsb=[],p={};for(var i=0,len=cm.getColumnCount();i<len;i++){p.cellId="x-grid-hd-0-"+i;p.splitId="x-grid-csplit-0-"+i;p.id=cm.getColumnId(i);p.title=cm.getColumnTooltip(i)||"";p.value=cm.getColumnHeader(i)||"";p.style=(this.grid.enableColumnResize===false||!cm.isResizable(i)||cm.isFixed(i))?"cursor:default":"";if(!cm.isLocked(i)){cb[cb.length]=ct.apply(p);sb[sb.length]=st.apply(p);}else{lb[lb.length]=ct.apply(p);lsb[lsb.length]=st.apply(p);}}return[ht.apply({cells:lb.join(""),splits:lsb.join("")}),ht.apply({cells:cb.join(""),splits:sb.join("")})];},updateHeaders:function(){var _49=this.renderHeaders();this.lockedHd.update(_49[0]);this.mainHd.update(_49[1]);},focusRow:function(row){var x=this.scroller.dom.scrollLeft;this.focusCell(row,0,false);this.scroller.dom.scrollLeft=x;},focusCell:function(row,col,_4e){var el=this.ensureVisible(row,col,_4e);this.focusEl.alignTo(el,"tl-tl");if(Ext.isGecko){this.focusEl.focus();}else{this.focusEl.focus.defer(1,this.focusEl);}},ensureVisible:function(row,col,_52){if(typeof row!="number"){row=row.rowIndex;}if(row<0&&row>=this.ds.getCount()){return;}col=(col!==undefined?col:0);var cm=this.grid.colModel;while(cm.isHidden(col)){col++;}var el=this.getCell(row,col);if(!el){return;}var c=this.scroller.dom;var _56=parseInt(el.offsetTop,10);var _57=parseInt(el.offsetLeft,10);var _58=_56+el.offsetHeight;var _59=_57+el.offsetWidth;var ch=c.clientHeight-this.mainHd.dom.offsetHeight;var _5b=parseInt(c.scrollTop,10);var _5c=parseInt(c.scrollLeft,10);var _5d=_5b+ch;var _5e=_5c+c.clientWidth;if(_56<_5b){c.scrollTop=_56;}else{if(_58>_5d){c.scrollTop=_58-ch;}}if(_52!==false){if(_57<_5c){c.scrollLeft=_57;}else{if(_59>_5e){c.scrollLeft=_59-c.clientWidth;}}}return el;},updateColumns:function(){this.grid.stopEditing();var cm=this.grid.colModel,_60=this.getColumnIds();var pos=0;for(var i=0,len=cm.getColumnCount();i<len;i++){var w=cm.getColumnWidth(i);this.css.updateRule(this.colSelector+_60[i],"width",(w-this.borderWidth)+"px");this.css.updateRule(this.hdSelector+_60[i],"width",(w-this.borderWidth)+"px");}this.updateSplitters();},generateRules:function(cm){var _66=[];for(var i=0,len=cm.getColumnCount();i<len;i++){var cid=cm.getColumnId(i);var _6a="";if(cm.config[i].align){_6a="text-align:"+cm.config[i].align+";";}var _6b="";if(cm.isHidden(i)){_6b="display:none;";}var _6c="width:"+(cm.getColumnWidth(i)-this.borderWidth)+"px;";_66.push(this.colSelector,cid," {\n",cm.config[i].css,_6a,_6c,"\n}\n",this.hdSelector,cid," {\n",_6a,_6c,"}\n",this.tdSelector,cid," {\n",_6b,"\n}\n",this.splitSelector,cid," {\n",_6b,"\n}\n");}return Ext.util.CSS.createStyleSheet(_66.join(""));},updateSplitters:function(){var cm=this.cm,s=this.getSplitters();if(s){var pos=0,_70=true;for(var i=0,len=cm.getColumnCount();i<len;i++){if(cm.isHidden(i)){continue;}var w=cm.getColumnWidth(i);if(!cm.isLocked(i)&&_70){pos=0;_70=false;}pos+=w;s[i].style.left=(pos-this.splitOffset)+"px";}}},handleHiddenChange:function(_74,_75,_76){if(_76){this.hideColumn(_75);}else{this.unhideColumn(_75);}},hideColumn:function(_77){var cid=this.getColumnId(_77);this.css.updateRule(this.tdSelector+cid,"display","none");this.css.updateRule(this.splitSelector+cid,"display","none");if(Ext.isSafari){this.updateHeaders();}this.updateSplitters();this.layout();},unhideColumn:function(_79){var cid=this.getColumnId(_79);this.css.updateRule(this.tdSelector+cid,"display","");this.css.updateRule(this.splitSelector+cid,"display","");if(Ext.isSafari){this.updateHeaders();}this.updateSplitters();this.layout();},insertRows:function(dm,_7c,_7d,_7e){if(_7c==0&&_7d==dm.getCount()-1){this.refresh();}else{if(!_7e){this.fireEvent("beforerowsinserted",this,_7c,_7d);}var s=this.getScrollState();var _80=this.renderRows(_7c,_7d);this.bufferRows(_80[0],this.getLockedTable(),_7c);this.bufferRows(_80[1],this.getBodyTable(),_7c);this.restoreScroll(s);if(!_7e){this.fireEvent("rowsinserted",this,_7c,_7d);this.syncRowHeights(_7c,_7d);this.stripeRows(_7c);this.layout();}}},bufferRows:function(_81,_82,_83){var _84=null,_85=_82.rows,_86=_82.tBodies[0];if(_83<_85.length){_84=_85[_83];}var b=document.createElement("div");b.innerHTML="<table><tbody>"+_81+"</tbody></table>";var _88=b.firstChild.rows;for(var i=0,len=_88.length;i<len;i++){if(_84){_86.insertBefore(_88[0],_84);}else{_86.appendChild(_88[0]);}}b.innerHTML="";b=null;},deleteRows:function(dm,_8c,_8d){if(dm.getRowCount()<1){this.fireEvent("beforerefresh",this);this.mainBody.update("");this.lockedBody.update("");this.fireEvent("refresh",this);}else{this.fireEvent("beforerowsdeleted",this,_8c,_8d);var bt=this.getBodyTable();var _8f=bt.firstChild;var _90=bt.rows;for(var _91=_8c;_91<=_8d;_91++){_8f.removeChild(_90[_8c]);}this.stripeRows(_8c);this.fireEvent("rowsdeleted",this,_8c,_8d);}},updateRows:function(_92,_93,_94){var s=this.getScrollState();this.refresh();this.restoreScroll(s);},handleSort:function(_96,_97,_98,_99){if(!_99){this.refresh();}this.updateHeaderSortState();},getScrollState:function(){var sb=this.scroller.dom;return{left:sb.scrollLeft,top:sb.scrollTop};},stripeRows:function(_9b){if(!this.grid.stripeRows||this.ds.getCount()<1){return;}_9b=_9b||0;var _9c=this.getBodyTable().rows;var _9d=this.getLockedTable().rows;var cls=" x-grid-row-alt ";for(var i=_9b,len=_9c.length;i<len;i++){var row=_9c[i],_a2=_9d[i];var _a3=((i+1)%2==0);var _a4=(" "+row.className+" ").indexOf(cls)!=-1;if(_a3==_a4){continue;}if(_a3){row.className+=" x-grid-row-alt";}else{row.className=row.className.replace("x-grid-row-alt","");}if(_a2){_a2.className=row.className;}}},restoreScroll:function(_a5){var sb=this.scroller.dom;sb.scrollLeft=_a5.left;sb.scrollTop=_a5.top;this.syncScroll();},syncScroll:function(){var sb=this.scroller.dom;var sh=this.mainHd.dom;var bs=this.mainBody.dom;var lv=this.lockedBody.dom;sh.scrollLeft=bs.scrollLeft=sb.scrollLeft;lv.scrollTop=bs.scrollTop=sb.scrollTop;},handleScroll:function(e){this.syncScroll();var sb=this.scroller.dom;this.grid.fireEvent("bodyscroll",sb.scrollLeft,sb.scrollTop);e.stopEvent();},handleWheel:function(e){var d=e.getWheelDelta();this.scroller.dom.scrollTop-=d*22;this.lockedBody.dom.scrollTop=this.mainBody.dom.scrollTop=this.scroller.dom.scrollTop;e.stopEvent();},renderRows:function(_af,_b0){var g=this.grid,cm=g.colModel,ds=g.dataSource,_b4=g.stripeRows;var _b5=cm.getColumnCount();if(ds.getCount()<1){return["",""];}var cs=[];for(var i=0;i<_b5;i++){var _b8=cm.getDataIndex(i);cs[i]={name:typeof _b8=="undefined"?ds.fields.get(i).name:_b8,renderer:cm.getRenderer(i),id:cm.getColumnId(i),locked:cm.isLocked(i)};}_af=_af||0;_b0=typeof _b0=="undefined"?ds.getCount()-1:_b0;var rs=ds.getRange(_af,_b0);return this.doRender(cs,rs,ds,_af,_b5,_b4);},doRender:Ext.isGecko?function(cs,rs,ds,_bd,_be,_bf){var ts=this.templates,ct=ts.cell,rt=ts.row;var buf="",_c4="",cb,lcb,c,p={},rp={},r,_cb;for(var j=0,len=rs.length;j<len;j++){r=rs[j];cb="";lcb="";_cb=(j+_bd);for(var i=0;i<_be;i++){c=cs[i];p.cellId="x-grid-cell-"+_cb+"-"+i;p.id=c.id;p.css=p.attr="";p.value=c.renderer(r.data[c.name],p,r,_cb,i,ds);if(p.value==undefined||p.value===""){p.value=" ";}if(r.dirty&&typeof r.modified[c.name]!=="undefined"){p.css+=p.css?" x-grid-dirty-cell":"x-grid-dirty-cell";}var _cf=ct.apply(p);if(!c.locked){cb+=_cf;}else{lcb+=_cf;}}var alt=[];if(_bf&&((_cb+1)%2==0)){alt[0]="x-grid-row-alt";}if(r.dirty){alt[1]=" x-grid-dirty-row";}rp.cells=lcb;if(this.getRowClass){alt[2]=this.getRowClass(r,_cb);}rp.alt=alt.join(" ");_c4+=rt.apply(rp);rp.cells=cb;buf+=rt.apply(rp);}return[_c4,buf];}:function(cs,rs,ds,_d4,_d5,_d6){var ts=this.templates,ct=ts.cell,rt=ts.row;var buf=[],_db=[],cb,lcb,c,p={},rp={},r,_e2;for(var j=0,len=rs.length;j<len;j++){r=rs[j];cb=[];lcb=[];_e2=(j+_d4);for(var i=0;i<_d5;i++){c=cs[i];p.cellId="x-grid-cell-"+_e2+"-"+i;p.id=c.id;p.css=p.attr="";p.value=c.renderer(r.data[c.name],p,r,_e2,i,ds);if(p.value==undefined||p.value===""){p.value=" ";}if(r.dirty&&typeof r.modified[c.name]!=="undefined"){p.css+=p.css?" x-grid-dirty-cell":"x-grid-dirty-cell";}var _e6=ct.apply(p);if(!c.locked){cb[cb.length]=_e6;}else{lcb[lcb.length]=_e6;}}var alt=[];if(_d6&&((_e2+1)%2==0)){alt[0]="x-grid-row-alt";}if(r.dirty){alt[1]=" x-grid-dirty-row";}rp.cells=lcb;if(this.getRowClass){alt[2]=this.getRowClass(r,_e2);}rp.alt=alt.join(" ");rp.cells=lcb.join("");_db[_db.length]=rt.apply(rp);rp.cells=cb.join("");buf[buf.length]=rt.apply(rp);}return[_db.join(""),buf.join("")];},renderBody:function(){var _e8=this.renderRows();var bt=this.templates.body;return[bt.apply({rows:_e8[0]}),bt.apply({rows:_e8[1]})];},refresh:function(_ea){this.fireEvent("beforerefresh",this);this.grid.stopEditing();var _eb=this.renderBody();this.lockedBody.update(_eb[0]);this.mainBody.update(_eb[1]);if(_ea===true){this.updateHeaders();this.updateColumns();this.updateSplitters();this.updateHeaderSortState();}this.syncRowHeights();this.layout();this.fireEvent("refresh",this);},handleColumnMove:function(cm,_ed,_ee){this.indexMap=null;var s=this.getScrollState();this.refresh(true);this.restoreScroll(s);this.afterMove(_ee);},afterMove:function(_f0){if(this.enableMoveAnim&&Ext.enableFx){this.fly(this.getHeaderCell(_f0).firstChild).highlight(this.hlColor);}},updateCell:function(dm,_f2,_f3){var _f4=this.getColumnIndexByDataIndex(_f3);if(typeof _f4=="undefined"){return;}var cm=this.grid.colModel;var _f6=this.getCell(_f2,_f4);var _f7=this.getCellText(_f2,_f4);var p={cellId:"x-grid-cell-"+_f2+"-"+_f4,id:cm.getColumnId(_f4),css:_f4==cm.getColumnCount()-1?"x-grid-col-last":""};var _f9=cm.getRenderer(_f4);var val=_f9(dm.getValueAt(_f2,_f3),p,_f2,_f4,dm);if(typeof val=="undefined"||val===""){val=" ";}_f7.innerHTML=val;_f6.className=this.cellClass+" "+p.cellId+" "+p.css;this.syncRowHeights(_f2,_f2);},calcColumnWidth:function(_fb,_fc){var _fd=0;if(this.grid.autoSizeHeaders){var h=this.getHeaderCellMeasure(_fb);_fd=Math.max(_fd,h.scrollWidth);}var tb,_100;if(this.cm.isLocked(_fb)){tb=this.getLockedTable();_100=_fb;}else{tb=this.getBodyTable();_100=_fb-this.cm.getLockedCount();}if(tb&&tb.rows){var rows=tb.rows;var _102=Math.min(_fc||rows.length,rows.length);for(var i=0;i<_102;i++){var cell=rows[i].childNodes[_100].firstChild;_fd=Math.max(_fd,cell.scrollWidth);}}return _fd+5;},autoSizeColumn:function(_105,_106,_107){if(this.cm.isHidden(_105)){return;}if(_106){var cid=this.cm.getColumnId(_105);this.css.updateRule(this.colSelector+cid,"width",this.grid.minColumnWidth+"px");if(this.grid.autoSizeHeaders){this.css.updateRule(this.hdSelector+cid,"width",this.grid.minColumnWidth+"px");}}var _109=this.calcColumnWidth(_105);this.cm.setColumnWidth(_105,Math.max(this.grid.minColumnWidth,_109),_107);if(!_107){this.grid.fireEvent("columnresize",_105,_109);}},autoSizeColumns:function(){var cm=this.grid.colModel;var _10b=cm.getColumnCount();for(var i=0;i<_10b;i++){this.autoSizeColumn(i,true,true);}if(cm.getTotalWidth()<this.scroller.dom.clientWidth){this.fitColumns();}else{this.updateColumns();this.layout();}},fitColumns:function(_10d){var cm=this.grid.colModel;var _10f=cm.getColumnCount();var cols=[];var _111=0;var i,w;for(i=0;i<_10f;i++){if(!cm.isHidden(i)&&!cm.isFixed(i)){w=cm.getColumnWidth(i);cols.push(i);cols.push(w);_111+=w;}}var _114=Math.min(this.scroller.dom.clientWidth,this.el.getWidth());if(_10d){_114-=17;}var frac=(_114-cm.getTotalWidth())/_111;while(cols.length){w=cols.pop();i=cols.pop();cm.setColumnWidth(i,Math.floor(w+w*frac),true);}this.updateColumns();this.layout();},onRowSelect:function(_116){var row=this.getRowComposite(_116);row.addClass("x-grid-row-selected");},onRowDeselect:function(_118){var row=this.getRowComposite(_118);row.removeClass("x-grid-row-selected");},onCellSelect:function(row,col){var cell=this.getCell(row,col);if(cell){Ext.fly(cell).addClass("x-grid-cell-selected");}},onCellDeselect:function(row,col){var cell=this.getCell(row,col);if(cell){Ext.fly(cell).removeClass("x-grid-cell-selected");}},updateHeaderSortState:function(){var _120=this.ds.getSortState();if(!_120){return;}this.sortState=_120;var _121=this.cm.findColumnIndex(_120.field);if(_121!=-1){var _122=_120.direction;var sc=this.sortClasses;var hds=this.el.select(this.headerSelector).removeClass(sc);hds.item(_121).addClass(sc[_122=="DESC"?1:0]);}},handleHeaderClick:function(g,_126){if(this.headersDisabled){return;}var dm=g.dataSource,cm=g.colModel;if(!cm.isSortable(_126)){return;}g.stopEditing();dm.sort(cm.getDataIndex(_126));},destroy:function(){if(this.colMenu){this.colMenu.removeAll();Ext.menu.MenuMgr.unregister(this.colMenu);this.colMenu.getEl().remove();delete this.colMenu;}if(this.hmenu){this.hmenu.removeAll();Ext.menu.MenuMgr.unregister(this.hmenu);this.hmenu.getEl().remove();delete this.hmenu;}if(this.grid.enableColumnMove){var dds=Ext.dd.DDM.ids["gridHeader"+this.grid.getGridEl().id];if(dds){for(var dd in dds){if(!dds[dd].config.isTarget&&dds[dd].dragElId){var elid=dds[dd].dragElId;dds[dd].unreg();Ext.get(elid).remove();}else{if(dds[dd].config.isTarget){dds[dd].proxyTop.remove();dds[dd].proxyBottom.remove();dds[dd].unreg();}}if(Ext.dd.DDM.locationCache[dd]){delete Ext.dd.DDM.locationCache[dd];}}delete Ext.dd.DDM.ids["gridHeader"+this.grid.getGridEl().id];}}this.bind(null,null);Ext.EventManager.removeResizeListener(this.onWindowResize,this);},handleLockChange:function(){this.refresh(true);},onDenyColumnLock:function(){},onDenyColumnHide:function(){},handleHdMenuClick:function(item){var _12d=this.hdCtxIndex;var cm=this.cm,ds=this.ds;switch(item.id){case"asc":ds.sort(cm.getDataIndex(_12d),"ASC");break;case"desc":ds.sort(cm.getDataIndex(_12d),"DESC");break;case"lock":var lc=cm.getLockedCount();if(cm.getColumnCount(true)<=lc+1){this.onDenyColumnLock();return;}if(lc!=_12d){cm.setLocked(_12d,true,true);cm.moveColumn(_12d,lc);this.grid.fireEvent("columnmove",_12d,lc);}else{cm.setLocked(_12d,true);}break;case"unlock":var lc=cm.getLockedCount();if((lc-1)!=_12d){cm.setLocked(_12d,false,true);cm.moveColumn(_12d,lc-1);this.grid.fireEvent("columnmove",_12d,lc-1);}else{cm.setLocked(_12d,false);}break;default:_12d=cm.getIndexById(item.id.substr(4));if(_12d!=-1){if(item.checked&&cm.getColumnCount(true)<=1){this.onDenyColumnHide();return false;}cm.setHidden(_12d,item.checked);}}return true;},beforeColMenuShow:function(){var cm=this.cm,_132=cm.getColumnCount();this.colMenu.removeAll();for(var i=0;i<_132;i++){this.colMenu.add(new Ext.menu.CheckItem({id:"col-"+cm.getColumnId(i),text:cm.getColumnHeader(i),checked:!cm.isHidden(i),hideOnClick:false}));}},handleHdCtx:function(g,_135,e){e.stopEvent();var hd=this.getHeaderCell(_135);this.hdCtxIndex=_135;var ms=this.hmenu.items,cm=this.cm;ms.get("asc").setDisabled(!cm.isSortable(_135));ms.get("desc").setDisabled(!cm.isSortable(_135));if(this.grid.enableColLock!==false){ms.get("lock").setDisabled(cm.isLocked(_135));ms.get("unlock").setDisabled(!cm.isLocked(_135));}this.hmenu.show(hd,"tl-bl");},handleHdOver:function(e){var hd=this.findHeaderCell(e.getTarget());if(hd&&!this.headersDisabled){if(this.grid.colModel.isSortable(this.getCellIndex(hd))){this.fly(hd).addClass("x-grid-hd-over");}}},handleHdOut:function(e){var hd=this.findHeaderCell(e.getTarget());if(hd){this.fly(hd).removeClass("x-grid-hd-over");}},handleSplitDblClick:function(e,t){var i=this.getCellIndex(t);if(this.grid.enableColumnResize!==false&&this.cm.isResizable(i)&&!this.cm.isFixed(i)){this.autoSizeColumn(i,true);this.layout();}},render:function(){var cm=this.cm;var _142=cm.getColumnCount();if(this.grid.monitorWindowResize===true){Ext.EventManager.onWindowResize(this.onWindowResize,this,true);}var _143=this.renderHeaders();var body=this.templates.body.apply({rows:""});var html=this.templates.master.apply({lockedBody:body,body:body,lockedHeader:_143[0],header:_143[1]});this.grid.getGridEl().dom.innerHTML=html;this.initElements();this.scroller.on("scroll",this.handleScroll,this);this.lockedBody.on("mousewheel",this.handleWheel,this);this.mainBody.on("mousewheel",this.handleWheel,this);this.mainHd.on("mouseover",this.handleHdOver,this);this.mainHd.on("mouseout",this.handleHdOut,this);this.mainHd.on("dblclick",this.handleSplitDblClick,this,{delegate:"."+this.splitClass});this.lockedHd.on("mouseover",this.handleHdOver,this);this.lockedHd.on("mouseout",this.handleHdOut,this);this.lockedHd.on("dblclick",this.handleSplitDblClick,this,{delegate:"."+this.splitClass});if(this.grid.enableColumnResize!==false&&Ext.grid.SplitDragZone){new Ext.grid.SplitDragZone(this.grid,this.lockedHd.dom,this.mainHd.dom);}this.updateSplitters();if(this.grid.enableColumnMove&&Ext.grid.HeaderDragZone){new Ext.grid.HeaderDragZone(this.grid,this.lockedHd.dom,this.mainHd.dom);new Ext.grid.HeaderDropZone(this.grid,this.lockedHd.dom,this.mainHd.dom);}if(this.grid.enableCtxMenu!==false&&Ext.menu.Menu){this.hmenu=new Ext.menu.Menu({id:this.grid.id+"-hctx"});this.hmenu.add({id:"asc",text:this.sortAscText,cls:"xg-hmenu-sort-asc"},{id:"desc",text:this.sortDescText,cls:"xg-hmenu-sort-desc"});if(this.grid.enableColLock!==false){this.hmenu.add("-",{id:"lock",text:this.lockText,cls:"xg-hmenu-lock"},{id:"unlock",text:this.unlockText,cls:"xg-hmenu-unlock"});}if(this.grid.enableColumnHide!==false){this.colMenu=new Ext.menu.Menu({id:this.grid.id+"-hcols-menu"});this.colMenu.on("beforeshow",this.beforeColMenuShow,this);this.colMenu.on("itemclick",this.handleHdMenuClick,this);this.hmenu.add("-",{id:"columns",text:this.columnsText,menu:this.colMenu});}this.hmenu.on("itemclick",this.handleHdMenuClick,this);this.grid.on("headercontextmenu",this.handleHdCtx,this);}if((this.grid.enableDragDrop||this.grid.enableDrag)&&Ext.grid.GridDragZone){this.dd=new Ext.grid.GridDragZone(this.grid,{ddGroup:this.grid.ddGroup||"GridDD"});}this.updateHeaderSortState();this.beforeInitialResize();this.layout(true);this.renderPhase2.defer(1,this);},renderPhase2:function(){this.refresh();if(this.grid.autoSizeColumns){this.autoSizeColumns();}},beforeInitialResize:function(){},onColumnSplitterMoved:function(i,w){this.userResized=true;var cm=this.grid.colModel;cm.setColumnWidth(i,w,true);var cid=cm.getColumnId(i);this.css.updateRule(this.colSelector+cid,"width",(w-this.borderWidth)+"px");this.css.updateRule(this.hdSelector+cid,"width",(w-this.borderWidth)+"px");this.updateSplitters();this.layout();this.grid.fireEvent("columnresize",i,w);},syncRowHeights:function(_14a,_14b){if(this.grid.enableRowHeightSync===true&&this.cm.getLockedCount()>0){_14a=_14a||0;var _14c=this.getBodyTable().rows;var _14d=this.getLockedTable().rows;var len=_14c.length-1;_14b=Math.min(_14b||len,len);for(var i=_14a;i<=_14b;i++){var m=_14c[i],l=_14d[i];var h=Math.max(m.offsetHeight,l.offsetHeight);m.style.height=l.style.height=h+"px";}}},layout:function(_153,_154){var g=this.grid;var auto=g.autoHeight;var _157=16;var c=g.getGridEl(),cm=this.cm,_15a=g.autoExpandColumn,gv=this;if(!c.dom.offsetWidth){if(_153){this.lockedWrap.show();this.mainWrap.show();}return;}var _15c=this.cm.isLocked(0);var tbh=this.headerPanel.getHeight();var bbh=this.footerPanel.getHeight();if(auto){var ch=this.getBodyTable().offsetHeight+tbh+bbh+this.mainHd.getHeight();var _160=ch+c.getBorderWidth("tb");if(g.maxHeight){_160=Math.min(g.maxHeight,_160);}c.setHeight(_160);}if(g.autoWidth){c.setWidth(cm.getTotalWidth()+c.getBorderWidth("lr"));}var s=this.scroller;var _162=c.getSize(true);this.el.setSize(_162.width,_162.height);this.headerPanel.setWidth(_162.width);this.footerPanel.setWidth(_162.width);var _163=this.mainHd.getHeight();var vw=_162.width;var vh=_162.height-(tbh+bbh);s.setSize(vw,vh);var bt=this.getBodyTable();var _167=_15c?Math.max(this.getLockedTable().offsetWidth,this.lockedHd.dom.firstChild.offsetWidth):0;var _168=bt.offsetHeight;var _169=_167+bt.offsetWidth;var _16a=false,_16b=false;this.scrollSizer.setSize(_169,_168+_163);var lw=this.lockedWrap,mw=this.mainWrap;var lb=this.lockedBody,mb=this.mainBody;setTimeout(function(){var t=s.dom.offsetTop;var w=s.dom.clientWidth,h=s.dom.clientHeight;lw.setTop(t);lw.setSize(_167,h);mw.setLeftTop(_167,t);mw.setSize(w-_167,h);lb.setHeight(h-_163);mb.setHeight(h-_163);if(_154!==true&&!gv.userResized&&_15a){var ci=cm.getIndexById(_15a);var tw=cm.getTotalWidth(false);var _175=cm.getColumnWidth(ci);var cw=Math.min(Math.max(((w-tw)+_175-2)-(w<=s.dom.offsetWidth?0:18),g.autoExpandMin),g.autoExpandMax);if(_175!=cw){cm.setColumnWidth(ci,cw,true);gv.css.updateRule(gv.colSelector+_15a,"width",(cw-gv.borderWidth)+"px");gv.css.updateRule(gv.hdSelector+_15a,"width",(cw-gv.borderWidth)+"px");gv.updateSplitters();gv.layout(false,true);}}if(_153){lw.show();mw.show();}},10);},onWindowResize:function(){if(!this.grid.monitorWindowResize||this.grid.autoHeight){return;}this.layout();},appendFooter:function(_177){return null;},sortAscText:"Sort Ascending",sortDescText:"Sort Descending",lockText:"Lock Column",unlockText:"Unlock Column",columnsText:"Columns"});
Ext.grid.ColumnModel=function(_1){Ext.grid.ColumnModel.superclass.constructor.call(this);this.config=_1;this.lookup={};for(var i=0,_3=_1.length;i<_3;i++){if(typeof _1[i].dataIndex=="undefined"){_1[i].dataIndex=i;}if(typeof _1[i].renderer=="string"){_1[i].renderer=Ext.util.Format[_1[i].renderer];}if(typeof _1[i].id=="undefined"){_1[i].id=i;}this.lookup[_1[i].id]=_1[i];}this.defaultWidth=100;this.defaultSortable=false;this.addEvents({"widthchange":true,"headerchange":true,"hiddenchange":true,"columnmoved":true,"columnlockchange":true});Ext.grid.ColumnModel.superclass.constructor.call(this);};Ext.extend(Ext.grid.ColumnModel,Ext.util.Observable,{getColumnId:function(_4){return this.config[_4].id;},getColumnById:function(id){return this.lookup[id];},getIndexById:function(id){for(var i=0,_8=this.config.length;i<_8;i++){if(this.config[i].id==id){return i;}}return-1;},moveColumn:function(_9,_a){var c=this.config[_9];this.config.splice(_9,1);this.config.splice(_a,0,c);this.dataMap=null;this.fireEvent("columnmoved",this,_9,_a);},isLocked:function(_c){return this.config[_c].locked===true;},setLocked:function(_d,_e,_f){if(this.isLocked(_d)==_e){return;}this.config[_d].locked=_e;if(!_f){this.fireEvent("columnlockchange",this,_d,_e);}},getTotalLockedWidth:function(){var _10=0;for(var i=0;i<this.config.length;i++){if(this.isLocked(i)&&!this.isHidden(i)){this.totalWidth+=this.getColumnWidth(i);}}return _10;},getLockedCount:function(){for(var i=0,len=this.config.length;i<len;i++){if(!this.isLocked(i)){return i;}}},getColumnCount:function(_14){if(_14===true){var c=0;for(var i=0,len=this.config.length;i<len;i++){if(!this.isHidden(i)){c++;}}return c;}return this.config.length;},getColumnsBy:function(fn,_19){var r=[];for(var i=0,len=this.config.length;i<len;i++){var c=this.config[i];if(fn.call(_19||this,c,i)===true){r[r.length]=c;}}return r;},isSortable:function(col){if(typeof this.config[col].sortable=="undefined"){return this.defaultSortable;}return this.config[col].sortable;},getRenderer:function(col){if(!this.config[col].renderer){return Ext.grid.ColumnModel.defaultRenderer;}return this.config[col].renderer;},setRenderer:function(col,fn){this.config[col].renderer=fn;},getColumnWidth:function(col){return this.config[col].width||this.defaultWidth;},setColumnWidth:function(col,_24,_25){this.config[col].width=_24;this.totalWidth=null;if(!_25){this.fireEvent("widthchange",this,col,_24);}},getTotalWidth:function(_26){if(!this.totalWidth){this.totalWidth=0;for(var i=0,len=this.config.length;i<len;i++){if(_26||!this.isHidden(i)){this.totalWidth+=this.getColumnWidth(i);}}}return this.totalWidth;},getColumnHeader:function(col){return this.config[col].header;},setColumnHeader:function(col,_2b){this.config[col].header=_2b;this.fireEvent("headerchange",this,col,_2b);},getColumnTooltip:function(col){return this.config[col].tooltip;},setColumnTooltip:function(col,_2e){this.config[col].tooltip=_2e;},getDataIndex:function(col){return this.config[col].dataIndex;},setDataIndex:function(col,_31){this.config[col].dataIndex=_31;},findColumnIndex:function(_32){var c=this.config;for(var i=0,len=c.length;i<len;i++){if(c[i].dataIndex==_32){return i;}}return-1;},isCellEditable:function(_36,_37){return(this.config[_36].editable||(typeof this.config[_36].editable=="undefined"&&this.config[_36].editor))?true:false;},getCellEditor:function(_38,_39){return this.config[_38].editor;},setEditable:function(col,_3b){this.config[col].editable=_3b;},isHidden:function(_3c){return this.config[_3c].hidden;},isFixed:function(_3d){return this.config[_3d].fixed;},isResizable:function(_3e){return _3e>=0&&this.config[_3e].resizable!==false&&this.config[_3e].fixed!==true;},setHidden:function(_3f,_40){this.config[_3f].hidden=_40;this.totalWidth=null;this.fireEvent("hiddenchange",this,_3f,_40);},setEditor:function(col,_42){this.config[col].editor=_42;}});Ext.grid.ColumnModel.defaultRenderer=function(_43){if(typeof _43=="string"&&_43.length<1){return" ";}return _43;};Ext.grid.DefaultColumnModel=Ext.grid.ColumnModel;
Ext.grid.AbstractSelectionModel=function(){this.locked=false;Ext.grid.AbstractSelectionModel.superclass.constructor.call(this);};Ext.extend(Ext.grid.AbstractSelectionModel,Ext.util.Observable,{init:function(_1){this.grid=_1;this.initEvents();},lock:function(){this.locked=true;},unlock:function(){this.locked=false;},isLocked:function(){return this.locked;}});
Ext.grid.RowSelectionModel=function(_1){Ext.apply(this,_1);this.selections=new Ext.util.MixedCollection(false,function(o){return o.id;});this.last=false;this.lastActive=false;this.addEvents({"selectionchange":true,"beforerowselect":true,"rowselect":true,"rowdeselect":true});this.locked=false;};Ext.extend(Ext.grid.RowSelectionModel,Ext.grid.AbstractSelectionModel,{singleSelect:false,initEvents:function(){if(!this.grid.enableDragDrop&&!this.grid.enableDrag){this.grid.on("mousedown",this.handleMouseDown,this);}this.rowNav=new Ext.KeyNav(this.grid.getGridEl(),{"up":function(e){if(!e.shiftKey){this.selectPrevious(e.shiftKey);}else{if(this.last!==false&&this.lastActive!==false){var _4=this.last;this.selectRange(this.last,this.lastActive-1);this.grid.getView().focusRow(this.lastActive);if(_4!==false){this.last=_4;}}else{this.selectFirstRow();}}},"down":function(e){if(!e.shiftKey){this.selectNext(e.shiftKey);}else{if(this.last!==false&&this.lastActive!==false){var _6=this.last;this.selectRange(this.last,this.lastActive+1);this.grid.getView().focusRow(this.lastActive);if(_6!==false){this.last=_6;}}else{this.selectFirstRow();}}},scope:this});var _7=this.grid.view;_7.on("refresh",this.onRefresh,this);_7.on("rowupdated",this.onRowUpdated,this);_7.on("rowremoved",this.onRemove,this);},onRefresh:function(){var ds=this.grid.dataSource,i,v=this.grid.view;var s=this.selections;s.each(function(r){if((i=ds.indexOfId(r.id))!=-1){v.onRowSelect(i);}else{s.remove(r);}});},onRemove:function(v,_e,r){this.selections.remove(r);},onRowUpdated:function(v,_11,r){if(this.isSelected(r)){v.onRowSelect(_11);}},selectRecords:function(_13,_14){if(!_14){this.clearSelections();}var ds=this.grid.dataSource;for(var i=0,len=_13.length;i<len;i++){this.selectRow(ds.indexOf(_13[i]),true);}},getCount:function(){return this.selections.length;},selectFirstRow:function(){this.selectRow(0);},selectLastRow:function(_18){this.selectRow(this.grid.dataSource.getCount()-1,_18);},selectNext:function(_19){if(this.last!==false&&(this.last+1)<this.grid.dataSource.getCount()){this.selectRow(this.last+1,_19);this.grid.getView().focusRow(this.last);}},selectPrevious:function(_1a){if(this.last){this.selectRow(this.last-1,_1a);this.grid.getView().focusRow(this.last);}},getSelections:function(){return[].concat(this.selections.items);},getSelected:function(){return this.selections.itemAt(0);},clearSelections:function(_1b){if(this.locked){return;}if(_1b!==true){var ds=this.grid.dataSource;var s=this.selections;s.each(function(r){this.deselectRow(ds.indexOfId(r.id));},this);s.clear();}else{this.selections.clear();}this.last=false;},selectAll:function(){if(this.locked){return;}this.selections.clear();for(var i=0,len=this.grid.dataSource.getCount();i<len;i++){this.selectRow(i,true);}},hasSelection:function(){return this.selections.length>0;},isSelected:function(_21){var r=typeof _21=="number"?this.grid.dataSource.getAt(_21):_21;return(r&&this.selections.key(r.id)?true:false);},isIdSelected:function(id){return(this.selections.key(id)?true:false);},handleMouseDown:function(e,t){var _26=this.grid.getView(),_27;if(this.isLocked()||(_27=_26.findRowIndex(t))===false){return;}if(e.shiftKey&&this.last!==false){var _28=this.last;this.selectRange(_28,_27,e.ctrlKey);this.last=_28;_26.focusRow(_27);}else{var _29=this.isSelected(_27);if(e.button!=0&&_29){_26.focusRow(_27);}else{if(e.ctrlKey&&_29){this.deselectRow(_27);}else{this.selectRow(_27,e.button==0&&(e.ctrlKey||e.shiftKey));_26.focusRow(_27);}}}},selectRows:function(_2a,_2b){if(!_2b){this.clearSelections();}for(var i=0,len=_2a.length;i<len;i++){this.selectRow(_2a[i],true);}},selectRange:function(_2e,_2f,_30){if(this.locked){return;}if(!_30){this.clearSelections();}if(_2e<=_2f){for(var i=_2e;i<=_2f;i++){this.selectRow(i,true);}}else{for(var i=_2e;i>=_2f;i--){this.selectRow(i,true);}}},deselectRange:function(_32,_33,_34){if(this.locked){return;}for(var i=_32;i<=_33;i++){this.deselectRow(i,_34);}},selectRow:function(_36,_37,_38){if(this.locked||(_36<0||_36>=this.grid.dataSource.getCount())){return;}if(this.fireEvent("beforerowselect",this,_36,_37)!==false){if(!_37||this.singleSelect){this.clearSelections();}var r=this.grid.dataSource.getAt(_36);this.selections.add(r);this.last=this.lastActive=_36;if(!_38){this.grid.getView().onRowSelect(_36);}this.fireEvent("rowselect",this,_36,r);this.fireEvent("selectionchange",this);}},deselectRow:function(_3a,_3b){if(this.locked){return;}if(this.last==_3a){this.last=false;}if(this.lastActive==_3a){this.lastActive=false;}var r=this.grid.dataSource.getAt(_3a);this.selections.remove(r);if(!_3b){this.grid.getView().onRowDeselect(_3a);}this.fireEvent("rowdeselect",this,_3a);this.fireEvent("selectionchange",this);},restoreLast:function(){if(this._last){this.last=this._last;}},acceptsNav:function(row,col,cm){return!cm.isHidden(col)&&cm.isCellEditable(col,row);},onEditorKey:function(_40,e){var k=e.getKey(),_43,g=this.grid,ed=g.activeEditor;if(k==e.TAB){e.stopEvent();ed.completeEdit();if(e.shiftKey){_43=g.walkCells(ed.row,ed.col-1,-1,this.acceptsNav,this);}else{_43=g.walkCells(ed.row,ed.col+1,1,this.acceptsNav,this);}}else{if(k==e.ENTER&&!e.ctrlKey){e.stopEvent();ed.completeEdit();if(e.shiftKey){_43=g.walkCells(ed.row-1,ed.col,-1,this.acceptsNav,this);}else{_43=g.walkCells(ed.row+1,ed.col,1,this.acceptsNav,this);}}else{if(k==e.ESC){ed.cancelEdit();}}}if(_43){g.startEditing(_43[0],_43[1]);}}});
Ext.grid.CellSelectionModel=function(_1){Ext.apply(this,_1);this.selection=null;this.addEvents({"beforecellselect":true,"cellselect":true,"selectionchange":true});};Ext.extend(Ext.grid.CellSelectionModel,Ext.grid.AbstractSelectionModel,{initEvents:function(){this.grid.on("mousedown",this.handleMouseDown,this);this.grid.getGridEl().on(Ext.isIE?"keydown":"keypress",this.handleKeyDown,this);var _2=this.grid.view;_2.on("refresh",this.onViewChange,this);_2.on("rowupdated",this.onRowUpdated,this);_2.on("beforerowremoved",this.clearSelections,this);_2.on("beforerowsinserted",this.clearSelections,this);if(this.grid.isEditor){this.grid.on("beforeedit",this.beforeEdit,this);}},beforeEdit:function(e){this.select(e.row,e.column,false,true,e.record);},onRowUpdated:function(v,_5,r){if(this.selection&&this.selection.record==r){v.onCellSelect(_5,this.selection.cell[1]);}},onViewChange:function(){this.clearSelections(true);},getSelectedCell:function(){return this.selection?this.selection.cell:null;},clearSelections:function(_7){var s=this.selection;if(s){if(_7!==true){this.grid.view.onCellDeselect(s.cell[0],s.cell[1]);}this.selection=null;this.fireEvent("selectionchange",this,null);}},hasSelection:function(){return this.selection?true:false;},handleMouseDown:function(e,t){var v=this.grid.getView();if(this.isLocked()){return;}var _c=v.findRowIndex(t);var _d=v.findCellIndex(t);if(_c!==false&&_d!==false){this.select(_c,_d);}},select:function(_e,_f,_10,_11,r){if(this.fireEvent("beforecellselect",this,_e,_f)!==false){this.clearSelections();r=r||this.grid.dataSource.getAt(_e);this.selection={record:r,cell:[_e,_f]};if(!_10){var v=this.grid.getView();v.onCellSelect(_e,_f);if(_11!==true){v.focusCell(_e,_f);}}this.fireEvent("cellselect",this,_e,_f);this.fireEvent("selectionchange",this,this.selection);}},isSelectable:function(_14,_15,cm){return!cm.isHidden(_15);},handleKeyDown:function(e){if(!e.isNavKeyPress()){return;}var g=this.grid,s=this.selection;if(!s){e.stopEvent();var _1a=g.walkCells(0,0,1,this.isSelectable,this);if(_1a){this.select(_1a[0],_1a[1]);}return;}var sm=this;var _1c=function(row,col,_1f){return g.walkCells(row,col,_1f,sm.isSelectable,sm);};var k=e.getKey(),r=s.cell[0],c=s.cell[1];var _23;switch(k){case e.TAB:if(e.shiftKey){_23=_1c(r,c-1,-1);}else{_23=_1c(r,c+1,1);}break;case e.DOWN:_23=_1c(r+1,c,1);break;case e.UP:_23=_1c(r-1,c,-1);break;case e.RIGHT:_23=_1c(r,c+1,1);break;case e.LEFT:_23=_1c(r,c-1,-1);break;case e.ENTER:if(g.isEditor&&!g.editing){g.startEditing(r,c);e.stopEvent();return;}break;}if(_23){this.select(_23[0],_23[1]);e.stopEvent();}},acceptsNav:function(row,col,cm){return!cm.isHidden(col)&&cm.isCellEditable(col,row);},onEditorKey:function(_27,e){var k=e.getKey(),_2a,g=this.grid,ed=g.activeEditor;if(k==e.TAB){if(e.shiftKey){_2a=g.walkCells(ed.row,ed.col-1,-1,this.acceptsNav,this);}else{_2a=g.walkCells(ed.row,ed.col+1,1,this.acceptsNav,this);}e.stopEvent();}else{if(k==e.ENTER&&!e.ctrlKey){ed.completeEdit();e.stopEvent();}else{if(k==e.ESC){ed.cancelEdit();}}}if(_2a){g.startEditing(_2a[0],_2a[1]);}}});
Ext.grid.HeaderDragZone=function(_1,hd,_3){this.grid=_1;this.view=_1.getView();this.ddGroup="gridHeader"+this.grid.getGridEl().id;Ext.grid.HeaderDragZone.superclass.constructor.call(this,hd);if(_3){this.setHandleElId(Ext.id(hd));this.setOuterHandleElId(Ext.id(_3));}this.scroll=false;};Ext.extend(Ext.grid.HeaderDragZone,Ext.dd.DragZone,{maxDragWidth:120,getDragData:function(e){var t=Ext.lib.Event.getTarget(e);var h=this.view.findHeaderCell(t);if(h){return{ddel:h.firstChild,header:h};}return false;},onInitDrag:function(e){this.view.headersDisabled=true;var _8=this.dragData.ddel.cloneNode(true);_8.id=Ext.id();_8.style.width=Math.min(this.dragData.header.offsetWidth,this.maxDragWidth)+"px";this.proxy.update(_8);return true;},afterValidDrop:function(){var v=this.view;setTimeout(function(){v.headersDisabled=false;},50);},afterInvalidDrop:function(){var v=this.view;setTimeout(function(){v.headersDisabled=false;},50);}});Ext.grid.HeaderDropZone=function(_b,hd,_d){this.grid=_b;this.view=_b.getView();this.proxyTop=Ext.DomHelper.append(document.body,{tag:"div",cls:"col-move-top",html:" "},true);this.proxyBottom=Ext.DomHelper.append(document.body,{tag:"div",cls:"col-move-bottom",html:" "},true);this.proxyTop.hide=this.proxyBottom.hide=function(){this.setLeftTop(-100,-100);this.setStyle("visibility","hidden");};this.ddGroup="gridHeader"+this.grid.getGridEl().id;Ext.grid.HeaderDropZone.superclass.constructor.call(this,_b.getGridEl().dom);};Ext.extend(Ext.grid.HeaderDropZone,Ext.dd.DropZone,{proxyOffsets:[-4,-9],fly:Ext.Element.fly,getTargetFromEvent:function(e){var t=Ext.lib.Event.getTarget(e);var _10=this.view.findCellIndex(t);if(_10!==false){return this.view.getHeaderCell(_10);}},nextVisible:function(h){var v=this.view,cm=this.grid.colModel;h=h.nextSibling;while(h){if(!cm.isHidden(v.getCellIndex(h))){return h;}h=h.nextSibling;}return null;},prevVisible:function(h){var v=this.view,cm=this.grid.colModel;h=h.prevSibling;while(h){if(!cm.isHidden(v.getCellIndex(h))){return h;}h=h.prevSibling;}return null;},positionIndicator:function(h,n,e){var x=Ext.lib.Event.getPageX(e);var r=Ext.lib.Dom.getRegion(n.firstChild);var px,pt,py=r.top+this.proxyOffsets[1];if((r.right-x)<=(r.right-r.left)/2){px=r.right+this.view.borderWidth;pt="after";}else{px=r.left;pt="before";}var _1f=this.view.getCellIndex(h);var _20=this.view.getCellIndex(n);if(this.grid.colModel.isFixed(_20)){return false;}var _21=this.grid.colModel.isLocked(_20);if(pt=="after"){_20++;}if(_1f<_20){_20--;}if(_1f==_20&&(_21==this.grid.colModel.isLocked(_1f))){return false;}px+=this.proxyOffsets[0];this.proxyTop.setLeftTop(px,py);this.proxyTop.show();if(!this.bottomOffset){this.bottomOffset=this.view.mainHd.getHeight();}this.proxyBottom.setLeftTop(px,py+this.proxyTop.dom.offsetHeight+this.bottomOffset);this.proxyBottom.show();return pt;},onNodeEnter:function(n,dd,e,_25){if(_25.header!=n){this.positionIndicator(_25.header,n,e);}},onNodeOver:function(n,dd,e,_29){var _2a=false;if(_29.header!=n){_2a=this.positionIndicator(_29.header,n,e);}if(!_2a){this.proxyTop.hide();this.proxyBottom.hide();}return _2a?this.dropAllowed:this.dropNotAllowed;},onNodeOut:function(n,dd,e,_2e){this.proxyTop.hide();this.proxyBottom.hide();},onNodeDrop:function(n,dd,e,_32){var h=_32.header;if(h!=n){var cm=this.grid.colModel;var x=Ext.lib.Event.getPageX(e);var r=Ext.lib.Dom.getRegion(n.firstChild);var pt=(r.right-x)<=((r.right-r.left)/2)?"after":"before";var _38=this.view.getCellIndex(h);var _39=this.view.getCellIndex(n);var _3a=cm.isLocked(_39);if(pt=="after"){_39++;}if(_38<_39){_39--;}if(_38==_39&&(_3a==cm.isLocked(_38))){return false;}cm.setLocked(_38,_3a,true);cm.moveColumn(_38,_39);this.grid.fireEvent("columnmove",_38,_39);return true;}return false;}});Ext.grid.GridView.ColumnDragZone=function(_3b,hd){Ext.grid.GridView.ColumnDragZone.superclass.constructor.call(this,_3b,hd,null);this.proxy.el.addClass("x-grid3-col-dd");};Ext.extend(Ext.grid.GridView.ColumnDragZone,Ext.grid.HeaderDragZone,{handleMouseDown:function(e){},callHandleMouseDown:function(e){Ext.grid.GridView.ColumnDragZone.superclass.handleMouseDown.call(this,e);}});
Ext.grid.SplitDragZone=function(_1,hd,_3){this.grid=_1;this.view=_1.getView();this.proxy=this.view.resizeProxy;Ext.grid.SplitDragZone.superclass.constructor.call(this,hd,"gridSplitters"+this.grid.getGridEl().id,{dragElId:Ext.id(this.proxy.dom),resizeFrame:false});this.setHandleElId(Ext.id(hd));this.setOuterHandleElId(Ext.id(_3));this.scroll=false;};Ext.extend(Ext.grid.SplitDragZone,Ext.dd.DDProxy,{fly:Ext.Element.fly,b4StartDrag:function(x,y){this.view.headersDisabled=true;this.proxy.setHeight(this.view.mainWrap.getHeight());var w=this.cm.getColumnWidth(this.cellIndex);var _7=Math.max(w-this.grid.minColumnWidth,0);this.resetConstraints();this.setXConstraint(_7,1000);this.setYConstraint(0,0);this.minX=x-_7;this.maxX=x+1000;this.startPos=x;Ext.dd.DDProxy.prototype.b4StartDrag.call(this,x,y);},handleMouseDown:function(e){ev=Ext.EventObject.setEvent(e);var t=this.fly(ev.getTarget());if(t.hasClass("x-grid-split")){this.cellIndex=this.view.getCellIndex(t.dom);this.split=t.dom;this.cm=this.grid.colModel;if(this.cm.isResizable(this.cellIndex)&&!this.cm.isFixed(this.cellIndex)){Ext.grid.SplitDragZone.superclass.handleMouseDown.apply(this,arguments);}}},endDrag:function(e){this.view.headersDisabled=false;var _b=Math.max(this.minX,Ext.lib.Event.getPageX(e));var _c=_b-this.startPos;this.view.onColumnSplitterMoved(this.cellIndex,this.cm.getColumnWidth(this.cellIndex)+_c);},autoOffset:function(){this.setDelta(0,0);}});
Ext.grid.GridDragZone=function(_1,_2){this.view=_1.getView();Ext.grid.GridDragZone.superclass.constructor.call(this,this.view.mainBody.dom,_2);if(this.view.lockedBody){this.setHandleElId(Ext.id(this.view.mainBody.dom));this.setOuterHandleElId(Ext.id(this.view.lockedBody.dom));}this.scroll=false;this.grid=_1;this.ddel=document.createElement("div");this.ddel.className="x-grid-dd-wrap";};Ext.extend(Ext.grid.GridDragZone,Ext.dd.DragZone,{ddGroup:"GridDD",getDragData:function(e){var t=Ext.lib.Event.getTarget(e);var _5=this.view.findRowIndex(t);if(_5!==false){var sm=this.grid.selModel;if(!sm.isSelected(_5)||e.hasModifier()){sm.handleMouseDown(e,t);}return{grid:this.grid,ddel:this.ddel,rowIndex:_5,selections:sm.getSelections()};}return false;},onInitDrag:function(e){var _8=this.dragData;this.ddel.innerHTML=this.grid.getDragDropText();this.proxy.update(this.ddel);},afterRepair:function(){this.dragging=false;},getRepairXY:function(e,_a){return false;},onEndDrag:function(_b,e){},onValidDrop:function(dd,e,id){this.hideProxy();},beforeInvalidDrop:function(e,id){}});