]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - include/javascript/yui3/build/plugin/plugin.js
Release 6.5.0
[Github/sugarcrm.git] / include / javascript / yui3 / build / plugin / plugin.js
1 /*
2  Copyright (c) 2010, Yahoo! Inc. All rights reserved.
3  Code licensed under the BSD License:
4  http://developer.yahoo.com/yui/license.html
5  version: 3.3.0
6  build: 3167
7  */
8 YUI.add('plugin',function(Y){function Plugin(config){if(!(this.hasImpl&&this.hasImpl(Y.Plugin.Base))){Plugin.superclass.constructor.apply(this,arguments);}else{Plugin.prototype.initializer.apply(this,arguments);}}
9 Plugin.ATTRS={host:{writeOnce:true}};Plugin.NAME='plugin';Plugin.NS='plugin';Y.extend(Plugin,Y.Base,{_handles:null,initializer:function(config){this._handles=[];},destructor:function(){if(this._handles){for(var i=0,l=this._handles.length;i<l;i++){this._handles[i].detach();}}},doBefore:function(strMethod,fn,context){var host=this.get("host"),handle;if(strMethod in host){handle=this.beforeHostMethod(strMethod,fn,context);}else if(host.on){handle=this.onHostEvent(strMethod,fn,context);}
10 return handle;},doAfter:function(strMethod,fn,context){var host=this.get("host"),handle;if(strMethod in host){handle=this.afterHostMethod(strMethod,fn,context);}else if(host.after){handle=this.afterHostEvent(strMethod,fn,context);}
11 return handle;},onHostEvent:function(type,fn,context){var handle=this.get("host").on(type,fn,context||this);this._handles.push(handle);return handle;},afterHostEvent:function(type,fn,context){var handle=this.get("host").after(type,fn,context||this);this._handles.push(handle);return handle;},beforeHostMethod:function(strMethod,fn,context){var handle=Y.Do.before(fn,this.get("host"),strMethod,context||this);this._handles.push(handle);return handle;},afterHostMethod:function(strMethod,fn,context){var handle=Y.Do.after(fn,this.get("host"),strMethod,context||this);this._handles.push(handle);return handle;},toString:function(){return this.constructor.NAME+'['+this.constructor.NS+']';}});Y.namespace("Plugin").Base=Plugin;},'3.3.0',{requires:['base-base']});