From 81bea17aefb26859f825b9293c7c99192874806e Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Tue, 8 Nov 2011 20:40:44 +0400 Subject: upgrade Dojo to 1.6.1 --- lib/dijit/layout/SplitContainer.js | 913 +++++++++++++++++++++++-------------- 1 file changed, 577 insertions(+), 336 deletions(-) (limited to 'lib/dijit/layout/SplitContainer.js') diff --git a/lib/dijit/layout/SplitContainer.js b/lib/dijit/layout/SplitContainer.js index b0db3e465..cb18273e4 100644 --- a/lib/dijit/layout/SplitContainer.js +++ b/lib/dijit/layout/SplitContainer.js @@ -1,348 +1,589 @@ /* - Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Copyright (c) 2004-2011, 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["dijit.layout.SplitContainer"]){ -dojo._hasResource["dijit.layout.SplitContainer"]=true; +if(!dojo._hasResource["dijit.layout.SplitContainer"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.layout.SplitContainer"] = true; dojo.provide("dijit.layout.SplitContainer"); dojo.require("dojo.cookie"); dojo.require("dijit.layout._LayoutWidget"); -dojo.declare("dijit.layout.SplitContainer",dijit.layout._LayoutWidget,{constructor:function(){ -dojo.deprecated("dijit.layout.SplitContainer is deprecated","use BorderContainer with splitter instead",2); -},activeSizing:false,sizerWidth:7,orientation:"horizontal",persist:true,baseClass:"dijitSplitContainer",postMixInProperties:function(){ -this.inherited("postMixInProperties",arguments); -this.isHorizontal=(this.orientation=="horizontal"); -},postCreate:function(){ -this.inherited(arguments); -this.sizers=[]; -if(dojo.isMozilla){ -this.domNode.style.overflow="-moz-scrollbars-none"; -} -if(typeof this.sizerWidth=="object"){ -try{ -this.sizerWidth=parseInt(this.sizerWidth.toString()); -} -catch(e){ -this.sizerWidth=7; -} -} -var _1=dojo.doc.createElement("div"); -this.virtualSizer=_1; -_1.style.position="relative"; -_1.style.zIndex=10; -_1.className=this.isHorizontal?"dijitSplitContainerVirtualSizerH":"dijitSplitContainerVirtualSizerV"; -this.domNode.appendChild(_1); -dojo.setSelectable(_1,false); -},destroy:function(){ -delete this.virtualSizer; -dojo.forEach(this._ownconnects,dojo.disconnect); -this.inherited(arguments); -},startup:function(){ -if(this._started){ -return; -} -dojo.forEach(this.getChildren(),function(_2,i,_3){ -this._setupChild(_2); -if(i<_3.length-1){ -this._addSizer(); -} -},this); -if(this.persist){ -this._restoreState(); -} -this.inherited(arguments); -},_setupChild:function(_4){ -this.inherited(arguments); -_4.domNode.style.position="absolute"; -dojo.addClass(_4.domNode,"dijitSplitPane"); -},_onSizerMouseDown:function(e){ -if(e.target.id){ -for(var i=0;i1){ -this._addSizer(_a); -} -this.layout(); -} -},layout:function(){ -this.paneWidth=this._contentBox.w; -this.paneHeight=this._contentBox.h; -var _c=this.getChildren(); -if(!_c.length){ -return; -} -var _d=this.isHorizontal?this.paneWidth:this.paneHeight; -if(_c.length>1){ -_d-=this.sizerWidth*(_c.length-1); -} -var _e=0; -dojo.forEach(_c,function(_f){ -_e+=_f.sizeShare; -}); -var _10=_d/_e; -var _11=0; -dojo.forEach(_c.slice(0,_c.length-1),function(_12){ -var _13=Math.round(_10*_12.sizeShare); -_12.sizeActual=_13; -_11+=_13; -}); -_c[_c.length-1].sizeActual=_d-_11; -this._checkSizes(); -var pos=0; -var _14=_c[0].sizeActual; -this._movePanel(_c[0],pos,_14); -_c[0].position=pos; -pos+=_14; -if(!this.sizers){ -return; -} -dojo.some(_c.slice(1),function(_15,i){ -if(!this.sizers[i]){ -return true; -} -this._moveSlider(this.sizers[i],pos,this.sizerWidth); -this.sizers[i].position=pos; -pos+=this.sizerWidth; -_14=_15.sizeActual; -this._movePanel(_15,pos,_14); -_15.position=pos; -pos+=_14; -},this); -},_movePanel:function(_16,pos,_17){ -if(this.isHorizontal){ -_16.domNode.style.left=pos+"px"; -_16.domNode.style.top=0; -var box={w:_17,h:this.paneHeight}; -if(_16.resize){ -_16.resize(box); -}else{ -dojo.marginBox(_16.domNode,box); -} -}else{ -_16.domNode.style.left=0; -_16.domNode.style.top=pos+"px"; -var box={w:this.paneWidth,h:_17}; -if(_16.resize){ -_16.resize(box); -}else{ -dojo.marginBox(_16.domNode,box); -} -} -},_moveSlider:function(_18,pos,_19){ -if(this.isHorizontal){ -_18.style.left=pos+"px"; -_18.style.top=0; -dojo.marginBox(_18,{w:_19,h:this.paneHeight}); -}else{ -_18.style.left=0; -_18.style.top=pos+"px"; -dojo.marginBox(_18,{w:this.paneWidth,h:_19}); -} -},_growPane:function(_1a,_1b){ -if(_1a>0){ -if(_1b.sizeActual>_1b.sizeMin){ -if((_1b.sizeActual-_1b.sizeMin)>_1a){ -_1b.sizeActual=_1b.sizeActual-_1a; -_1a=0; -}else{ -_1a-=_1b.sizeActual-_1b.sizeMin; -_1b.sizeActual=_1b.sizeMin; -} -} -} -return _1a; -},_checkSizes:function(){ -var _1c=0; -var _1d=0; -var _1e=this.getChildren(); -dojo.forEach(_1e,function(_1f){ -_1d+=_1f.sizeActual; -_1c+=_1f.sizeMin; -}); -if(_1c<=_1d){ -var _20=0; -dojo.forEach(_1e,function(_21){ -if(_21.sizeActual<_21.sizeMin){ -_20+=_21.sizeMin-_21.sizeActual; -_21.sizeActual=_21.sizeMin; -} -}); -if(_20>0){ -var _22=this.isDraggingLeft?_1e.reverse():_1e; -dojo.forEach(_22,function(_23){ -_20=this._growPane(_20,_23); -},this); -} -}else{ -dojo.forEach(_1e,function(_24){ -_24.sizeActual=Math.round(_1d*(_24.sizeMin/_1c)); + + +// +// FIXME: make it prettier +// FIXME: active dragging upwards doesn't always shift other bars (direction calculation is wrong in this case) +// + + +dojo.declare("dijit.layout.SplitContainer", + dijit.layout._LayoutWidget, + { + // summary: + // Deprecated. Use `dijit.layout.BorderContainer` instead. + // description: + // A Container widget with sizing handles in-between each child. + // Contains multiple children widgets, all of which are displayed side by side + // (either horizontally or vertically); there's a bar between each of the children, + // and you can adjust the relative size of each child by dragging the bars. + // + // You must specify a size (width and height) for the SplitContainer. + // tags: + // deprecated + + constructor: function(){ + dojo.deprecated("dijit.layout.SplitContainer is deprecated", "use BorderContainer with splitter instead", 2.0); + }, + + // activeSizing: Boolean + // If true, the children's size changes as you drag the bar; + // otherwise, the sizes don't change until you drop the bar (by mouse-up) + activeSizing: false, + + // sizerWidth: Integer + // Size in pixels of the bar between each child + sizerWidth: 7, // FIXME: this should be a CSS attribute (at 7 because css wants it to be 7 until we fix to css) + + // orientation: String + // either 'horizontal' or vertical; indicates whether the children are + // arranged side-by-side or up/down. + orientation: 'horizontal', + + // persist: Boolean + // Save splitter positions in a cookie + persist: true, + + baseClass: "dijitSplitContainer", + + postMixInProperties: function(){ + this.inherited("postMixInProperties",arguments); + this.isHorizontal = (this.orientation == 'horizontal'); + }, + + postCreate: function(){ + this.inherited(arguments); + this.sizers = []; + + // overflow has to be explicitly hidden for splitContainers using gekko (trac #1435) + // to keep other combined css classes from inadvertantly making the overflow visible + if(dojo.isMozilla){ + this.domNode.style.overflow = '-moz-scrollbars-none'; // hidden doesn't work + } + + // create the fake dragger + if(typeof this.sizerWidth == "object"){ + try{ //FIXME: do this without a try/catch + this.sizerWidth = parseInt(this.sizerWidth.toString()); + }catch(e){ this.sizerWidth = 7; } + } + var sizer = dojo.doc.createElement('div'); + this.virtualSizer = sizer; + sizer.style.position = 'relative'; + + // #1681: work around the dreaded 'quirky percentages in IE' layout bug + // If the splitcontainer's dimensions are specified in percentages, it + // will be resized when the virtualsizer is displayed in _showSizingLine + // (typically expanding its bounds unnecessarily). This happens because + // we use position: relative for .dijitSplitContainer. + // The workaround: instead of changing the display style attribute, + // switch to changing the zIndex (bring to front/move to back) + + sizer.style.zIndex = 10; + sizer.className = this.isHorizontal ? 'dijitSplitContainerVirtualSizerH' : 'dijitSplitContainerVirtualSizerV'; + this.domNode.appendChild(sizer); + dojo.setSelectable(sizer, false); + }, + + destroy: function(){ + delete this.virtualSizer; + dojo.forEach(this._ownconnects, dojo.disconnect); + this.inherited(arguments); + }, + startup: function(){ + if(this._started){ return; } + + dojo.forEach(this.getChildren(), function(child, i, children){ + // attach the children and create the draggers + this._setupChild(child); + + if(i < children.length-1){ + this._addSizer(); + } + }, this); + + if(this.persist){ + this._restoreState(); + } + + this.inherited(arguments); + }, + + _setupChild: function(/*dijit._Widget*/ child){ + this.inherited(arguments); + child.domNode.style.position = "absolute"; + dojo.addClass(child.domNode, "dijitSplitPane"); + }, + + _onSizerMouseDown: function(e){ + if(e.target.id){ + for(var i=0;i 1){ + this._addSizer(insertIndex); + } + + // and then reposition (ie, shrink) every pane to make room for the new guy + this.layout(); + } + }, + + layout: function(){ + // summary: + // Do layout of panels + + // base class defines this._contentBox on initial creation and also + // on resize + this.paneWidth = this._contentBox.w; + this.paneHeight = this._contentBox.h; + + var children = this.getChildren(); + if(!children.length){ return; } + + // + // calculate space + // + + var space = this.isHorizontal ? this.paneWidth : this.paneHeight; + if(children.length > 1){ + space -= this.sizerWidth * (children.length - 1); + } + + // + // calculate total of SizeShare values + // + var outOf = 0; + dojo.forEach(children, function(child){ + outOf += child.sizeShare; + }); + + // + // work out actual pixels per sizeshare unit + // + var pixPerUnit = space / outOf; + + // + // set the SizeActual member of each pane + // + var totalSize = 0; + dojo.forEach(children.slice(0, children.length - 1), function(child){ + var size = Math.round(pixPerUnit * child.sizeShare); + child.sizeActual = size; + totalSize += size; + }); + + children[children.length-1].sizeActual = space - totalSize; + + // + // make sure the sizes are ok + // + this._checkSizes(); + + // + // now loop, positioning each pane and letting children resize themselves + // + + var pos = 0; + var size = children[0].sizeActual; + this._movePanel(children[0], pos, size); + children[0].position = pos; + pos += size; + + // if we don't have any sizers, our layout method hasn't been called yet + // so bail until we are called..TODO: REVISIT: need to change the startup + // algorithm to guaranteed the ordering of calls to layout method + if(!this.sizers){ + return; + } + + dojo.some(children.slice(1), function(child, i){ + // error-checking + if(!this.sizers[i]){ + return true; + } + // first we position the sizing handle before this pane + this._moveSlider(this.sizers[i], pos, this.sizerWidth); + this.sizers[i].position = pos; + pos += this.sizerWidth; + + size = child.sizeActual; + this._movePanel(child, pos, size); + child.position = pos; + pos += size; + }, this); + }, + + _movePanel: function(panel, pos, size){ + if(this.isHorizontal){ + panel.domNode.style.left = pos + 'px'; // TODO: resize() takes l and t parameters too, don't need to set manually + panel.domNode.style.top = 0; + var box = {w: size, h: this.paneHeight}; + if(panel.resize){ + panel.resize(box); + }else{ + dojo.marginBox(panel.domNode, box); + } + }else{ + panel.domNode.style.left = 0; // TODO: resize() takes l and t parameters too, don't need to set manually + panel.domNode.style.top = pos + 'px'; + var box = {w: this.paneWidth, h: size}; + if(panel.resize){ + panel.resize(box); + }else{ + dojo.marginBox(panel.domNode, box); + } + } + }, + + _moveSlider: function(slider, pos, size){ + if(this.isHorizontal){ + slider.style.left = pos + 'px'; + slider.style.top = 0; + dojo.marginBox(slider, { w: size, h: this.paneHeight }); + }else{ + slider.style.left = 0; + slider.style.top = pos + 'px'; + dojo.marginBox(slider, { w: this.paneWidth, h: size }); + } + }, + + _growPane: function(growth, pane){ + if(growth > 0){ + if(pane.sizeActual > pane.sizeMin){ + if((pane.sizeActual - pane.sizeMin) > growth){ + + // stick all the growth in this pane + pane.sizeActual = pane.sizeActual - growth; + growth = 0; + }else{ + // put as much growth in here as we can + growth -= pane.sizeActual - pane.sizeMin; + pane.sizeActual = pane.sizeMin; + } + } + } + return growth; + }, + + _checkSizes: function(){ + + var totalMinSize = 0; + var totalSize = 0; + var children = this.getChildren(); + + dojo.forEach(children, function(child){ + totalSize += child.sizeActual; + totalMinSize += child.sizeMin; + }); + + // only make adjustments if we have enough space for all the minimums + + if(totalMinSize <= totalSize){ + + var growth = 0; + + dojo.forEach(children, function(child){ + if(child.sizeActual < child.sizeMin){ + growth += child.sizeMin - child.sizeActual; + child.sizeActual = child.sizeMin; + } + }); + + if(growth > 0){ + var list = this.isDraggingLeft ? children.reverse() : children; + dojo.forEach(list, function(child){ + growth = this._growPane(growth, child); + }, this); + } + }else{ + dojo.forEach(children, function(child){ + child.sizeActual = Math.round(totalSize * (child.sizeMin / totalMinSize)); + }); + } + }, + + beginSizing: function(e, i){ + var children = this.getChildren(); + this.paneBefore = children[i]; + this.paneAfter = children[i+1]; + + this.isSizing = true; + this.sizingSplitter = this.sizers[i]; + + if(!this.cover){ + this.cover = dojo.create('div', { + style: { + position:'absolute', + zIndex:5, + top: 0, + left: 0, + width: "100%", + height: "100%" + } + }, this.domNode); + }else{ + this.cover.style.zIndex = 5; + } + this.sizingSplitter.style.zIndex = 6; + + // TODO: REVISIT - we want MARGIN_BOX and core hasn't exposed that yet (but can't we use it anyway if we pay attention? we do elsewhere.) + this.originPos = dojo.position(children[0].domNode, true); + if(this.isHorizontal){ + var client = e.layerX || e.offsetX || 0; + var screen = e.pageX; + this.originPos = this.originPos.x; + }else{ + var client = e.layerY || e.offsetY || 0; + var screen = e.pageY; + this.originPos = this.originPos.y; + } + this.startPoint = this.lastPoint = screen; + this.screenToClientOffset = screen - client; + this.dragOffset = this.lastPoint - this.paneBefore.sizeActual - this.originPos - this.paneBefore.position; + + if(!this.activeSizing){ + this._showSizingLine(); + } + + // + // attach mouse events + // + this._ownconnects = []; + this._ownconnects.push(dojo.connect(dojo.doc.documentElement, "onmousemove", this, "changeSizing")); + this._ownconnects.push(dojo.connect(dojo.doc.documentElement, "onmouseup", this, "endSizing")); + + dojo.stopEvent(e); + }, + + changeSizing: function(e){ + if(!this.isSizing){ return; } + this.lastPoint = this.isHorizontal ? e.pageX : e.pageY; + this.movePoint(); + if(this.activeSizing){ + this._updateSize(); + }else{ + this._moveSizingLine(); + } + dojo.stopEvent(e); + }, + + endSizing: function(e){ + if(!this.isSizing){ return; } + if(this.cover){ + this.cover.style.zIndex = -1; + } + if(!this.activeSizing){ + this._hideSizingLine(); + } + + this._updateSize(); + + this.isSizing = false; + + if(this.persist){ + this._saveState(this); + } + + dojo.forEach(this._ownconnects, dojo.disconnect); + }, + + movePoint: function(){ + + // make sure lastPoint is a legal point to drag to + var p = this.lastPoint - this.screenToClientOffset; + + var a = p - this.dragOffset; + a = this.legaliseSplitPoint(a); + p = a + this.dragOffset; + + this.lastPoint = p + this.screenToClientOffset; + }, + + legaliseSplitPoint: function(a){ + + a += this.sizingSplitter.position; + + this.isDraggingLeft = !!(a > 0); + + if(!this.activeSizing){ + var min = this.paneBefore.position + this.paneBefore.sizeMin; + if(a < min){ + a = min; + } + + var max = this.paneAfter.position + (this.paneAfter.sizeActual - (this.sizerWidth + this.paneAfter.sizeMin)); + if(a > max){ + a = max; + } + } + + a -= this.sizingSplitter.position; + + this._checkSizes(); + + return a; + }, + + _updateSize: function(){ + //FIXME: sometimes this.lastPoint is NaN + var pos = this.lastPoint - this.dragOffset - this.originPos; + + var start_region = this.paneBefore.position; + var end_region = this.paneAfter.position + this.paneAfter.sizeActual; + + this.paneBefore.sizeActual = pos - start_region; + this.paneAfter.position = pos + this.sizerWidth; + this.paneAfter.sizeActual = end_region - this.paneAfter.position; + + dojo.forEach(this.getChildren(), function(child){ + child.sizeShare = child.sizeActual; + }); + + if(this._started){ + this.layout(); + } + }, + + _showSizingLine: function(){ + + this._moveSizingLine(); + + dojo.marginBox(this.virtualSizer, + this.isHorizontal ? { w: this.sizerWidth, h: this.paneHeight } : { w: this.paneWidth, h: this.sizerWidth }); + + this.virtualSizer.style.display = 'block'; + }, + + _hideSizingLine: function(){ + this.virtualSizer.style.display = 'none'; + }, + + _moveSizingLine: function(){ + var pos = (this.lastPoint - this.startPoint) + this.sizingSplitter.position; + dojo.style(this.virtualSizer,(this.isHorizontal ? "left" : "top"),pos+"px"); + // this.virtualSizer.style[ this.isHorizontal ? "left" : "top" ] = pos + 'px'; // FIXME: remove this line if the previous is better + }, + + _getCookieName: function(i){ + return this.id + "_" + i; + }, + + _restoreState: function(){ + dojo.forEach(this.getChildren(), function(child, i){ + var cookieName = this._getCookieName(i); + var cookieValue = dojo.cookie(cookieName); + if(cookieValue){ + var pos = parseInt(cookieValue); + if(typeof pos == "number"){ + child.sizeShare = pos; + } + } + }, this); + }, + + _saveState: function(){ + if(!this.persist){ + return; + } + dojo.forEach(this.getChildren(), function(child, i){ + dojo.cookie(this._getCookieName(i), child.sizeShare, {expires:365}); + }, this); + } }); -} -},beginSizing:function(e,i){ -var _25=this.getChildren(); -this.paneBefore=_25[i]; -this.paneAfter=_25[i+1]; -this.isSizing=true; -this.sizingSplitter=this.sizers[i]; -if(!this.cover){ -this.cover=dojo.create("div",{style:{position:"absolute",zIndex:5,top:0,left:0,width:"100%",height:"100%"}},this.domNode); -}else{ -this.cover.style.zIndex=5; -} -this.sizingSplitter.style.zIndex=6; -this.originPos=dojo.position(_25[0].domNode,true); -if(this.isHorizontal){ -var _26=e.layerX||e.offsetX||0; -var _27=e.pageX; -this.originPos=this.originPos.x; -}else{ -var _26=e.layerY||e.offsetY||0; -var _27=e.pageY; -this.originPos=this.originPos.y; -} -this.startPoint=this.lastPoint=_27; -this.screenToClientOffset=_27-_26; -this.dragOffset=this.lastPoint-this.paneBefore.sizeActual-this.originPos-this.paneBefore.position; -if(!this.activeSizing){ -this._showSizingLine(); -} -this._ownconnects=[]; -this._ownconnects.push(dojo.connect(dojo.doc.documentElement,"onmousemove",this,"changeSizing")); -this._ownconnects.push(dojo.connect(dojo.doc.documentElement,"onmouseup",this,"endSizing")); -dojo.stopEvent(e); -},changeSizing:function(e){ -if(!this.isSizing){ -return; -} -this.lastPoint=this.isHorizontal?e.pageX:e.pageY; -this.movePoint(); -if(this.activeSizing){ -this._updateSize(); -}else{ -this._moveSizingLine(); -} -dojo.stopEvent(e); -},endSizing:function(e){ -if(!this.isSizing){ -return; -} -if(this.cover){ -this.cover.style.zIndex=-1; -} -if(!this.activeSizing){ -this._hideSizingLine(); -} -this._updateSize(); -this.isSizing=false; -if(this.persist){ -this._saveState(this); -} -dojo.forEach(this._ownconnects,dojo.disconnect); -},movePoint:function(){ -var p=this.lastPoint-this.screenToClientOffset; -var a=p-this.dragOffset; -a=this.legaliseSplitPoint(a); -p=a+this.dragOffset; -this.lastPoint=p+this.screenToClientOffset; -},legaliseSplitPoint:function(a){ -a+=this.sizingSplitter.position; -this.isDraggingLeft=!!(a>0); -if(!this.activeSizing){ -var min=this.paneBefore.position+this.paneBefore.sizeMin; -if(amax){ -a=max; -} -} -a-=this.sizingSplitter.position; -this._checkSizes(); -return a; -},_updateSize:function(){ -var pos=this.lastPoint-this.dragOffset-this.originPos; -var _28=this.paneBefore.position; -var _29=this.paneAfter.position+this.paneAfter.sizeActual; -this.paneBefore.sizeActual=pos-_28; -this.paneAfter.position=pos+this.sizerWidth; -this.paneAfter.sizeActual=_29-this.paneAfter.position; -dojo.forEach(this.getChildren(),function(_2a){ -_2a.sizeShare=_2a.sizeActual; + +// These arguments can be specified for the children of a SplitContainer. +// Since any widget can be specified as a SplitContainer child, mix them +// into the base widget class. (This is a hack, but it's effective.) +dojo.extend(dijit._Widget, { + // sizeMin: [deprecated] Integer + // Deprecated. Parameter for children of `dijit.layout.SplitContainer`. + // Minimum size (width or height) of a child of a SplitContainer. + // The value is relative to other children's sizeShare properties. + sizeMin: 10, + + // sizeShare: [deprecated] Integer + // Deprecated. Parameter for children of `dijit.layout.SplitContainer`. + // Size (width or height) of a child of a SplitContainer. + // The value is relative to other children's sizeShare properties. + // For example, if there are two children and each has sizeShare=10, then + // each takes up 50% of the available space. + sizeShare: 10 }); -if(this._started){ -this.layout(); -} -},_showSizingLine:function(){ -this._moveSizingLine(); -dojo.marginBox(this.virtualSizer,this.isHorizontal?{w:this.sizerWidth,h:this.paneHeight}:{w:this.paneWidth,h:this.sizerWidth}); -this.virtualSizer.style.display="block"; -},_hideSizingLine:function(){ -this.virtualSizer.style.display="none"; -},_moveSizingLine:function(){ -var pos=(this.lastPoint-this.startPoint)+this.sizingSplitter.position; -dojo.style(this.virtualSizer,(this.isHorizontal?"left":"top"),pos+"px"); -},_getCookieName:function(i){ -return this.id+"_"+i; -},_restoreState:function(){ -dojo.forEach(this.getChildren(),function(_2b,i){ -var _2c=this._getCookieName(i); -var _2d=dojo.cookie(_2c); -if(_2d){ -var pos=parseInt(_2d); -if(typeof pos=="number"){ -_2b.sizeShare=pos; -} -} -},this); -},_saveState:function(){ -if(!this.persist){ -return; -} -dojo.forEach(this.getChildren(),function(_2e,i){ -dojo.cookie(this._getCookieName(i),_2e.sizeShare,{expires:365}); -},this); -}}); -dojo.extend(dijit._Widget,{sizeMin:10,sizeShare:10}); + } -- cgit v1.2.3