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.layout.ContentPane"]){dojo._hasResource["dijit.layout.ContentPane"]=true;dojo.provide("dijit.layout.ContentPane");dojo.require("dijit._Widget");dojo.require("dijit._Contained");dojo.require("dijit.layout._LayoutWidget");dojo.require("dojo.parser");dojo.require("dojo.string");dojo.require("dojo.html");dojo.requireLocalization("dijit","loading",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.layout.ContentPane",dijit._Widget,{href:"",extractContent:false,parseOnLoad:true,preventCache:false,preload:false,refreshOnShow:false,loadingMessage:"<span class='dijitContentPaneLoading'>${loadingState}</span>",errorMessage:"<span class='dijitContentPaneError'>${errorState}</span>",isLoaded:false,baseClass:"dijitContentPane",doLayout:true,ioArgs:{},isContainer:true,isLayoutContainer:true,onLoadDeferred:null,attributeMap:dojo.delegate(dijit._Widget.prototype.attributeMap,{title:[]}),postMixInProperties:function(){this.inherited(arguments);var _1=dojo.i18n.getLocalization("dijit","loading",this.lang);this.loadingMessage=dojo.string.substitute(this.loadingMessage,_1);this.errorMessage=dojo.string.substitute(this.errorMessage,_1);if(!this.href&&this.srcNodeRef&&this.srcNodeRef.innerHTML){this.isLoaded=true;}},buildRendering:function(){this.inherited(arguments);if(!this.containerNode){this.containerNode=this.domNode;}},postCreate:function(){this.domNode.title="";if(!dojo.attr(this.domNode,"role")){dijit.setWaiRole(this.domNode,"group");}dojo.addClass(this.domNode,this.baseClass);},startup:function(){if(this._started){return;}var _2=dijit._Contained.prototype.getParent.call(this);this._childOfLayoutWidget=_2&&_2.isLayoutContainer;this._needLayout=!this._childOfLayoutWidget;if(this.isLoaded){dojo.forEach(this.getChildren(),function(_3){_3.startup();});}if(this._isShown()||this.preload){this._onShow();}this.inherited(arguments);},_checkIfSingleChild:function(){var _4=dojo.query("> *",this.containerNode).filter(function(_5){return _5.tagName!=="SCRIPT";}),_6=_4.filter(function(_7){return dojo.hasAttr(_7,"dojoType")||dojo.hasAttr(_7,"widgetId");}),_8=dojo.filter(_6.map(dijit.byNode),function(_9){return _9&&_9.domNode&&_9.resize;});if(_4.length==_6.length&&_8.length==1){this._singleChild=_8[0];}else{delete this._singleChild;}dojo.toggleClass(this.containerNode,this.baseClass+"SingleChild",!!this._singleChild);},setHref:function(_a){dojo.deprecated("dijit.layout.ContentPane.setHref() is deprecated. Use attr('href', ...) instead.","","2.0");return this.attr("href",_a);},_setHrefAttr:function(_b){this.cancel();this.onLoadDeferred=new dojo.Deferred(dojo.hitch(this,"cancel"));this.href=_b;if(this._created&&(this.preload||this._isShown())){this._load();}else{this._hrefChanged=true;}return this.onLoadDeferred;},setContent:function(_c){dojo.deprecated("dijit.layout.ContentPane.setContent() is deprecated. Use attr('content', ...) instead.","","2.0");this.attr("content",_c);},_setContentAttr:function(_d){this.href="";this.cancel();this.onLoadDeferred=new dojo.Deferred(dojo.hitch(this,"cancel"));this._setContent(_d||"");this._isDownloaded=false;return this.onLoadDeferred;},_getContentAttr:function(){return this.containerNode.innerHTML;},cancel:function(){if(this._xhrDfd&&(this._xhrDfd.fired==-1)){this._xhrDfd.cancel();}delete this._xhrDfd;this.onLoadDeferred=null;},uninitialize:function(){if(this._beingDestroyed){this.cancel();}this.inherited(arguments);},destroyRecursive:function(_e){if(this._beingDestroyed){return;}this.inherited(arguments);},resize:function(_f,_10){if(!this._wasShown){this._onShow();}this._resizeCalled=true;if(_f){dojo.marginBox(this.domNode,_f);}var cn=this.containerNode;if(cn===this.domNode){var mb=_10||{};dojo.mixin(mb,_f||{});if(!("h" in mb)||!("w" in mb)){mb=dojo.mixin(dojo.marginBox(cn),mb);}this._contentBox=dijit.layout.marginBox2contentBox(cn,mb);}else{this._contentBox=dojo.contentBox(cn);}this._layoutChildren();},_isShown:function(){if(this._childOfLayoutWidget){if(this._resizeCalled&&"open" in this){return this.open;}return this._resizeCalled;}else{if("open" in this){return this.open;}else{var _11=this.domNode;return (_11.style.display!="none")&&(_11.style.visibility!="hidden")&&!dojo.hasClass(_11,"dijitHidden");}}},_onShow:function(){if(this.href){if(!this._xhrDfd&&(!this.isLoaded||this._hrefChanged||this.refreshOnShow)){this.refresh();}}else{if(!this._childOfLayoutWidget&&this._needLayout){this._layoutChildren();}}this.inherited(arguments);this._wasShown=true;},refresh:function(){this.cancel();this.onLoadDeferred=new dojo.Deferred(dojo.hitch(this,"cancel"));this._load();return this.onLoadDeferred;},_load:function(){this._setContent(this.onDownloadStart(),true);var _12=this;var _13={preventCache:(this.preventCache||this.refreshOnShow),url:this.href,handleAs:"text"};if(dojo.isObject(this.ioArgs)){dojo.mixin(_13,this.ioArgs);}var _14=(this._xhrDfd=(this.ioMethod||dojo.xhrGet)(_13));_14.addCallback(function(_15){try{_12._isDownloaded=true;_12._setContent(_15,false);_12.onDownloadEnd();}catch(err){_12._onError("Content",err);}delete _12._xhrDfd;return _15;});_14.addErrback(function(err){if(!_14.canceled){_12._onError("Download",err);}delete _12._xhrDfd;return err;});delete this._hrefChanged;},_onLoadHandler:function(_16){this.isLoaded=true;try{this.onLoadDeferred.callback(_16);this.onLoad(_16);}catch(e){console.error("Error "+this.widgetId+" running custom onLoad code: "+e.message);}},_onUnloadHandler:function(){this.isLoaded=false;try{this.onUnload();}catch(e){console.error("Error "+this.widgetId+" running custom onUnload code: "+e.message);}},destroyDescendants:function(){if(this.isLoaded){this._onUnloadHandler();}var _17=this._contentSetter;dojo.forEach(this.getChildren(),function(_18){if(_18.destroyRecursive){_18.destroyRecursive();}});if(_17){dojo.forEach(_17.parseResults,function(_19){if(_19.destroyRecursive&&_19.domNode&&_19.domNode.parentNode==dojo.body()){_19.destroyRecursive();}});delete _17.parseResults;}dojo.html._emptyNode(this.containerNode);delete this._singleChild;},_setContent:function(_1a,_1b){this.destroyDescendants();var _1c=this._contentSetter;if(!(_1c&&_1c instanceof dojo.html._ContentSetter)){_1c=this._contentSetter=new dojo.html._ContentSetter({node:this.containerNode,_onError:dojo.hitch(this,this._onError),onContentError:dojo.hitch(this,function(e){var _1d=this.onContentError(e);try{this.containerNode.innerHTML=_1d;}catch(e){console.error("Fatal "+this.id+" could not change content due to "+e.message,e);}})});}var _1e=dojo.mixin({cleanContent:this.cleanContent,extractContent:this.extractContent,parseContent:this.parseOnLoad},this._contentSetterParams||{});dojo.mixin(_1c,_1e);_1c.set((dojo.isObject(_1a)&&_1a.domNode)?_1a.domNode:_1a);delete this._contentSetterParams;if(!_1b){dojo.forEach(this.getChildren(),function(_1f){if(!this.parseOnLoad||_1f.getParent){_1f.startup();}},this);this._scheduleLayout();this._onLoadHandler(_1a);}},_onError:function(_20,err,_21){this.onLoadDeferred.errback(err);var _22=this["on"+_20+"Error"].call(this,err);if(_21){console.error(_21,err);}else{if(_22){this._setContent(_22,true);}}},_scheduleLayout:function(){if(this._isShown()){this._layoutChildren();}else{this._needLayout=true;}},_layoutChildren:function(){if(this.doLayout){this._checkIfSingleChild();}if(this._singleChild&&this._singleChild.resize){var cb=this._contentBox||dojo.contentBox(this.containerNode);this._singleChild.resize({w:cb.w,h:cb.h});}else{dojo.forEach(this.getChildren(),function(_23){if(_23.resize){_23.resize();}});}delete this._needLayout;},onLoad:function(_24){},onUnload:function(){},onDownloadStart:function(){return this.loadingMessage;},onContentError:function(_25){},onDownloadError:function(_26){return this.errorMessage;},onDownloadEnd:function(){}});}
|