12 lines
No EOL
1.3 KiB
JavaScript
12 lines
No EOL
1.3 KiB
JavaScript
/*
|
|
* YUI Extensions 0.33 RC2
|
|
* Copyright(c) 2006, Jack Slocum.
|
|
*/
|
|
|
|
|
|
YAHOO.ext.LayoutStateManager=function(layout){this.state={north:{},south:{},east:{},west:{}};};YAHOO.ext.LayoutStateManager.prototype={init:function(layout,provider){this.provider=provider;var state=provider.get(layout.id+'-layout-state');if(state){var wasUpdating=layout.isUpdating();if(!wasUpdating){layout.beginUpdate();}
|
|
for(var key in state){if(typeof state[key]!='function'){var rstate=state[key];var r=layout.getRegion(key);if(r&&rstate){if(rstate.size){r.resizeTo(rstate.size);}
|
|
if(rstate.collapsed==true){r.collapse(true);}else{r.expand(null,true);}}}}
|
|
if(!wasUpdating){layout.endUpdate();}
|
|
this.state=state;}
|
|
this.layout=layout;layout.on('regionresized',this.onRegionResized,this,true);layout.on('regioncollapsed',this.onRegionCollapsed,this,true);layout.on('regionexpanded',this.onRegionExpanded,this,true);},storeState:function(){this.provider.set(this.layout.id+'-layout-state',this.state);},onRegionResized:function(region,newSize){this.state[region.getPosition()].size=newSize;this.storeState();},onRegionCollapsed:function(region){this.state[region.getPosition()].collapsed=true;this.storeState();},onRegionExpanded:function(region){this.state[region.getPosition()].collapsed=false;this.storeState();}}; |