diff options
Diffstat (limited to 'includes/js/dojox/dtl/Context.js')
-rw-r--r-- | includes/js/dojox/dtl/Context.js | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/includes/js/dojox/dtl/Context.js b/includes/js/dojox/dtl/Context.js new file mode 100644 index 0000000..f608506 --- /dev/null +++ b/includes/js/dojox/dtl/Context.js @@ -0,0 +1,87 @@ +if(!dojo._hasResource["dojox.dtl.Context"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojox.dtl.Context"] = true; +dojo.provide("dojox.dtl.Context"); +dojo.require("dojox.dtl._base"); + +dojox.dtl.Context = dojo.extend(function(dict){ + this._this = {}; + dojox.dtl._Context.call(this, dict); +}, dojox.dtl._Context.prototype, +{ + extend: function(/*dojox.dtl.Context|Object*/ obj){ + // summary: Returns a clone of this context object, with the items from the + // passed objecct mixed in. + var context = new dojox.dtl.Context(); + var keys = this.getKeys(); + var i, key; + for(i = 0; key = keys[i]; i++){ + if(typeof obj[key] != "undefined"){ + context[key] = obj[key]; + }else{ + context[key] = this[key]; + } + } + + if(obj instanceof dojox.dtl.Context){ + keys = obj.getKeys(); + }else if(typeof obj == "object"){ + keys = []; + for(key in obj){ + keys.push(key); + } + } + + for(i = 0; key = keys[i]; i++){ + context[key] = obj[key]; + } + + return context; + }, + filter: function(/*dojox.dtl.Context|Object|String...*/ filter){ + // summary: Returns a clone of this context, only containing the items + // defined in the filter. + var context = new dojox.dtl.Context(); + var keys = []; + var i, arg; + if(filter instanceof dojox.dtl.Context){ + keys = filter.getKeys(); + }else if(typeof filter == "object"){ + for(var key in filter){ + keys.push(key); + } + }else{ + for(i = 0; arg = arguments[i]; i++){ + if(typeof arg == "string"){ + keys.push(arg); + } + } + } + + for(i = 0, key; key = keys[i]; i++){ + context[key] = this[key]; + } + + return context; + }, + setThis: function(/*Object*/ _this){ + this._this = _this; + }, + getThis: function(){ + return this._this; + }, + hasKey: function(key){ + if(typeof this[key] != "undefined"){ + return true; + } + + for(var i = 0, dict; dict = this._dicts[i]; i++){ + if(typeof dict[key] != "undefined"){ + return true; + } + } + + return false; + } +}); + +} |