/*
Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
if(!dojo._hasResource["dojox.layout.GridContainer"]){dojo._hasResource["dojox.layout.GridContainer"]=true;dojo.provide("dojox.layout.GridContainer");dojo.experimental("dojox.layout.GridContainer");dojo.require("dijit._base.focus");dojo.require("dijit._Templated");dojo.require("dijit._Container");dojo.require("dijit._Contained");dojo.require("dojo.dnd.move");dojo.require("dojox.layout.dnd.PlottedDnd");dojo.declare("dojox.layout.GridContainer",[dijit._Widget,dijit._Templated,dijit._Container,dijit._Contained],{templateString:dojo.cache("dojox.layout","resources/GridContainer.html","
\n"),isContainer:true,isAutoOrganized:true,isRightFixed:false,isLeftFixed:false,hasResizableColumns:true,nbZones:1,opacity:1,colWidths:[],minColWidth:20,minChildWidth:150,acceptTypes:[],mode:"right",allowAutoScroll:false,timeDisplayPopup:1500,isOffset:false,offsetDrag:{},withHandles:false,handleClasses:[],_draggedWidget:null,_isResized:false,_activeGrip:null,_a11yOn:false,_canDisplayPopup:true,constructor:function(_1,_2){_1=_1||{};this.acceptTypes=_1.acceptTypes||["dijit.layout.ContentPane"];this.offsetDrag=_1.offsetDrag||_1.dragOffset||{x:0,y:0};},postCreate:function(){this.inherited(arguments);if(this.nbZones===0){this.nbZones=1;}if(dojo.isIE&&dojo.marginBox(this.gridNode).height){var _3=document.createTextNode(" ");this.gridNode.appendChild(_3);}for(var i=0;i [widgetId]",this.containerNode).map(dijit.byNode);},getChildren:function(){var _7=dojo.query(".gridContainerZone > [widgetId]",this.containerNode).map(dijit.byNode);return _7;},onResized:function(){if(this.hasResizableColumns){this._placeGrips();}},_organizeServices:function(){var _8=this.nbZones,_9=this.getNewChildren(),_a=_9.length,_b=Math.floor(_a/_8),_c=_a%_8,i=0;for(var z=0;z<_8;z++){for(var r=0;r<_b;r++){this._insertService(z,i,_9[i],true);i++;}if(_c>0){try{this._insertService(z,i,_9[i],true);i++;}catch(e){console.error("Unable to insert service in grid container",e,_9);}_c--;}else{if(_b===0){break;}}}},_organizeServicesManually:function(){var _d=this.getNewChildren();for(var i=0;i<_d.length;i++){try{this._insertService(_d[i].column-1,i,_d[i],true);}catch(e){console.error("Unable to insert service in grid container",e,_d[i]);}}},_insertService:function(z,p,_e,_f){if(_e===undefined){return;}var _10=this.getZones()[z];var _11=_10.childNodes.length;if(p===undefined||p>_11){p=_11;}var _12=dojo.place(_e.domNode,_10,p);_e.domNode.setAttribute("tabIndex",0);if(!_e.dragRestriction){dojo.addClass(_e.domNode,"dojoDndItem");}if(!_e.domNode.getAttribute("dndType")){_e.domNode.setAttribute("dndType",_e.declaredClass);}dojox.layout.dnd._setGcDndHandle(_e,this.withHandles,this.handleClasses,_f);if(this.hasResizableColumns){if(_e.onLoad){this.connect(_e,"onLoad","_placeGrips");}if(_e.onExecError){this.connect(_e,"onExecError","_placeGrips");}if(_e.onUnLoad){this.connect(_e,"onUnLoad","_placeGrips");}}this._placeGrips();return _e.id;},addService:function(_13,z,p){return this.addChild(_13,z,p);},addChild:function(_14,z,p){_14.domNode.id=_14.id;if(z<=0){z=0;}var _15=z||0;if(p<=0){p=0;}var row=p||0;var _16=this._insertService(_15,row,_14);if(this._started&&!_14._started){this.grid[z].setItem(_14.id,{data:_14.domNode,type:[_14.domNode.getAttribute("dndType")]});_14.startup();}return _16;},_createGrid:function(){var _17=[];var i=0;while(i=0&&nthis.currentMinCol){this.currentMinCol=_32;}if(_32>this.nextMinCol){this.nextMinCol=_32;}if(this._a11yOn){this.connectResizeColumnMove=this.connect(dojo.doc,"onkeypress","resizeColumnMove");}else{this.connectResizeColumnMove=this.connect(dojo.doc,"onmousemove","resizeColumnMove");this.connectResizeColumnOff=this.connect(document,"onmouseup","resizeColumnOff");}}},resizeColumnMove:function(e){var d=0;if(this._a11yOn){var k=dojo.keys;switch(e.keyCode){case k.LEFT_ARROW:d=-10;break;case k.RIGHT_ARROW:d=10;break;}}else{e.preventDefault();d=e.pageX-this.initX;}if(d==0){return;}if(!(this.currentColumnWidth+d0){var _3a=this.grid.length-_38;if(_3a>0){var _3b=[];var _3c,end,z,_3d,j;if(this.mode=="right"){end=(this.isLeftFixed&&this.grid.length>0)?1:0;_3c=this.grid.length-(this.isRightFixed?2:1);for(z=_3c;z>=end;z--){_3d=0;_39=this.grid[z].node;for(j=0;j<_39.childNodes.length;j++){if(_39.childNodes[j].nodeType==1&&!(_39.childNodes[j].id=="")){_3d++;break;}}if(_3d==0){_3b[_3b.length]=z;}if(_3b.length>=_3a){this._deleteColumn(_3b);break;}}if(_3b.length<_3a){console.error("Move boxes in first columns, in all tabs before changing the organization of the page");}}else{_3c=(this.isLeftFixed&&this.grid.length>0)?1:0;end=this.grid.length;if(this.isRightFixed){end--;}for(z=_3c;z=_3a){this._deleteColumn(_3b);break;}}if(_3b.length<_3a){console.warn("Move boxes in last columns, in all tabs before changing the organization of the page");}}}else{if(_3a<0){this._addColumn(Math.abs(_3a));}}this._initPlaceGrips();this._placeGrips();}},_addColumn:function(_3e){var _3f;if(this.hasResizableColumns&&!this.isRightFixed&&this.mode=="right"){_3f=this.grid[this.grid.length-1];this._createGrip(_3f);}for(var i=0;i<_3e;i++){_3f=dojo.doc.createElement("td");dojo.addClass(_3f,"gridContainerZone");_3f.id=this.id+"_dz"+this.nbZones;var dz;if(this.mode=="right"){if(this.isRightFixed){this.grid[this.grid.length-1].node.parentNode.insertBefore(_3f,this.grid[this.grid.length-1].node);dz=this._createZone(_3f);this.grid.splice(this.grid.length-1,0,dz);}else{var _40=this.gridNode.appendChild(_3f);dz=this._createZone(_3f);this.grid.push(dz);}}else{if(this.isLeftFixed){(this.grid.length==1)?this.grid[0].node.parentNode.appendChild(_3f,this.grid[0].node):this.grid[1].node.parentNode.insertBefore(_3f,this.grid[1].node);dz=this._createZone(_3f);this.grid.splice(1,0,dz);}else{this.grid[this.grid.length-this.nbZones].node.parentNode.insertBefore(_3f,this.grid[this.grid.length-this.nbZones].node);dz=this._createZone(_3f);this.grid.splice(this.grid.length-this.nbZones,0,dz);}}if(this.hasResizableColumns){var _41=this;var _42=dojo.connect(dz,"onDndStart",dz,function(_43){if(_43==this){_41.handleDndInsertNodes=[];for(var o=0;o<_41.grid.length;o++){_41.handleDndInsertNodes.push(dojo.connect(_41.grid[o],"insertNodes",_41,function(){_41._disconnectDnd();}));}_41.handleDndInsertNodes.push(dojo.connect(dz,"onDndCancel",_41,_41._disconnectDnd));_41.onResized();}});if(this.mode=="right"){if(this.isRightFixed){this.handleDndStart.splice(this.handleDndStart.length-1,0,_42);}else{this.handleDndStart.push(_42);}}else{if(this.isLeftFixed){this.handleDndStart.splice(1,0,_42);}else{this.handleDndStart.splice(this.handleDndStart.length-this.nbZones,0,_42);}}this._createGrip(dz);}this.nbZones++;}this._updateColumnsWidth();},_deleteColumn:function(_44){var _45,_46,_47;_47=0;for(var i=0;i<_44.length;i++){var idx=_44[i];if(this.mode=="right"){_45=this.grid[idx];}else{_45=this.grid[idx-_47];}for(var j=0;j<_45.node.childNodes.length;j++){if(_45.node.childNodes[j].nodeType!=1){continue;}_46=dijit.byId(_45.node.childNodes[j].id);for(var x=0;x=0;i--){_4c=this.gridNode.childNodes[i].lastChild;_4f=false;while(!_4f){if(_4c!=null){if(_4c.style.display!=="none"){dijit.focus(_4c);dojo.stopEvent(_4b);_4f=true;}else{_4c=_4c[pos];}}else{break;}}if(_4f){break;}}break;}}else{if(_4e.parentNode.parentNode==this.gridNode){switch(e){case k.UP_ARROW:case k.DOWN_ARROW:dojo.stopEvent(_4b);var _53=0;dojo.forEach(_4e.parentNode.childNodes,function(_54){if(_54.style.display!=="none"){_53++;}});if(_53==1){return;}_4f=false;_4c=_4e[pos];while(!_4f){if(_4c==null){_4c=_4e.parentNode[_52];if(_4c.style.display!=="none"){_4f=true;}else{_4c=_4c[pos];}}else{if(_4c.style.display!=="none"){_4f=true;}else{_4c=_4c[pos];}}}if(_4b.shiftKey){if(dijit.byNode(_4e).dragRestriction){return;}_51=_4e.getAttribute("dndtype");_50=false;for(i=0;i