TreeGrid-override_wev8.js 21.9 KB
Ext.namespace("Ext.ux.maximgb.treegrid");Ext.ux.maximgb.treegrid.AbstractTreeStore=Ext.extend(Ext.data.Store,{leaf_field_name:"_is_leaf",page_offset:0,active_node:null,constructor:function(a){Ext.ux.maximgb.treegrid.AbstractTreeStore.superclass.constructor.call(this,a);if(!this.paramNames.active_node){this.paramNames.active_node="anode"}this.addEvents("beforeexpandnode","expandnode","expandnodefailed","beforecollapsenode","collapsenode","beforeactivenodechange","activenodechange")},remove:function(a){if(a===this.active_node){this.setActiveNode(null)}this.removeNodeDescendants(a);Ext.ux.maximgb.treegrid.AbstractTreeStore.superclass.remove.call(this,a)},removeNodeDescendants:function(d){var c,a,b=this.getNodeChildren(d);for(c=0,a=b.length;c<a;c++){this.remove(b[c])}},applySort:function(){if(this.sortInfo&&!this.remoteSort){var a=this.sortInfo,b=a.field;this.sortData(b,a.direction)}else{this.applyTreeSort()}},sortData:function(c,d){d=d||"ASC";var a=this.fields.get(c).sortType;var b=function(f,e){var h=a(f.data[c]),g=a(e.data[c]);return h>g?1:(h<g?-1:0)};this.data.sort(d,b);if(this.snapshot&&this.snapshot!=this.data){this.snapshot.sort(d,b)}this.applyTreeSort()},load:function(a){if(a){if(a.params){if(a.params[this.paramNames.active_node]===undefined){a.params[this.paramNames.active_node]=this.active_node?this.active_node.id:null}}else{a.params={};a.params[this.paramNames.active_node]=this.active_node?this.active_node.id:null}}else{a={params:{}};a.params[this.paramNames.active_node]=this.active_node?this.active_node.id:null}if(a.params[this.paramNames.active_node]!==null){a.add=true}return Ext.ux.maximgb.treegrid.AbstractTreeStore.superclass.load.call(this,a)},loadRecords:function(b,l,f){if(!b||f===false){if(f!==false){this.fireEvent("load",this,[],l)}if(l.callback){l.callback.call(l.scope||this,[],l,false)}return}var a=b.records,k=b.totalRecords||a.length,g=this.getPageOffsetFromOptions(l),j=this.getLoadedNodeIdFromOptions(l),e,c,d,h=this;if(!l||l.add!==true||j===null){if(this.pruneModifiedRecords){this.modified=[]}for(var c=0,d=a.length;c<d;c++){a[c].join(this)}if(this.snapshot){this.data=this.snapshot;delete this.snapshot}this.data.clear();this.data.addAll(a);this.page_offset=g;this.totalLength=k;this.applySort();this.fireEvent("datachanged",this)}else{e=this.getById(j);if(e){this.setNodeChildrenOffset(e,g);this.setNodeChildrenTotalCount(e,Math.max(k,a.length));this.removeNodeDescendants(e);this.suspendEvents();for(c=0,d=a.length;c<d;c++){this.add(a[c])}this.applySort();this.resumeEvents();idx=[];a.sort(function(o,m){var p=h.data.indexOf(o),n=h.data.indexOf(m),q;if(p>n){q=1}else{q=-1}return q});for(c=0,d=a.length;c<d;c++){this.fireEvent("add",this,[a[c]],this.data.indexOf(a[c]))}}}this.fireEvent("load",this,a,l);if(l.callback){l.callback.call(l.scope||this,a,l,true)}},applyTreeSort:function(){var e,a,d,f,c=[],b=this.getRootNodes();for(e=0,a=b.length;e<a;e++){f=b[e];c.push(f);this.collectNodeChildrenTreeSorted(c,f)}if(c.length>0){this.data.clear();this.data.addAll(c)}if(this.snapshot&&this.snapshot!==this.data){d=this.data;this.data=this.snapshot;this.snapshot=null;this.applyTreeSort();this.snapshot=this.data;this.data=d}},collectNodeChildrenTreeSorted:function(b,e){var d,a,f,c=this.getNodeChildren(e);for(d=0,a=c.length;d<a;d++){f=c[d];b.push(f);this.collectNodeChildrenTreeSorted(b,f)}},getActiveNode:function(){return this.active_node},setActiveNode:function(a){if(this.active_node!==a){if(a){if(this.data.indexOf(a)!=-1){if(this.fireEvent("beforeactivenodechange",this,this.active_node,a)!==false){this.active_node=a;this.fireEvent("activenodechange",this,this.active_node,a)}}else{throw"Given record is not from the store."}}else{if(this.fireEvent("beforeactivenodechange",this,this.active_node,a)!==false){this.active_node=a;this.fireEvent("activenodechange",this,this.active_node,a)}}}},isExpandedNode:function(a){return a.ux_maximgb_treegrid_expanded===true},setNodeExpanded:function(b,a){b.ux_maximgb_treegrid_expanded=a},isVisibleNode:function(e){var c,b,d=this.getNodeAncestors(e),a=true;for(c=0,b=d.length;c<b;c++){a=a&&this.isExpandedNode(d[c]);if(!a){break}}return a},isLeafNode:function(a){return a.get(this.leaf_field_name)==true},isLoadedNode:function(b){var a;if(b.ux_maximgb_treegrid_loaded!==undefined){a=b.ux_maximgb_treegrid_loaded}else{if(this.isLeafNode(b)||this.hasChildNodes(b)){a=true}else{a=false}}return a},setNodeLoaded:function(b,a){b.ux_maximgb_treegrid_loaded=a},getNodeChildrenOffset:function(a){return a.ux_maximgb_treegrid_offset||0},setNodeChildrenOffset:function(b,a){b.ux_maximgb_treegrid_offset=a},getNodeChildrenTotalCount:function(a){return a.ux_maximgb_treegrid_total||0},setNodeChildrenTotalCount:function(b,a){b.ux_maximgb_treegrid_total=a},collapseNode:function(a){if(this.isExpandedNode(a)&&this.fireEvent("beforecollapsenode",this,a)!==false){this.setNodeExpanded(a,false);this.fireEvent("collapsenode",this,a)}},expandNode:function(a){var b;if(!this.isExpandedNode(a)&&this.fireEvent("beforeexpandnode",this,a)!==false){if(this.isLoadedNode(a)){this.setNodeExpanded(a,true);this.fireEvent("expandnode",this,a)}else{b={};b[this.paramNames.active_node]=a.id;this.load({add:true,params:b,callback:this.expandNodeCallback,scope:this})}}},expandNodeCallback:function(b,a,d){var c=this.getById(a.params[this.paramNames.active_node]);if(d&&c){this.setNodeLoaded(c,true);this.setNodeExpanded(c,true);this.fireEvent("expandnode",this,c)}else{this.fireEvent("expandnodefailed",this,a.params[this.paramNames.active_node],c)}},getLoadedNodeIdFromOptions:function(b){var a=null;if(b&&b.params&&b.params[this.paramNames.active_node]){a=b.params[this.paramNames.active_node]}return a},getPageOffsetFromOptions:function(b){var a=0;if(b&&b.params&&b.params[this.paramNames.start]){a=parseInt(b.params[this.paramNames.start],10);if(isNaN(a)){a=0}}return a},hasNextSiblingNode:function(a){return this.getNodeNextSibling(a)!==null},hasPrevSiblingNode:function(a){return this.getNodePrevSibling(a)!==null},hasChildNodes:function(a){return this.getNodeChildrenCount(a)>0},getNodeAncestors:function(c){var b=[],a;a=this.getNodeParent(c);while(a){b.push(a);a=this.getNodeParent(a)}return b},getNodeChildrenCount:function(a){return this.getNodeChildren(a).length},getNodeNextSibling:function(d){var e,c,b,a=null;c=this.getNodeParent(d);if(c){e=this.getNodeChildren(c)}else{e=this.getRootNodes()}b=e.indexOf(d);if(b<e.length-1){a=e[b+1]}return a},getNodePrevSibling:function(d){var e,c,b,a=null;c=this.getNodeParent(d);if(c){e=this.getNodeChildren(c)}else{e=this.getRootNodes()}b=e.indexOf(d);if(b>0){a=e[b-1]}return a},getRootNodes:function(){throw"Abstract method call"},getNodeDepth:function(a){throw"Abstract method call"},getNodeParent:function(a){throw"Abstract method call"},getNodeChildren:function(a){throw"Abstract method call"},addToNode:function(a,b){throw"Abstract method call"},removeFromNode:function(a,b){throw"Abstract method call"},getPageOffset:function(){return this.page_offset},getActiveNodePageOffset:function(){var a;if(this.active_node){a=this.getNodeChildrenOffset(this.active_node)}else{a=this.getPageOffset()}return a},getActiveNodeCount:function(){var a;if(this.active_node){a=this.getNodeChildrenCount(this.active_node)}else{a=this.getRootNodes().length}return a},getActiveNodeTotalCount:function(){var a;if(this.active_node){a=this.getNodeChildrenTotalCount(this.active_node)}else{a=this.getTotalCount()}return a}});Ext.ux.maximgb.treegrid.AdjacencyListStore=Ext.extend(Ext.ux.maximgb.treegrid.AbstractTreeStore,{parent_id_field_name:"_parent",getRootNodes:function(){var d,b,a=[],c=this.data.getRange();for(d=0,b=c.length;d<b;d++){if(c[d].get(this.parent_id_field_name)==null||c[d].get(this.parent_id_field_name)==""){a.push(c[d])}}return a},getNodeDepth:function(a){return this.getNodeAncestors(a).length},getNodeParent:function(a){return this.getById(a.get(this.parent_id_field_name))},getNodeChildren:function(e){var d,b,a=[],c=this.data.getRange();for(d=0,b=c.length;d<b;d++){if(c[d].get(this.parent_id_field_name)==e.id){a.push(c[d])}}return a}});Ext.ux.maximgb.treegrid.NestedSetStore=Ext.extend(Ext.ux.maximgb.treegrid.AbstractTreeStore,{left_field_name:"_lft",right_field_name:"_rgt",level_field_name:"_level",root_node_level:1,getRootNodes:function(){var d,b,a=[],c=this.data.getRange();for(d=0,b=c.length;d<b;d++){if(c[d].get(this.level_field_name)==this.root_node_level){a.push(c[d])}}return a},getNodeDepth:function(a){return a.get(this.level_field_name)-this.root_node_level},getNodeParent:function(a){var m=null,g,f=this.data.getRange(),h,j,l,e,k,d,c,b;l=a.get(this.left_field_name);k=a.get(this.right_field_name);c=a.get(this.level_field_name);for(h=0,j=f.length;h<j;h++){g=f[h];e=g.get(this.left_field_name);d=g.get(this.right_field_name);b=g.get(this.level_field_name);if(b==c-1&&e<l&&d>k){m=g;break}}return m},getNodeChildren:function(a){var j,e,h,d,b,c,f,g,k=[];f=this.data.getRange();j=a.get(this.left_field_name);h=a.get(this.right_field_name);b=a.get(this.level_field_name);for(i=0,len=f.length;i<len;i++){g=f[i];e=g.get(this.left_field_name);d=g.get(this.right_field_name);c=g.get(this.level_field_name);if(c==b+1&&e>j&&d<h){k.push(g)}}return k}});Ext.ux.maximgb.treegrid.GridView=Ext.extend(Ext.grid.GridView,{breadcrumbs_el:null,initTemplates:function(){var a=this.templates||{};a.master=new Ext.Template('<div class="x-grid3" hidefocus="true">','<div class="x-grid3-viewport">','<div class="x-grid3-header">','<div class="x-grid3-header-inner">','<div class="x-grid3-header-offset">','<div class="ux-maximgb-treegrid-breadcrumbs">&#160;</div>',"</div>","</div>",'<div class="x-clear"></div>','<div class="x-grid3-header-inner">','<div class="x-grid3-header-offset">{header}</div>',"</div>",'<div class="x-clear"></div>',"</div>",'<div class="x-grid3-scroller">','<div class="x-grid3-body">{body}</div>','<a href="#" class="x-grid3-focus" tabIndex="-1"></a>',"</div>","</div>",'<div class="x-grid3-resize-marker">&#160;</div>','<div class="x-grid3-resize-proxy">&#160;</div>',"</div>");a.row=new Ext.Template('<div class="x-grid3-row {alt} ux-maximgb-treegrid-level-{level}" style="{tstyle} {display_style}">','<table class="x-grid3-row-table" border="0" cellspacing="0" cellpadding="0" style="{tstyle}">',"<tbody>","<tr>{cells}</tr>",(this.enableRowBody?'<tr class="x-grid3-row-body-tr" style="{bodyStyle}"><td colspan="{cols}" class="x-grid3-body-cell" tabIndex="0" hidefocus="on"><div class="x-grid3-row-body">{body}</div></td></tr>':""),"</tbody>","</table>","</div>");a.cell=new Ext.Template('<td class="x-grid3-col x-grid3-cell x-grid3-td-{id} {css}" style="{style}" tabIndex="0" {cellAttr}>',"{treeui}",'<div class="x-grid3-cell-inner x-grid3-col-{id}" unselectable="on" {attr}>{value}</div>',"</td>");a.treeui=new Ext.Template('<div class="ux-maximgb-treegrid-uiwrap" style="width: {wrap_width}px">',"{elbow_line}",'<div style="left: {left}px" class="{cls}">&#160;</div>',"</div>");a.elbow_line=new Ext.Template('<div style="left: {left}px" class="{cls}">&#160;</div>');a.brd_item=new Ext.Template('<a href="#" id="ux-maximgb-treegrid-brditem-{id}" class="ux-maximgb-treegrid-brditem" title="{title}">{caption}</a>');this.templates=a;Ext.ux.maximgb.treegrid.GridView.superclass.initTemplates.call(this)},initElements:function(){var c=Ext.Element;var b=this.grid.getGridEl().dom.firstChild;var a=b.childNodes;this.el=new c(b);this.mainWrap=new c(a[0]);this.mainHd=new c(this.mainWrap.dom.firstChild);if(this.grid.hideHeaders){this.mainHd.setDisplayed(false)}this.innerHd=this.mainHd.dom.childNodes[2];this.scroller=new c(this.mainWrap.dom.childNodes[1]);if(this.forceFit){this.scroller.setStyle("overflow-x","hidden")}this.mainBody=new c(this.scroller.dom.firstChild);this.focusEl=new c(this.scroller.dom.childNodes[1]);this.focusEl.swallowEvent("click",true);this.resizeMarker=new c(a[1]);this.resizeProxy=new c(a[2]);this.breadcrumbs_el=this.el.child(".ux-maximgb-treegrid-breadcrumbs");this.setRootBreadcrumbs()},doRender:function(f,h,q,a,o,v){var b=this.templates,e=b.cell,g=b.row,k=o-1;var d="width:"+this.getTotalWidth()+";";var y=[],s,z,t={},l={tstyle:d},n;for(var u=0,x=h.length;u<x;u++){n=h[u];s=[];var m=(u+a);for(var w=0;w<o;w++){z=f[w];t.id=z.id;t.css=w==0?"x-grid3-cell-first ":(w==k?"x-grid3-cell-last ":"");t.attr=t.cellAttr="";t.value=z.renderer(n.data[z.name],t,n,m,w,q);t.style=z.style;if(t.value==undefined||t.value===""){t.value="&#160;"}if(n.dirty&&typeof n.modified[z.name]!=="undefined"){t.css+=" x-grid3-dirty-cell"}if(z.id==this.grid.master_column_id){t.treeui=this.renderCellTreeUI(n,q)}else{t.treeui=""}s[s.length]=e.apply(t)}var A=[];if(v&&((m+1)%2==0)){A[0]="x-grid3-row-alt"}if(n.dirty){A[1]=" x-grid3-dirty-row"}l.cols=o;if(this.getRowClass){A[2]=this.getRowClass(n,m,l,q)}l.alt=A.join(" ");l.cells=s.join("");if(!q.isVisibleNode(n)){l.display_style="display: none;"}else{l.display_style=""}l.level=q.getNodeDepth(n);y[y.length]=g.apply(l)}return y.join("")},renderCellTreeUI:function(a,b){var c=this.templates.treeui,h=this.templates.elbow_line,e={},g,d,f=level=b.getNodeDepth(a);e.wrap_width=(f+1)*16;if(level>0){e.elbow_line="";g=a;left=0;while(level--){d=b.getNodeParent(g);if(d){if(b.hasNextSiblingNode(d)){e.elbow_line=h.apply({left:level*16,cls:"ux-maximgb-treegrid-elbow-line"})+e.elbow_line}else{e.elbow_line=h.apply({left:level*16,cls:"ux-maximgb-treegrid-elbow-empty"})+e.elbow_line}}else{throw ["Tree inconsistency can't get level ",level+1," node(id=",g.id,") parent."].join("")}g=d}}if(b.isLeafNode(a)){if(b.hasNextSiblingNode(a)){e.cls="ux-maximgb-treegrid-elbow"}else{e.cls="ux-maximgb-treegrid-elbow-end"}}else{e.cls="ux-maximgb-treegrid-elbow-active ";if(b.isExpandedNode(a)){if(b.hasNextSiblingNode(a)){e.cls+="ux-maximgb-treegrid-elbow-minus"}else{e.cls+="ux-maximgb-treegrid-elbow-end-minus"}}else{if(b.hasNextSiblingNode(a)){e.cls+="ux-maximgb-treegrid-elbow-plus"}else{e.cls+="ux-maximgb-treegrid-elbow-end-plus"}}}e.left=1+f*16;return c.apply(e)},getBreadcrumbsEl:function(){return this.breadcrumbs_el},expandRow:function(d,g){var b=this.ds,c,f,k,h,a,e,j;if(typeof d=="number"){e=d;d=b.getAt(e)}else{e=b.indexOf(d)}k=this.getRow(e);h=Ext.fly(k).child(".ux-maximgb-treegrid-elbow-active");if(h){if(b.hasNextSiblingNode(d)){h.removeClass("ux-maximgb-treegrid-elbow-plus");h.removeClass("ux-maximgb-treegrid-elbow-end-plus");h.addClass("ux-maximgb-treegrid-elbow-minus")}else{h.removeClass("ux-maximgb-treegrid-elbow-plus");h.removeClass("ux-maximgb-treegrid-elbow-end-plus");h.addClass("ux-maximgb-treegrid-elbow-end-minus")}if(b.isVisibleNode(d)){a=b.getNodeChildren(d);for(c=0,f=a.length;c<f;c++){j=b.indexOf(a[c]);k=this.getRow(j);Ext.fly(k).setStyle("display","block");if(b.isExpandedNode(a[c])){this.expandRow(j)}}}}},collapseRow:function(b){var f=this.ds,e,a,d,g,c;if(typeof b=="number"){c=b;b=f.getAt(c)}else{c=f.indexOf(b)}g=this.getRow(c);pmel=Ext.fly(g).child(".ux-maximgb-treegrid-elbow-active");if(pmel){if(f.hasNextSiblingNode(b)){pmel.removeClass("ux-maximgb-treegrid-elbow-minus");pmel.removeClass("ux-maximgb-treegrid-elbow-end-minus");pmel.addClass("ux-maximgb-treegrid-elbow-plus")}else{pmel.removeClass("ux-maximgb-treegrid-elbow-minus");pmel.removeClass("ux-maximgb-treegrid-elbow-end-minus");pmel.addClass("ux-maximgb-treegrid-elbow-end-plus")}d=f.getNodeChildren(b);for(e=0,a=d.length;e<a;e++){c=f.indexOf(d[e]);g=this.getRow(c);Ext.fly(g).setStyle("display","none");this.collapseRow(c)}}},initData:function(b,a){Ext.ux.maximgb.treegrid.GridView.superclass.initData.call(this,b,a);if(this.ds){this.ds.un("activenodechange",this.onStoreActiveNodeChange,this);this.ds.un("expandnode",this.onStoreExpandNode,this);this.ds.un("collapsenode",this.onStoreCollapseNode,this)}if(b){b.on("activenodechange",this.onStoreActiveNodeChange,this);b.on("expandnode",this.onStoreExpandNode,this);b.on("collapsenode",this.onStoreCollapseNode,this)}},onStoreActiveNodeChange:function(j,a,e){var h,c,d,b,g=[],f=this.templates;if(e){h=this.ds.getNodeAncestors(e),h.reverse();h.push(e);for(c=0,d=h.length;c<d;c++){b=h[c];g.push(f.brd_item.apply({id:b.id,title:this.grid.i18n.breadcrumbs_tip,caption:b.get(this.cm.getDataIndex(this.cm.getIndexById(this.grid.master_column_id)))}))}this.breadcrumbs_el.update(this.grid.i18n.path_separator+f.brd_item.apply({id:"",title:this.grid.i18n.breadcrumbs_root_tip,caption:this.grid.root_title})+this.grid.i18n.path_separator+g.join(this.grid.i18n.path_separator))}else{this.setRootBreadcrumbs()}},setRootBreadcrumbs:function(){var a=this.templates;this.breadcrumbs_el.update(this.grid.i18n.path_separator+a.brd_item.apply({id:"",title:this.grid.i18n.breadcrumbs_root_tip,caption:this.grid.root_title}))},onLoad:function(b,a,c){var d=b.getLoadedNodeIdFromOptions(c);if(d===null){Ext.ux.maximgb.treegrid.GridView.superclass.onLoad.call(this,b,a,c)}},onStoreExpandNode:function(a,b){this.expandRow(b)},onStoreCollapseNode:function(a,b){this.collapseRow(b)}});Ext.ux.maximgb.treegrid.GridPanel=Ext.extend(Ext.grid.EditorGridPanel,{master_column_id:0,root_title:null,i18n:null,initComponent:function(){Ext.ux.maximgb.treegrid.GridPanel.superclass.initComponent.call(this);Ext.applyIf(this.i18n,Ext.ux.maximgb.treegrid.GridPanel.prototype.i18n);if(!this.root_title){this.root_title=this.title||this.i18n.root_title}this.getSelectionModel().on("selectionchange",this.onTreeGridSelectionChange,this)},getView:function(){if(!this.view){this.view=new Ext.ux.maximgb.treegrid.GridView(this.viewConfig)}return this.view},onClick:function(g){var f=g.getTarget(),b=this.getView(),h=b.findRowIndex(f),c=this.getStore(),j=this.getSelectionModel(),a,d;if(h!==false){if(Ext.fly(f).hasClass("ux-maximgb-treegrid-elbow-active")){a=c.getAt(h);if(c.isExpandedNode(a)){c.collapseNode(a)}else{c.expandNode(a)}}}else{if(Ext.fly(f).hasClass("ux-maximgb-treegrid-brditem")){d=Ext.id(f);d=d.substr(d.lastIndexOf("-")+1);if(d!=""){a=c.getById(d);h=c.indexOf(a);if(g.hasModifier()){if(c.isExpandedNode(a)){c.collapseNode(a)}else{c.expandNode(a)}}else{if(j.isSelected&&!j.isSelected(h)){j.selectRow(h)}}}else{j.clearSelections()}g.stopPropagation()}}Ext.ux.maximgb.treegrid.GridPanel.superclass.onClick.call(this,g)},onDblClick:function(g){var f=g.getTarget(),b=this.getView(),h=b.findRowIndex(f),c=this.getStore(),j=this.getSelectionModel(),a,d;if(!h&&Ext.fly(f).hasClass("ux-maximgb-treegrid-brditem")){d=Ext.id(f);d=d.substr(d.lastIndexOf("-")+1);if(d!=""){a=c.getById(d);h=c.indexOf(a);if(c.isExpandedNode(a)){c.collapseNode(a)}else{c.expandNode(a)}if(j.isSelected&&!j.isSelected(h)){j.selectRow(h)}}else{j.clearSelections()}}Ext.ux.maximgb.treegrid.GridPanel.superclass.onDblClick.call(this,g)},onTreeGridSelectionChange:function(c,b){var a;if(c.getSelected){a=c.getSelected();this.getStore().setActiveNode(a)}else{if(Ext.type(b)=="array"&&b.length>0){a=store.getAt(b[0]);this.getStore().setActiveNode(a)}else{throw"Unknown selection model applyed to the grid."}}}});Ext.ux.maximgb.treegrid.GridPanel.prototype.i18n={path_separator:" / ",root_title:"[root]",breadcrumbs_tip:"Click to select node, CTRL+Click to expand or collapse node, Double click to select and expand or collapse node.",breadcrumbs_root_tip:"Click to select the top level node."};Ext.ux.maximgb.treegrid.PagingToolbar=Ext.extend(Ext.PagingToolbar,{onRender:function(b,a){Ext.ux.maximgb.treegrid.PagingToolbar.superclass.onRender.call(this,b,a);this.updateUI()},getPageData:function(){var a=0,b=0;if(this.store){b=this.store.getActiveNodePageOffset();a=this.store.getActiveNodeTotalCount()}return{total:a,activePage:Math.ceil((b+this.pageSize)/this.pageSize),pages:a<this.pageSize?1:Math.ceil(a/this.pageSize)}},updateInfo:function(){var b=0,d=0,a=0,c;if(this.displayEl){if(this.store){d=this.store.getActiveNodePageOffset();b=this.store.getActiveNodeCount();a=this.store.getActiveNodeTotalCount()}c=b==0?this.emptyMsg:String.format(this.displayMsg,d+1,d+b,a);this.displayEl.update(c)}},updateUI:function(){var c=this.getPageData(),a=c.activePage,b=c.pages;this.afterTextEl.el.innerHTML=String.format(this.afterPageText,c.pages);this.field.dom.value=a;this.first.setDisabled(a==1);this.prev.setDisabled(a==1);this.next.setDisabled(a==b);this.last.setDisabled(a==b);this.loading.enable();this.updateInfo()},unbind:function(a){Ext.ux.maximgb.treegrid.PagingToolbar.superclass.unbind.call(this,a);a.un("activenodechange",this.onStoreActiveNodeChange,this)},bind:function(a){Ext.ux.maximgb.treegrid.PagingToolbar.superclass.bind.call(this,a);a.on("activenodechange",this.onStoreActiveNodeChange,this)},beforeLoad:function(a,b){Ext.ux.maximgb.treegrid.PagingToolbar.superclass.beforeLoad.call(this,a,b);if(b&&b.params){if(b.params[this.paramNames.start]===undefined){b.params[this.paramNames.start]=0}if(b.params[this.paramNames.limit]===undefined){b.params[this.paramNames.limit]=this.pageSize}}},onClick:function(f){var b=this.store,e=b?b.getActiveNodePageOffset():0,d=b?b.getActiveNodeTotalCount():0;switch(f){case"first":this.doLoad(0);break;case"prev":this.doLoad(Math.max(0,e-this.pageSize));break;case"next":this.doLoad(e+this.pageSize);break;case"last":var a=d%this.pageSize;var c=a?(d-a):d-this.pageSize;this.doLoad(c);break;case"refresh":this.doLoad(e);break}},onStoreActiveNodeChange:function(b,c,a){if(this.rendered){this.updateUI()}}});Ext.reg("ux-maximgb-treegrid",Ext.ux.maximgb.treegrid.GridPanel);Ext.reg("ux-maximgb-paging",Ext.ux.maximgb.treegrid.PagingToolbar);Ext.override(Ext.ux.maximgb.treegrid.GridPanel,{startEditing:function(g,b){this.stopEditing();if(this.colModel.isCellEditable(b,g)){this.view.ensureVisible(g,b,true);var c=this.store.getAt(g);var f=this.colModel.getDataIndex(b);var d={grid:this,record:c,field:f,value:c.data[f],row:g,column:b,cancel:false};if(this.fireEvent("beforeedit",d)!==false&&!d.cancel){this.editing=true;var a=this.colModel.getCellEditor(b,g);if(!a.rendered){a.render(this.view.getEditorParent(a))}(function(){a.row=g;a.col=b;a.record=c;a.on("complete",this.onEditComplete,this,{single:true});a.on("specialkey",this.selModel.onEditorKey,this.selModel);this.activeEditor=a;var e=this.preEditValue(c,f);var k=this.view.getCell(g,b).firstChild;var j=this.colModel.findColumnIndex(this.master_column_id);if(b==j){var h=Ext.get(k);k=h.next()}a.startEdit(k,e)}).defer(50,this)}}},onTreeGridSelectionChange:function(c,b){if(!b&&!c.getSelected){this.getStore().setActiveNode(null);return}var a;if(c.getSelected){a=c.getSelected();this.getStore().setActiveNode(a)}else{if(b.cell){a=this.getStore().getAt(b.cell[0]);this.getStore().setActiveNode(a)}}}});