Changeset 12033

Show
Ignore:
Timestamp:
01/14/08 21:08:05 (12 months ago)
Author:
peller
Message:

Persist splitter size. How's this look? Refs #5585

Location:
dijit/branches/newlayout
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • dijit/branches/newlayout/layout/BorderContainer.js

    r12024 r12033  
    22 
    33dojo.require("dijit.layout._LayoutWidget"); 
     4dojo.require("dojo.cookie"); 
    45 
    56dojo.experimental("dijit.layout.BorderContainer"); 
     
    4041        liveSplitters: true, 
    4142 
    42 //TODO: persist for splitters? 
     43        // persist: Number or Date 
     44        //              Save splitter positions in a cookie.  Persist is off (NaN) by default. 
     45        persist: new Date(""),  // NaN 
    4346 
    4447        postCreate: function(){ 
     
    311314                this.horizontal = /top|bottom/.test(this.region); 
    312315                dojo.addClass(this.domNode, "dijitSplitter" + (this.horizontal ? "Horizontal" : "Vertical")); 
     316//TODO: is this necessary?              dojo.addClass(this.container.domNode, "dijitSplitContainer"); 
    313317 
    314318                this._factor = /top|left/.test(this.region) ? 1 : -1; 
    315319                this._minSize = this.child.minSize; 
     320 
     321                this._cookieName = this.container.id + "_" + this.region; 
     322                if(!isNaN(this.container.persist)){ 
     323                        // restore old size 
     324                        var persistSize = dojo.cookie(this._cookieName); 
     325                        if(persistSize){ 
     326                                this.child.domNode.style[this.horizontal ? "height" : "width"] = persistSize; 
     327                        } 
     328                } 
    316329        }, 
    317330 
     
    362375                }finally{ 
    363376                        this._cleanupHandlers(); 
     377                } 
     378 
     379                var expires = this.container.persist; 
     380                if(!isNaN(expires)){ 
     381                        dojo.cookie(this._cookieName, this.child.domNode.style[this.horizontal ? "height" : "width"]/*this.domNode.style[this.region]*/, {expires: expires}); 
    364382                } 
    365383        }, 
  • dijit/branches/newlayout/tests/layout/test_BorderContainer.html

    r12031 r12033  
    8585 
    8686<br /> 
    87 <p>Sidebar layout, liveSplitters: false</p> 
     87<p>Sidebar layout, liveSplitters: false, persist: 1 day</p> 
    8888 
    89 <div dojoType="dijit.layout.BorderContainer" design="sidebar" liveSplitters="false" 
     89<div dojoType="dijit.layout.BorderContainer" design="sidebar" liveSplitters="false" persist="1" 
    9090        style="border: 20px solid black; width: 90%; height: 300px; padding: 10px;" 
    9191>