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["dijit.Dialog"]){dojo._hasResource["dijit.Dialog"]=true;dojo.provide("dijit.Dialog");dojo.require("dojo.dnd.move");dojo.require("dojo.dnd.TimedMoveable");dojo.require("dojo.fx");dojo.require("dijit._Widget");dojo.require("dijit._Templated");dojo.require("dijit.form._FormMixin");dojo.require("dijit._DialogMixin");dojo.require("dijit.DialogUnderlay");dojo.require("dijit.layout.ContentPane");dojo.requireLocalization("dijit","common",null,"ROOT,ar,ca,cs,da,de,el,es,fi,fr,he,hu,it,ja,ko,nb,nl,pl,pt,pt-pt,ru,sk,sl,sv,th,tr,zh,zh-tw");dojo.declare("dijit._DialogBase",[dijit._Templated,dijit.form._FormMixin,dijit._DialogMixin],{templateString:dojo.cache("dijit","templates/Dialog.html","<div class=\"dijitDialog\" tabindex=\"-1\" waiRole=\"dialog\" waiState=\"labelledby-${id}_title\">\n\t<div dojoAttachPoint=\"titleBar\" class=\"dijitDialogTitleBar\">\n\t<span dojoAttachPoint=\"titleNode\" class=\"dijitDialogTitle\" id=\"${id}_title\"></span>\n\t<span dojoAttachPoint=\"closeButtonNode\" class=\"dijitDialogCloseIcon\" dojoAttachEvent=\"onclick: onCancel, onmouseenter: _onCloseEnter, onmouseleave: _onCloseLeave\" title=\"${buttonCancel}\">\n\t\t<span dojoAttachPoint=\"closeText\" class=\"closeText\" title=\"${buttonCancel}\">x</span>\n\t</span>\n\t</div>\n\t\t<div dojoAttachPoint=\"containerNode\" class=\"dijitDialogPaneContent\"></div>\n</div>\n"),attributeMap:dojo.delegate(dijit._Widget.prototype.attributeMap,{title:[{node:"titleNode",type:"innerHTML"},{node:"titleBar",type:"attribute"}],"aria-describedby":""}),open:false,duration:dijit.defaultDuration,refocus:true,autofocus:true,_firstFocusItem:null,_lastFocusItem:null,doLayout:false,draggable:true,"aria-describedby":"",postMixInProperties:function(){var _1=dojo.i18n.getLocalization("dijit","common");dojo.mixin(this,_1);this.inherited(arguments);},postCreate:function(){dojo.style(this.domNode,{display:"none",position:"absolute"});dojo.body().appendChild(this.domNode);this.inherited(arguments);this.connect(this,"onExecute","hide");this.connect(this,"onCancel","hide");this._modalconnects=[];},onLoad:function(){this._position();this.inherited(arguments);},_endDrag:function(e){if(e&&e.node&&e.node===this.domNode){this._relativePosition=dojo.position(e.node);}},_setup:function(){var _2=this.domNode;if(this.titleBar&&this.draggable){this._moveable=(dojo.isIE==6)?new dojo.dnd.TimedMoveable(_2,{handle:this.titleBar}):new dojo.dnd.Moveable(_2,{handle:this.titleBar,timeout:0});dojo.subscribe("/dnd/move/stop",this,"_endDrag");}else{dojo.addClass(_2,"dijitDialogFixed");}this.underlayAttrs={dialogId:this.id,"class":dojo.map(this["class"].split(/\s/),function(s){return s+"_underlay";}).join(" ")};this._fadeIn=dojo.fadeIn({node:_2,duration:this.duration,beforeBegin:dojo.hitch(this,function(){var _3=dijit._underlay;if(!_3){_3=dijit._underlay=new dijit.DialogUnderlay(this.underlayAttrs);}else{_3.attr(this.underlayAttrs);}var _4=948+dijit._dialogStack.length*2;dojo.style(dijit._underlay.domNode,"zIndex",_4);dojo.style(this.domNode,"zIndex",_4+1);_3.show();}),onEnd:dojo.hitch(this,function(){if(this.autofocus){this._getFocusItems(this.domNode);dijit.focus(this._firstFocusItem);}})});this._fadeOut=dojo.fadeOut({node:_2,duration:this.duration,onEnd:dojo.hitch(this,function(){_2.style.display="none";var ds=dijit._dialogStack;if(ds.length==0){dijit._underlay.hide();}else{dojo.style(dijit._underlay.domNode,"zIndex",948+ds.length*2);dijit._underlay.attr(ds[ds.length-1].underlayAttrs);}if(this.refocus){var _5=this._savedFocus;if(ds.length>0){var pd=ds[ds.length-1];if(!dojo.isDescendant(_5.node,pd.domNode)){pd._getFocusItems(pd.domNode);_5=pd._firstFocusItem;}}dijit.focus(_5);}})});},uninitialize:function(){var _6=false;if(this._fadeIn&&this._fadeIn.status()=="playing"){_6=true;this._fadeIn.stop();}if(this._fadeOut&&this._fadeOut.status()=="playing"){_6=true;this._fadeOut.stop();}if((this.open||_6)&&!dijit._underlay._destroyed){dijit._underlay.hide();}if(this._moveable){this._moveable.destroy();}this.inherited(arguments);},_size:function(){this._checkIfSingleChild();if(this._singleChild){if(this._singleChildOriginalStyle){this._singleChild.domNode.style.cssText=this._singleChildOriginalStyle;}delete this._singleChildOriginalStyle;}else{dojo.style(this.containerNode,{width:"auto",height:"auto"});}var mb=dojo.marginBox(this.domNode);var _7=dijit.getViewport();if(mb.w>=_7.w||mb.h>=_7.h){var w=Math.min(mb.w,Math.floor(_7.w*0.75)),h=Math.min(mb.h,Math.floor(_7.h*0.75));if(this._singleChild&&this._singleChild.resize){this._singleChildOriginalStyle=this._singleChild.domNode.style.cssText;this._singleChild.resize({w:w,h:h});}else{dojo.style(this.containerNode,{width:w+"px",height:h+"px",overflow:"auto",position:"relative"});}}else{if(this._singleChild&&this._singleChild.resize){this._singleChild.resize();}}},_position:function(){if(!dojo.hasClass(dojo.body(),"dojoMove")){var _8=this.domNode,_9=dijit.getViewport(),p=this._relativePosition,bb=p?null:dojo._getBorderBox(_8),l=Math.floor(_9.l+(p?p.x:(_9.w-bb.w)/2)),t=Math.floor(_9.t+(p?p.y:(_9.h-bb.h)/2));dojo.style(_8,{left:l+"px",top:t+"px"});}},_onKey:function(_a){var ds=dijit._dialogStack;if(ds[ds.length-1]!=this){return;}if(_a.charOrCode){var dk=dojo.keys;var _b=_a.target;if(_a.charOrCode===dk.TAB){this._getFocusItems(this.domNode);}var _c=(this._firstFocusItem==this._lastFocusItem);if(_b==this._firstFocusItem&&_a.shiftKey&&_a.charOrCode===dk.TAB){if(!_c){dijit.focus(this._lastFocusItem);}dojo.stopEvent(_a);}else{if(_b==this._lastFocusItem&&_a.charOrCode===dk.TAB&&!_a.shiftKey){if(!_c){dijit.focus(this._firstFocusItem);}dojo.stopEvent(_a);}else{while(_b){if(_b==this.domNode||dojo.hasClass(_b,"dijitPopup")){if(_a.charOrCode==dk.ESCAPE){this.onCancel();}else{return;}}_b=_b.parentNode;}if(_a.charOrCode!==dk.TAB){dojo.stopEvent(_a);}else{if(!dojo.isOpera){try{this._firstFocusItem.focus();}catch(e){}}}}}}},show:function(){if(this.open){return;}if(!this._alreadyInitialized){this._setup();this._alreadyInitialized=true;}if(this._fadeOut.status()=="playing"){this._fadeOut.stop();}this._modalconnects.push(dojo.connect(window,"onscroll",this,"layout"));this._modalconnects.push(dojo.connect(window,"onresize",this,function(){var _d=dijit.getViewport();if(!this._oldViewport||_d.h!=this._oldViewport.h||_d.w!=this._oldViewport.w){this.layout();this._oldViewport=_d;}}));this._modalconnects.push(dojo.connect(dojo.doc.documentElement,"onkeypress",this,"_onKey"));dojo.style(this.domNode,{opacity:0,display:""});this.open=true;this._onShow();this._size();this._position();dijit._dialogStack.push(this);this._fadeIn.play();this._savedFocus=dijit.getFocus(this);},hide:function(){var ds=dijit._dialogStack;if(!this._alreadyInitialized||this!=ds[ds.length-1]){return;}if(this._fadeIn.status()=="playing"){this._fadeIn.stop();}ds.pop();this._fadeOut.play();if(this._scrollConnected){this._scrollConnected=false;}dojo.forEach(this._modalconnects,dojo.disconnect);this._modalconnects=[];if(this._relativePosition){delete this._relativePosition;}this.open=false;this.onHide();},layout:function(){if(this.domNode.style.display!="none"){if(dijit._underlay){dijit._underlay.layout();}this._position();}},destroy:function(){dojo.forEach(this._modalconnects,dojo.disconnect);if(this.refocus&&this.open){setTimeout(dojo.hitch(dijit,"focus",this._savedFocus),25);}this.inherited(arguments);},_onCloseEnter:function(){dojo.addClass(this.closeButtonNode,"dijitDialogCloseIcon-hover");},_onCloseLeave:function(){dojo.removeClass(this.closeButtonNode,"dijitDialogCloseIcon-hover");}});dojo.declare("dijit.Dialog",[dijit.layout.ContentPane,dijit._DialogBase],{});dijit._dialogStack=[];dojo.require("dijit.TooltipDialog");}
|