//>>built require({cache:{"url:dojox/grid/resources/Expando.html":"
\n"}}); define("dojox/grid/_TreeView",["dijit/registry","../main","dojo/_base/declare","dojo/_base/array","dojo/_base/lang","dojo/_base/event","dojo/dom-attr","dojo/dom-class","dojo/dom-style","dojo/dom-construct","dojo/query","dojo/parser","dojo/text!./resources/Expando.html","dijit/_Widget","dijit/_TemplatedMixin","./_View","./_Builder","./util"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c,_d,_e,_f,_10,_11,_12){ _3("dojox.grid._Expando",[_e,_f],{open:false,toggleClass:"",itemId:"",cellIdx:-1,view:null,rowNode:null,rowIdx:-1,expandoCell:null,level:0,templateString:_d,_toggleRows:function(_13,_14){ if(!_13||!this.rowNode){ return; } if(_b("table.dojoxGridRowTableNeedsRowUpdate").length){ if(this._initialized){ this.view.grid.updateRow(this.rowIdx); } return; } var _15=this; var g=this.view.grid; if(g.treeModel){ var p=this._tableRow?_7.get(this._tableRow,"dojoxTreeGridPath"):""; if(p){ _b("tr[dojoxTreeGridPath^=\""+p+"/\"]",this.rowNode).forEach(function(n){ var en=_b(".dojoxGridExpando",n)[0]; if(en&&en.parentNode&&en.parentNode.parentNode&&!_8.contains(en.parentNode.parentNode,"dojoxGridNoChildren")){ var ew=_1.byNode(en); if(ew){ ew._toggleRows(_13,ew.open&&_14); } } n.style.display=_14?"":"none"; }); } }else{ _b("tr."+_13,this.rowNode).forEach(function(n){ if(_8.contains(n,"dojoxGridExpandoRow")){ var en=_b(".dojoxGridExpando",n)[0]; if(en){ var ew=_1.byNode(en); var _16=ew?ew.toggleClass:en.getAttribute("toggleClass"); var _17=ew?ew.open:_15.expandoCell.getOpenState(en.getAttribute("itemId")); _15._toggleRows(_16,_17&&_14); } } n.style.display=_14?"":"none"; }); } },setOpen:function(_18){ if(_18&&_8.contains(this.domNode,"dojoxGridExpandoLoading")){ _18=false; } var _19=this.view; var _1a=_19.grid; var _1b=_1a.store; var _1c=_1a.treeModel; var d=this; var idx=this.rowIdx; var me=_1a._by_idx[idx]; if(!me){ return; } if(_1c&&!this._loadedChildren){ if(_18){ var itm=_1a.getItem(_7.get(this._tableRow,"dojoxTreeGridPath")); if(itm){ this.expandoInner.innerHTML="o"; _8.add(this.domNode,"dojoxGridExpandoLoading"); _1c.getChildren(itm,function(_1d){ d._loadedChildren=true; d._setOpen(_18); }); }else{ this._setOpen(_18); } }else{ this._setOpen(_18); } }else{ if(!_1c&&_1b){ if(_18){ var _1e=_1a._by_idx[this.rowIdx]; if(_1e&&!_1b.isItemLoaded(_1e.item)){ this.expandoInner.innerHTML="o"; _8.add(this.domNode,"dojoxGridExpandoLoading"); _1b.loadItem({item:_1e.item,onItem:_5.hitch(this,function(i){ var _1f=_1b.getIdentity(i); _1a._by_idty[_1f]=_1a._by_idx[this.rowIdx]={idty:_1f,item:i}; this._setOpen(_18); })}); }else{ this._setOpen(_18); } }else{ this._setOpen(_18); } }else{ this._setOpen(_18); } } },_setOpen:function(_20){ if(_20&&this._tableRow&&_8.contains(this._tableRow,"dojoxGridNoChildren")){ this._setOpen(false); return; } this.expandoInner.innerHTML=_20?"-":"+"; _8.remove(this.domNode,"dojoxGridExpandoLoading"); _8.toggle(this.domNode,"dojoxGridExpandoOpened",_20); if(this._tableRow){ _8.toggle(this._tableRow,"dojoxGridRowCollapsed",!_20); var _21=_7.get(this._tableRow,"dojoxTreeGridBaseClasses"); var _22=""; if(_20){ _22=_5.trim((" "+_21+" ").replace(" dojoxGridRowCollapsed "," ")); }else{ if((" "+_21+" ").indexOf(" dojoxGridRowCollapsed ")<0){ _22=_21+(_21?" ":"")+"dojoxGridRowCollapsed"; }else{ _22=_21; } } _7.set(this._tableRow,"dojoxTreeGridBaseClasses",_22); } var _23=(this.open!==_20); this.open=_20; if(this.expandoCell&&this.itemId){ this.expandoCell.openStates[this.itemId]=_20; } var v=this.view; var g=v.grid; if(this.toggleClass&&_23){ if(!this._tableRow||!this._tableRow.style.display){ this._toggleRows(this.toggleClass,_20); } } if(v&&this._initialized&&this.rowIdx>=0){ g.rowHeightChanged(this.rowIdx); g.postresize(); v.hasVScrollbar(true); } this._initialized=true; },onToggle:function(e){ this.setOpen(!this.open); _6.stop(e); },setRowNode:function(_24,_25,_26){ if(this.cellIdx<0||!this.itemId){ return false; } this._initialized=false; this.view=_26; this.rowNode=_25; this.rowIdx=_24; this.expandoCell=_26.structure.cells[0][this.cellIdx]; var d=this.domNode; if(d&&d.parentNode&&d.parentNode.parentNode){ this._tableRow=d.parentNode.parentNode; } this.open=this.expandoCell.getOpenState(this.itemId); if(_26.grid.treeModel){ _9.set(this.domNode,"marginLeft",(this.level*18)+"px"); if(this.domNode.parentNode){ _9.set(this.domNode.parentNode,"backgroundPosition",((this.level*18)+(3))+"px"); } } this.setOpen(this.open); return true; }}); var _27=_3("dojox.grid._TreeContentBuilder",_11._ContentBuilder,{generateHtml:function(_28,_29){ var _2a=this.getTableArray(),v=this.view,row=v.structure.cells[0],_2b=this.grid.getItem(_29),_2c=this.grid,_2d=this.grid.store; _12.fire(this.view,"onBeforeRow",[_29,[row]]); var _2e=function(_2f,_30,_31,_32,_33,_34){ if(!_34){ if(_2a[0].indexOf("dojoxGridRowTableNeedsRowUpdate")==-1){ _2a[0]=_2a[0].replace("dojoxGridRowTable","dojoxGridRowTable dojoxGridRowTableNeedsRowUpdate"); } return; } var _35=_2a.length; _32=_32||[]; var _36=_32.join("|"); var _37=_32[_32.length-1]; var _38=_37+(_31?" dojoxGridSummaryRow":""); var _39=""; if(_2c.treeModel&&_30&&!_2c.treeModel.mayHaveChildren(_30)){ _38+=" dojoxGridNoChildren"; } _2a.push(""); var _3a=_2f+1; var _3b=null; for(var i=0,_3c;(_3c=row[i]);i++){ var m=_3c.markup,cc=_3c.customClasses=[],cs=_3c.customStyles=[]; m[5]=_3c.formatAtLevel(_33,_30,_2f,_31,_37,cc); m[1]=cc.join(" "); m[3]=cs.join(";"); _2a.push.apply(_2a,m); if(!_3b&&_3c.level===_3a&&_3c.parentCell){ _3b=_3c.parentCell; } } _2a.push(""); if(_30&&_2d&&_2d.isItem(_30)){ var _3d=_2d.getIdentity(_30); if(typeof _2c._by_idty_paths[_3d]=="undefined"){ _2c._by_idty_paths[_3d]=_33.join("/"); } } var _3e; var _3f; var _40; var _41; var _42=_33.concat([]); if(_2c.treeModel&&_30){ if(_2c.treeModel.mayHaveChildren(_30)){ _3e=v.structure.cells[0][_2c.expandoCell||0]; _3f=_3e.getOpenState(_30)&&_34; _40=new _2.grid.TreePath(_33.join("/"),_2c); _41=_40.children(true)||[]; _4.forEach(_41,function(_43,idx){ var _44=_36.split("|"); _44.push(_44[_44.length-1]+"-"+idx); _42.push(idx); _2e(_3a,_43,false,_44,_42,_3f); _42.pop(); }); } }else{ if(_30&&_3b&&!_31){ _3e=v.structure.cells[0][_3b.level]; _3f=_3e.getOpenState(_30)&&_34; if(_2d.hasAttribute(_30,_3b.field)){ var _45=_36.split("|"); _45.pop(); _40=new _2.grid.TreePath(_33.join("/"),_2c); _41=_40.children(true)||[]; if(_41.length){ _2a[_35]=""; _4.forEach(_41,function(_46,idx){ var _47=_36.split("|"); _47.push(_47[_47.length-1]+"-"+idx); _42.push(idx); _2e(_3a,_46,false,_47,_42,_3f); _42.pop(); }); _42.push(_41.length); _2e(_2f,_30,true,_32,_42,_3f); }else{ _2a[_35]=""; } }else{ if(!_2d.isItemLoaded(_30)){ _2a[0]=_2a[0].replace("dojoxGridRowTable","dojoxGridRowTable dojoxGridRowTableNeedsRowUpdate"); }else{ _2a[_35]=""; } } }else{ if(_30&&!_31&&_32.length>1){ _2a[_35]=""; } } } }; _2e(0,_2b,false,["dojoxGridRowToggle-"+_29],[_29],true); _2a.push(""); return _2a.join(""); },findTarget:function(_48,_49){ var n=_48; while(n&&(n!=this.domNode)){ if(n.tagName&&n.tagName.toLowerCase()=="tr"){ break; } n=n.parentNode; } return (n!=this.domNode)?n:null; },getCellNode:function(_4a,_4b){ var _4c=_b("td[idx='"+_4b+"']",_4a)[0]; if(_4c&&_4c.parentNode&&!_8.contains(_4c.parentNode,"dojoxGridSummaryRow")){ return _4c; } },decorateEvent:function(e){ e.rowNode=this.findRowTarget(e.target); if(!e.rowNode){ return false; } e.rowIndex=_7.get(e.rowNode,"dojoxTreeGridPath"); this.baseDecorateEvent(e); e.cell=this.grid.getCell(e.cellIndex); return true; }}); return _3("dojox.grid._TreeView",_10,{_contentBuilderClass:_27,_onDndDrop:function(_4d,_4e,_4f){ if(this.grid&&this.grid.aggregator){ this.grid.aggregator.clearSubtotalCache(); } this.inherited(arguments); },postCreate:function(){ this.inherited(arguments); this.connect(this.grid,"_cleanupExpandoCache","_cleanupExpandoCache"); },_cleanupExpandoCache:function(_50,_51,_52){ if(_50==-1){ return; } _4.forEach(this.grid.layout.cells,function(_53){ if(typeof _53["openStates"]!="undefined"){ if(_51 in _53.openStates){ delete _53.openStates[_51]; } } }); if(typeof _50=="string"&&_50.indexOf("/")>-1){ var _54=new _2.grid.TreePath(_50,this.grid); var _55=_54.parent(); while(_55){ _54=_55; _55=_54.parent(); } var _56=_54.item(); if(!_56){ return; } var _57=this.grid.store.getIdentity(_56); if(typeof this._expandos[_57]!="undefined"){ for(var i in this._expandos[_57]){ var exp=this._expandos[_57][i]; if(exp){ exp.destroy(); } delete this._expandos[_57][i]; } delete this._expandos[_57]; } }else{ for(var i in this._expandos){ if(typeof this._expandos[i]!="undefined"){ for(var j in this._expandos[i]){ var exp=this._expandos[i][j]; if(exp){ exp.destroy(); } } } } this._expandos={}; } },postMixInProperties:function(){ this.inherited(arguments); this._expandos={}; },onBeforeRow:function(_58,_59){ var g=this.grid; if(g._by_idx&&g._by_idx[_58]&&g._by_idx[_58].idty){ var _5a=g._by_idx[_58].idty; this._expandos[_5a]=this._expandos[_5a]||{}; } this.inherited(arguments); },onAfterRow:function(_5b,_5c,_5d){ _4.forEach(_b("span.dojoxGridExpando",_5d),function(n){ if(n&&n.parentNode){ var tc=n.getAttribute("toggleClass"); var _5e; var _5f; var g=this.grid; if(g._by_idx&&g._by_idx[_5b]&&g._by_idx[_5b].idty){ _5e=g._by_idx[_5b].idty; _5f=this._expandos[_5e][tc]; } if(_5f){ _a.place(_5f.domNode,n,"replace"); _5f.itemId=n.getAttribute("itemId"); _5f.cellIdx=parseInt(n.getAttribute("cellIdx"),10); if(isNaN(_5f.cellIdx)){ _5f.cellIdx=-1; } }else{ if(_5e){ _5f=_c.parse(n.parentNode)[0]; this._expandos[_5e][tc]=_5f; } } if(_5f&&!_5f.setRowNode(_5b,_5d,this)){ _5f.domNode.parentNode.removeChild(_5f.domNode); } } },this); var alt=false; var _60=this; _b("tr[dojoxTreeGridPath]",_5d).forEach(function(n){ _8.toggle(n,"dojoxGridSubRowAlt",alt); _7.set(n,"dojoxTreeGridBaseClasses",n.className); alt=!alt; _60.grid.rows.styleRowNode(_7.get(n,"dojoxTreeGridPath"),n); }); this.inherited(arguments); },updateRowStyles:function(_61){ var _62=_b("tr[dojoxTreeGridPath='"+_61+"']",this.domNode); if(_62.length){ this.styleRowNode(_61,_62[0]); } },getCellNode:function(_63,_64){ var row=_b("tr[dojoxTreeGridPath='"+_63+"']",this.domNode)[0]; if(row){ return this.content.getCellNode(row,_64); } },destroy:function(){ this._cleanupExpandoCache(); this.inherited(arguments); }}); });