12345678 |
- /*
- 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.FloatingPane"]){dojo._hasResource["dojox.layout.FloatingPane"]=true;dojo.provide("dojox.layout.FloatingPane");dojo.experimental("dojox.layout.FloatingPane");dojo.require("dojox.layout.ContentPane");dojo.require("dijit._Templated");dojo.require("dijit._Widget");dojo.require("dojo.dnd.Moveable");dojo.require("dojox.layout.ResizeHandle");dojo.declare("dojox.layout.FloatingPane",[dojox.layout.ContentPane,dijit._Templated],{closable:true,dockable:true,resizable:false,maxable:false,resizeAxis:"xy",title:"",dockTo:"",duration:400,contentClass:"dojoxFloatingPaneContent",_showAnim:null,_hideAnim:null,_dockNode:null,_restoreState:{},_allFPs:[],_startZ:100,templateString:dojo.cache("dojox.layout","resources/FloatingPane.html","<div class=\"dojoxFloatingPane\" id=\"${id}\">\n\t<div tabindex=\"0\" waiRole=\"button\" class=\"dojoxFloatingPaneTitle\" dojoAttachPoint=\"focusNode\">\n\t\t<span dojoAttachPoint=\"closeNode\" dojoAttachEvent=\"onclick: close\" class=\"dojoxFloatingCloseIcon\"></span>\n\t\t<span dojoAttachPoint=\"maxNode\" dojoAttachEvent=\"onclick: maximize\" class=\"dojoxFloatingMaximizeIcon\"> </span>\n\t\t<span dojoAttachPoint=\"restoreNode\" dojoAttachEvent=\"onclick: _restore\" class=\"dojoxFloatingRestoreIcon\"> </span>\t\n\t\t<span dojoAttachPoint=\"dockNode\" dojoAttachEvent=\"onclick: minimize\" class=\"dojoxFloatingMinimizeIcon\"> </span>\n\t\t<span dojoAttachPoint=\"titleNode\" class=\"dijitInline dijitTitleNode\"></span>\n\t</div>\n\t<div dojoAttachPoint=\"canvas\" class=\"dojoxFloatingPaneCanvas\">\n\t\t<div dojoAttachPoint=\"containerNode\" waiRole=\"region\" tabindex=\"-1\" class=\"${contentClass}\">\n\t\t</div>\n\t\t<span dojoAttachPoint=\"resizeHandle\" class=\"dojoxFloatingResizeHandle\"></span>\n\t</div>\n</div>\n"),attributeMap:dojo.delegate(dijit._Widget.prototype.attributeMap,{title:{type:"innerHTML",node:"titleNode"}}),postCreate:function(){this.inherited(arguments);new dojo.dnd.Moveable(this.domNode,{handle:this.focusNode});if(!this.dockable){this.dockNode.style.display="none";}if(!this.closable){this.closeNode.style.display="none";}if(!this.maxable){this.maxNode.style.display="none";this.restoreNode.style.display="none";}if(!this.resizable){this.resizeHandle.style.display="none";}else{this.domNode.style.width=dojo.marginBox(this.domNode).w+"px";}this._allFPs.push(this);this.domNode.style.position="absolute";this.bgIframe=new dijit.BackgroundIframe(this.domNode);this._naturalState=dojo.coords(this.domNode);},startup:function(){if(this._started){return;}this.inherited(arguments);if(this.resizable){if(dojo.isIE){this.canvas.style.overflow="auto";}else{this.containerNode.style.overflow="auto";}this._resizeHandle=new dojox.layout.ResizeHandle({targetId:this.id,resizeAxis:this.resizeAxis},this.resizeHandle);}if(this.dockable){var _1=this.dockTo;if(this.dockTo){this.dockTo=dijit.byId(this.dockTo);}else{this.dockTo=dijit.byId("dojoxGlobalFloatingDock");}if(!this.dockTo){var _2,_3;if(_1){_2=_1;_3=dojo.byId(_1);}else{_3=dojo.create("div",null,dojo.body());dojo.addClass(_3,"dojoxFloatingDockDefault");_2="dojoxGlobalFloatingDock";}this.dockTo=new dojox.layout.Dock({id:_2,autoPosition:"south"},_3);this.dockTo.startup();}if((this.domNode.style.display=="none")||(this.domNode.style.visibility=="hidden")){this.minimize();}}this.connect(this.focusNode,"onmousedown","bringToTop");this.connect(this.domNode,"onmousedown","bringToTop");this.resize(dojo.coords(this.domNode));this._started=true;},setTitle:function(_4){dojo.deprecated("pane.setTitle","Use pane.attr('title', someTitle)","2.0");this.attr("title",_4);},close:function(){if(!this.closable){return;}dojo.unsubscribe(this._listener);this.hide(dojo.hitch(this,function(){this.destroyRecursive();}));},hide:function(_5){dojo.fadeOut({node:this.domNode,duration:this.duration,onEnd:dojo.hitch(this,function(){this.domNode.style.display="none";this.domNode.style.visibility="hidden";if(this.dockTo&&this.dockable){this.dockTo._positionDock(null);}if(_5){_5();}})}).play();},show:function(_6){var _7=dojo.fadeIn({node:this.domNode,duration:this.duration,beforeBegin:dojo.hitch(this,function(){this.domNode.style.display="";this.domNode.style.visibility="visible";if(this.dockTo&&this.dockable){this.dockTo._positionDock(null);}if(typeof _6=="function"){_6();}this._isDocked=false;if(this._dockNode){this._dockNode.destroy();this._dockNode=null;}})}).play();this.resize(dojo.coords(this.domNode));},minimize:function(){if(!this._isDocked){this.hide(dojo.hitch(this,"_dock"));}},maximize:function(){if(this._maximized){return;}this._naturalState=dojo.position(this.domNode);if(this._isDocked){this.show();setTimeout(dojo.hitch(this,"maximize"),this.duration);}dojo.addClass(this.focusNode,"floatingPaneMaximized");this.resize(dijit.getViewport());this._maximized=true;},_restore:function(){if(this._maximized){this.resize(this._naturalState);dojo.removeClass(this.focusNode,"floatingPaneMaximized");this._maximized=false;}},_dock:function(){if(!this._isDocked&&this.dockable){this._dockNode=this.dockTo.addNode(this);this._isDocked=true;}},resize:function(_8){_8=_8||this._naturalState;this._currentState=_8;var _9=this.domNode.style;if("t" in _8){_9.top=_8.t+"px";}if("l" in _8){_9.left=_8.l+"px";}_9.width=_8.w+"px";_9.height=_8.h+"px";var _a={l:0,t:0,w:_8.w,h:(_8.h-this.focusNode.offsetHeight)};dojo.marginBox(this.canvas,_a);this._checkIfSingleChild();if(this._singleChild&&this._singleChild.resize){this._singleChild.resize(_a);}},bringToTop:function(){var _b=dojo.filter(this._allFPs,function(i){return i!==this;},this);_b.sort(function(a,b){return a.domNode.style.zIndex-b.domNode.style.zIndex;});_b.push(this);dojo.forEach(_b,function(w,x){w.domNode.style.zIndex=this._startZ+(x*2);dojo.removeClass(w.domNode,"dojoxFloatingPaneFg");},this);dojo.addClass(this.domNode,"dojoxFloatingPaneFg");},destroy:function(){this._allFPs.splice(dojo.indexOf(this._allFPs,this),1);if(this._resizeHandle){this._resizeHandle.destroy();}this.inherited(arguments);}});dojo.declare("dojox.layout.Dock",[dijit._Widget,dijit._Templated],{templateString:"<div class=\"dojoxDock\"><ul dojoAttachPoint=\"containerNode\" class=\"dojoxDockList\"></ul></div>",_docked:[],_inPositioning:false,autoPosition:false,addNode:function(_c){var _d=dojo.create("li",null,this.containerNode),_e=new dojox.layout._DockNode({title:_c.title,paneRef:_c},_d);_e.startup();return _e;},startup:function(){if(this.id=="dojoxGlobalFloatingDock"||this.isFixedDock){this.connect(window,"onresize","_positionDock");this.connect(window,"onscroll","_positionDock");if(dojo.isIE){this.connect(this.domNode,"onresize","_positionDock");}}this._positionDock(null);this.inherited(arguments);},_positionDock:function(e){if(!this._inPositioning){if(this.autoPosition=="south"){setTimeout(dojo.hitch(this,function(){this._inPositiononing=true;var _f=dijit.getViewport();var s=this.domNode.style;s.left=_f.l+"px";s.width=(_f.w-2)+"px";s.top=(_f.h+_f.t)-this.domNode.offsetHeight+"px";this._inPositioning=false;}),125);}}}});dojo.declare("dojox.layout._DockNode",[dijit._Widget,dijit._Templated],{title:"",paneRef:null,templateString:"<li dojoAttachEvent=\"onclick: restore\" class=\"dojoxDockNode\">"+"<span dojoAttachPoint=\"restoreNode\" class=\"dojoxDockRestoreButton\" dojoAttachEvent=\"onclick: restore\"></span>"+"<span class=\"dojoxDockTitleNode\" dojoAttachPoint=\"titleNode\">${title}</span>"+"</li>",restore:function(){this.paneRef.show();this.paneRef.bringToTop();if(!this.paneRef.isLoaded){this.paneRef.refresh();}this.destroy();}});}
|