webui-aria2/js/libs/dojox/mvc/_patches.js.uncompressed.js
2012-05-01 19:52:07 +08:00

51 lines
1.8 KiB
JavaScript

//>>built
define("dojox/mvc/_patches", [
"dojo/_base/lang",
"dojo/_base/array",
"dijit/_WidgetBase",
"./_DataBindingMixin",
"dijit/form/ValidationTextBox",
"dijit/form/NumberTextBox"
], function(lang, array, wb, dbm, vtb, ntb){
/*=====
vtb = dijit.form.ValidationTextBox;
ntb = dijit.form.NumberTextBox;
dbm = dojox.mvc._DataBindingMixin;
wb = dijit._WidgetBase;
=====*/
//Apply the data binding mixin to all dijits, see mixin class description for details
lang.extend(wb, new dbm());
// monkey patch dijit._WidgetBase.startup to get data binds set up
var oldWidgetBaseStartup = wb.prototype.startup;
wb.prototype.startup = function(){
this._dbstartup();
oldWidgetBaseStartup.apply(this);
};
// monkey patch dijit._WidgetBase.destroy to remove watches setup in _DataBindingMixin
var oldWidgetBaseDestroy = wb.prototype.destroy;
wb.prototype.destroy = function(/*Boolean*/ preserveDom){
if(this._modelWatchHandles){
array.forEach(this._modelWatchHandles, function(h){ h.unwatch(); });
}
if(this._viewWatchHandles){
array.forEach(this._viewWatchHandles, function(h){ h.unwatch(); });
}
oldWidgetBaseDestroy.apply(this, [preserveDom]);
};
// monkey patch dijit.form.ValidationTextBox.isValid to check this.inherited for isValid
var oldValidationTextBoxIsValid = vtb.prototype.isValid;
vtb.prototype.isValid = function(/*Boolean*/ isFocused){
return (this.inherited("isValid", arguments) !== false && oldValidationTextBoxIsValid.apply(this, [isFocused]));
};
// monkey patch dijit.form.NumberTextBox.isValid to check this.inherited for isValid
var oldNumberTextBoxIsValid = ntb.prototype.isValid;
ntb.prototype.isValid = function(/*Boolean*/ isFocused){
return (this.inherited("isValid", arguments) !== false && oldNumberTextBoxIsValid.apply(this, [isFocused]));
};
});