X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=docs%2Fsrc%2FRoo_LayoutStateManager.js.html;fp=docs%2Fsrc%2FRoo_LayoutStateManager.js.html;h=c5566876bc6371cd00e8fda8d5ef49fa3f00ca34;hb=9ff8ded6bbbd258ecd646184ba26020874e2c085;hp=0000000000000000000000000000000000000000;hpb=2542b67d1a0768025056f2f330bfe50b64d1ad38;p=roojs1 diff --git a/docs/src/Roo_LayoutStateManager.js.html b/docs/src/Roo_LayoutStateManager.js.html new file mode 100644 index 0000000000..c5566876bc --- /dev/null +++ b/docs/src/Roo_LayoutStateManager.js.html @@ -0,0 +1,80 @@ +/home/alan/gitlive/roojs1/Roo/LayoutStateManager.js/* + * Based on: + * Ext JS Library 1.1.1 + * Copyright(c) 2006-2007, Ext JS, LLC. + * + * Originally Released Under LGPL - original licence link has changed is not relivant. + * + * Fork - LGPL + * <script type="text/javascript"> + */ + + +/* + * Private internal class for reading and applying state + */ +Roo.LayoutStateManager = function(layout){ + // default empty state + this.state = { + north: {}, + south: {}, + east: {}, + west: {} + }; +}; + +Roo.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); + layout.on("regioncollapsed", this.onRegionCollapsed, this); + layout.on("regionexpanded", this.onRegionExpanded, this); + }, + + 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(); + } +}; \ No newline at end of file