Ext.define("Ext.view.Table",{extend:"Ext.view.View",alias:"widget.tableview",requires:["Ext.grid.CellContext","Ext.view.TableLayout","Ext.view.NodeCache","Ext.util.DelayedTask","Ext.util.MixedCollection"],componentLayout:"tableview",baseCls:Ext.baseCSSPrefix+"grid-view",firstCls:Ext.baseCSSPrefix+"grid-cell-first",lastCls:Ext.baseCSSPrefix+"grid-cell-last",headerRowSelector:"tr."+Ext.baseCSSPrefix+"grid-header-row",selectedItemCls:Ext.baseCSSPrefix+"grid-row-selected",beforeSelectedItemCls:Ext.baseCSSPrefix+"grid-row-before-selected",selectedCellCls:Ext.baseCSSPrefix+"grid-cell-selected",focusedItemCls:Ext.baseCSSPrefix+"grid-row-focused",beforeFocusedItemCls:Ext.baseCSSPrefix+"grid-row-before-focused",tableFocusedFirstCls:Ext.baseCSSPrefix+"grid-table-focused-first",tableSelectedFirstCls:Ext.baseCSSPrefix+"grid-table-selected-first",tableOverFirstCls:Ext.baseCSSPrefix+"grid-table-over-first",overItemCls:Ext.baseCSSPrefix+"grid-row-over",beforeOverItemCls:Ext.baseCSSPrefix+"grid-row-before-over",altRowCls:Ext.baseCSSPrefix+"grid-row-alt",dirtyCls:Ext.baseCSSPrefix+"grid-dirty-cell",rowClsRe:new RegExp("(?:^|\\s*)"+Ext.baseCSSPrefix+"grid-row-(first|last|alt)(?:\\s+|$)","g"),cellRe:new RegExp(Ext.baseCSSPrefix+"grid-cell-([^\\s]+) ",""),positionBody:true,trackOver:true,getRowClass:null,stripeRows:true,markDirty:true,tpl:"{%values.view.tableTpl.applyOut(values, out)%}",tableTpl:["{%",'var view=values.view,tableCls=["'+Ext.baseCSSPrefix+'" + view.id + "-table '+Ext.baseCSSPrefix+'grid-table"];',"if (view.columnLines) tableCls[tableCls.length]=view.ownerCt.colLinesCls;","if (view.rowLines) tableCls[tableCls.length]=view.ownerCt.rowLinesCls;","%}",'',"{[view.renderColumnSizer(out)]}","{[view.renderTHead(values, out)]}","{[view.renderTFoot(values, out)]}",'',"{%","view.renderRows(values.rows, values.viewStartIndex, out);","%}","","",{priority:0}],rowTpl:["{%",'var dataRowCls = values.recordIndex === -1 ? "" : " '+Ext.baseCSSPrefix+'grid-data-row";',"%}",'','{%',"parent.view.renderCell(values, parent.record, parent.recordIndex, xindex - 1, out, parent)","%}","","",{priority:0}],cellTpl:['','
{style}">{value}
',"",{priority:0}],refreshSelmodelOnRefresh:false,tableValues:{},rowValues:{itemClasses:[],rowClasses:[]},cellValues:{classes:[Ext.baseCSSPrefix+"grid-cell "+Ext.baseCSSPrefix+"grid-td"]},renderBuffer:document.createElement("div"),constructor:function(a){if(a.grid.isTree){a.baseCls=Ext.baseCSSPrefix+"tree-view"}this.callParent([a])},initComponent:function(){var b=this,a=b.scroll;this.addEvents("beforecellclick","cellclick","beforecelldblclick","celldblclick","beforecellcontextmenu","cellcontextmenu","beforecellmousedown","cellmousedown","beforecellmouseup","cellmouseup","beforecellkeydown","cellkeydown");b.body=new Ext.dom.Element.Fly();b.body.id=b.id+"gridBody";b.autoScroll=undefined;if(!b.trackOver){b.overItemCls=null;b.beforeOverItemCls=null}if(a===true||a==="both"){b.autoScroll=true}else{if(a==="horizontal"){b.overflowX="auto"}else{if(a==="vertical"){b.overflowY="auto"}}}b.selModel.view=b;b.headerCt.view=b;b.grid.view=b;b.initFeatures(b.grid);delete b.grid;b.tpl=b.getTpl("tpl");b.itemSelector=b.getItemSelector();b.all=new Ext.view.NodeCache(b);b.callParent()},moveColumn:function(a,n,d){var m=this,k=(d>1)?document.createDocumentFragment():undefined,c=n,o=m.getGridColumns().length,g=o-1,b=(m.firstCls||m.lastCls)&&(n===0||n==o||a===0||a==g),f,e,r,h,l,q,p;if(m.rendered&&n!==a){r=m.el.query(m.getDataRowSelector());if(n>a&&k){c-=d}for(f=0,h=r.length;f-1){return this.store.data.getAt(a)}}return this.dataSource.data.get(b.getAttribute("data-recordId"))}},indexOf:function(a){a=this.getNode(a,false);if(!a&&a!==0){return -1}return this.all.indexOf(a)},indexInStore:function(b){b=this.getNode(b,true);if(!b&&b!==0){return -1}var a=b.getAttribute("data-recordIndex");if(a){return parseInt(a,10)}return this.dataSource.indexOf(this.getRecord(b))},renderRows:function(e,d,b){var f=this.rowValues,a=e.length,c;f.view=this;f.columns=this.ownerCt.columnManager.getColumns();for(c=0;c')}},renderRow:function(f,a,e){var h=this,d=a===-1,g=h.selModel,k=h.rowValues,c=k.itemClasses,b=k.rowClasses,j,i=h.rowTpl;k.record=f;k.recordId=f.internalId;k.recordIndex=a;k.rowId=h.getRowId(f);k.itemCls=k.rowCls="";if(!k.columns){k.columns=h.ownerCt.columnManager.getColumns()}c.length=b.length=0;if(!d){c[0]=Ext.baseCSSPrefix+"grid-row";if(g&&g.isRowSelected){if(g.isRowSelected(a+1)){c.push(h.beforeSelectedItemCls)}if(g.isRowSelected(f)){c.push(h.selectedItemCls)}}if(h.stripeRows&&a%2!==0){b.push(h.altRowCls)}if(h.getRowClass){j=h.getRowClass(f,a,null,h.dataSource);if(j){b.push(j)}}}if(e){i.applyOut(k,e)}else{return i.apply(k)}},renderCell:function(c,f,e,h,d){var j=this,g=j.selModel,i=j.cellValues,b=i.classes,a=f.data[c.dataIndex],l=j.cellTpl,m,k;i.record=f;i.column=c;i.recordIndex=e;i.columnIndex=h;i.cellIndex=h;i.align=c.align;i.tdCls=c.tdCls;i.innerCls=c.innerCls;i.style=i.tdAttr="";i.unselectableAttr=j.enableTextSelection?"":'unselectable="on"';if(c.renderer&&c.renderer.call){m=c.renderer.call(c.scope||j.ownerCt,a,i,f,e,h,j.dataSource,j);if(i.css){f.cssWarning=true;i.tdCls+=" "+i.css;delete i.css}}else{m=a}i.value=(m==null||m==="")?" ":m;b[1]=Ext.baseCSSPrefix+"grid-cell-"+c.getItemId();k=2;if(c.tdCls){b[k++]=c.tdCls}if(j.markDirty&&f.isModified(c.dataIndex)){b[k++]=j.dirtyCls}if(c.isFirstVisible){b[k++]=j.firstCls}if(c.isLastVisible){b[k++]=j.lastCls}if(!j.enableTextSelection){b[k++]=Ext.baseCSSPrefix+"unselectable"}b[k++]=i.tdCls;if(g&&g.isCellSelected&&g.isCellSelected(j,e,h)){b[k++]=(j.selectedCellCls)}b.length=k;i.tdCls=b.join(" ");l.applyOut(i,d);i.column=null},getNode:function(c,b){var d,a=this.callParent(arguments);if(a&&a.tagName){if(b){if(!(d=Ext.fly(a)).is(this.dataRowSelector)){return d.down(this.dataRowSelector,true)}}else{if(b===false){if(!(d=Ext.fly(a)).is(this.itemSelector)){return d.up(this.itemSelector,null,true)}}}}return a},getRowId:function(a){return this.id+"-record-"+a.internalId},constructRowId:function(a){return this.id+"-record-"+a},getNodeById:function(b,a){b=this.constructRowId(b);return this.retrieveNode(b,a)},getNodeByRecord:function(a,b){var c=this.getRowId(a);return this.retrieveNode(c,b)},retrieveNode:function(e,c){var a=this.el.getById(e,true),b=this.itemSelector,d;if(c===false&&a){if(!(d=Ext.fly(a)).is(b)){return d.up(b,null,true)}}return a},updateIndexes:Ext.emptyFn,bodySelector:"table",nodeContainerSelector:"tbody",itemSelector:"tr."+Ext.baseCSSPrefix+"grid-row",dataRowSelector:"tr."+Ext.baseCSSPrefix+"grid-data-row",cellSelector:"td."+Ext.baseCSSPrefix+"grid-cell",sizerSelector:"col."+Ext.baseCSSPrefix+"grid-cell",innerSelector:"div."+Ext.baseCSSPrefix+"grid-cell-inner",getNodeContainer:function(){return this.el.down(this.nodeContainerSelector,true)},getBodySelector:function(){return this.bodySelector+"."+Ext.baseCSSPrefix+this.id+"-table"},getNodeContainerSelector:function(){return this.nodeContainerSelector},getColumnSizerSelector:function(a){return this.sizerSelector+"-"+a.getItemId()},getItemSelector:function(){return this.itemSelector},getDataRowSelector:function(){return this.dataRowSelector},getCellSelector:function(b){var a=this.cellSelector;if(b){a+="-"+b.getItemId()}return a},getCellInnerSelector:function(a){return this.getCellSelector(a)+" "+this.innerSelector},addRowCls:function(b,a){var c=this.getNode(b,false);if(c){Ext.fly(c).addCls(a)}},removeRowCls:function(b,a){var c=this.getNode(b,false);if(c){Ext.fly(c).removeCls(a)}},setHighlightedItem:function(c){var b=this,a=b.highlightedItem;if(a&&b.el.isAncestor(a)&&b.isRowStyleFirst(a)){b.getRowStyleTableEl(a).removeCls(b.tableOverFirstCls)}if(c&&b.isRowStyleFirst(c)){b.getRowStyleTableEl(c).addCls(b.tableOverFirstCls)}b.callParent(arguments)},onRowSelect:function(b){var a=this;a.addRowCls(b,a.selectedItemCls);if(a.isRowStyleFirst(b)){a.getRowStyleTableEl(b).addCls(a.tableSelectedFirstCls)}else{a.addRowCls(b-1,a.beforeSelectedItemCls)}},onRowDeselect:function(b){var a=this;a.removeRowCls(b,[a.selectedItemCls,a.focusedItemCls]);if(a.isRowStyleFirst(b)){a.getRowStyleTableEl(b).removeCls([a.tableFocusedFirstCls,a.tableSelectedFirstCls])}else{a.removeRowCls(b-1,[a.beforeFocusedItemCls,a.beforeSelectedItemCls])}},onCellSelect:function(b){var a=this.getCellByPosition(b);if(a){a.addCls(this.selectedCellCls);this.scrollCellIntoView(a)}},onCellDeselect:function(b){var a=this.getCellByPosition(b,true);if(a){Ext.fly(a).removeCls(this.selectedCellCls)}},getCellByPosition:function(a,b){if(a){var c=this.getNode(a.row,true),d=this.ownerCt.columnManager.getHeaderAtIndex(a.column);if(d&&c){return Ext.fly(c).down(this.getCellSelector(d),b)}}return false},getFocusEl:function(){var b=this,a;if(b.refreshCounter){a=b.focusedRow;if(!(a&&b.el.contains(a))){if(b.all.getCount()&&(a=b.getNode(b.all.item(0).dom,true))){b.focusRow(a)}else{a=b.body}}}else{return b.el}return Ext.get(a)},onRowFocus:function(d,b,a){var c=this;if(b){c.addRowCls(d,c.focusedItemCls);if(c.isRowStyleFirst(d)){c.getRowStyleTableEl(d).addCls(c.tableFocusedFirstCls)}else{c.addRowCls(d-1,c.beforeFocusedItemCls)}if(!a){c.focusRow(d)}}else{c.removeRowCls(d,c.focusedItemCls);if(c.isRowStyleFirst(d)){c.getRowStyleTableEl(d).removeCls(c.tableFocusedFirstCls)}else{c.removeRowCls(d-1,c.beforeFocusedItemCls)}}if((Ext.isIE6||Ext.isIE7)&&!c.ownerCt.rowLines){c.repaintRow(d)}},focus:function(d,b){var c=this,a=Ext.isIE&&!b,e;if(a){e=c.el.dom.scrollLeft}this.callParent(arguments);if(a){c.el.dom.scrollLeft=e}},focusRow:function(f,b){var d=this,c,e=d.ownerCt&&d.ownerCt.collapsed,a;if(d.isVisible(true)&&!e&&(f=d.getNode(f,true))){d.scrollRowIntoView(f);a=d.getRecord(f);c=d.indexInStore(f);d.selModel.setLastFocused(a);d.focusedRow=f;d.focus(false,b,function(){d.fireEvent("rowfocus",a,f,c)})}},scrollRowIntoView:function(a){a=this.getNode(a,true);if(a){Ext.fly(a).scrollIntoView(this.el,false)}},focusCell:function(b){var d=this,a=d.getCellByPosition(b),c=d.getRecord(b.row);d.focusRow(c);if(a){d.scrollCellIntoView(a);d.fireEvent("cellfocus",c,a,b)}},scrollCellIntoView:function(a){if(a.row!=null&&a.column!=null){a=this.getCellByPosition(a)}if(a){Ext.fly(a).scrollIntoView(this.el,true)}},scrollByDelta:function(c,b){b=b||"scrollTop";var a=this.el.dom;a[b]=(a[b]+=c)},isDataRow:function(a){return Ext.fly(a).hasCls(Ext.baseCSSPrefix+"grid-data-row")},syncRowHeights:function(f,a){f=Ext.get(f);a=Ext.get(a);f.dom.style.height=a.dom.style.height="";var d=this,e=d.rowTpl,b=f.dom.offsetHeight,c=a.dom.offsetHeight;if(b!==c){while(e){if(e.syncRowHeights){if(e.syncRowHeights(f,a)===false){break}}e=e.nextTpl}b=f.dom.offsetHeight;c=a.dom.offsetHeight;if(b!==c){f=f.down("[data-recordId]")||f;a=a.down("[data-recordId]")||a;if(f&&a){f.dom.style.height=a.dom.style.height="";b=f.dom.offsetHeight;c=a.dom.offsetHeight;if(b>c){f.setHeight(b);a.setHeight(b)}else{if(c>b){f.setHeight(c);a.setHeight(c)}}}}}},onIdChanged:function(a,g,f,c,b){var e=this,d;if(e.viewReady){d=e.getNodeById(b);if(d){d.setAttribute("data-recordId",g.internalId);d.id=e.getRowId(g)}}},onUpdate:function(f,c,k,p){var t=this,m=t.rowTpl,h,q,b,j,l,r,s,e,n,o,i,d,u,g,a;if(t.viewReady){b=t.getNodeByRecord(c,false);if(b){n=t.overItemCls;o=t.overItemCls;i=t.focusedItemCls;d=t.beforeFocusedItemCls;u=t.selectedItemCls;g=t.beforeSelectedItemCls;h=t.indexInStore(c);q=Ext.fly(b,"_internal");j=t.createRowElement(c,h);if(q.hasCls(n)){Ext.fly(j).addCls(n)}if(q.hasCls(o)){Ext.fly(j).addCls(o)}if(q.hasCls(i)){Ext.fly(j).addCls(i)}if(q.hasCls(d)){Ext.fly(j).addCls(d)}if(q.hasCls(u)){Ext.fly(j).addCls(u)}if(q.hasCls(g)){Ext.fly(j).addCls(g)}a=t.ownerCt.columnManager.getColumns();if(Ext.isIE9m&&b.mergeAttributes){b.mergeAttributes(j,true)}else{l=j.attributes;r=l.length;for(e=0;e0){k=f.getCellPaddingAfter(l[0])}a.setWidth(1);h=d.textEl.dom.offsetWidth+d.titleEl.getPadding("lr");for(;c=c:i<=0){return j||c}i+=f;if((b=Ext.fly(d.getNode(i,true)))&&b.isVisible(true)){e+=f;j=i}}while(e!==a);return i},walkRecs:function(b,a){var g=this,h=0,k=b,c,j=(g.store.buffered?g.store.getTotalCount():g.store.getCount())-1,e=(a<0)?0:j,i=e?1:-1,f=g.store.indexOf(b),d;do{if(e?f>=e:f<=0){return k}f+=i;d=g.store.getAt(f);if((c=Ext.fly(g.getNodeByRecord(d,true)))&&c.isVisible(true)){h+=i;k=d}}while(h!==a);return k},getFirstVisibleRowIndex:function(){var c=this,b=(c.dataSource.buffered?c.dataSource.getTotalCount():c.dataSource.getCount()),a=c.indexOf(c.all.first())-1;do{a+=1;if(a===b){return}}while(!Ext.fly(c.getNode(a,true)).isVisible(true));return a},getLastVisibleRowIndex:function(){var b=this,a=b.indexOf(b.all.last());do{a-=1;if(a===-1){return}}while(!Ext.fly(b.getNode(a,true)).isVisible(true));return a},getHeaderCt:function(){return this.headerCt},getPosition:function(a,b){return new Ext.grid.CellContext(this).setPosition(a,b)},beforeDestroy:function(){var a=this;if(a.rendered){a.el.removeAllListeners()}a.callParent(arguments)},onDestroy:function(){var d=this,c=d.featuresMC,a,b;if(c){for(b=0,a=c.getCount();b