diff options
Diffstat (limited to 'js/dojo/dojox/dtl/Context.js')
| -rw-r--r-- | js/dojo/dojox/dtl/Context.js | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/js/dojo/dojox/dtl/Context.js b/js/dojo/dojox/dtl/Context.js new file mode 100644 index 0000000..b9de03b --- /dev/null +++ b/js/dojo/dojox/dtl/Context.js @@ -0,0 +1,89 @@ +//>>built +define("dojox/dtl/Context", [ + "dojo/_base/lang", + "./_base" +], function(lang,dd){ + /*===== + dd = dojox.dtl; + =====*/ + + /*===== + dd.Context = function(dict){ + // summary: Represents a runtime context used by DTL templates. + } + + =====*/ + dd.Context = lang.extend(function(dict){ + this._this = {}; + dd._Context.call(this, dict); + }, dd._Context.prototype, + { + getKeys: function(){ + // summary: Returns the set of keys exported by this context. + var keys = []; + for(var key in this){ + if(this.hasOwnProperty(key) && key != "_this"){ + keys.push(key); + } + } + return keys; + }, + extend: function(/*dojox.dtl.Context|Object*/ obj){ + // summary: Returns a clone of this context object, with the items from the + // passed objecct mixed in. + return lang.delegate(this, obj); + }, + 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 dd.Context(); + var keys = []; + var i, arg; + if(filter instanceof dd.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){ + // summary: Sets the object on which to perform operations. + // _this: the this ref. + this._this = _this; + }, + getThis: function(){ + // summary: Gets the object on which to perform operations. + return this._this; + }, + hasKey: function(/*String*/key){ + // summary: Indicates whether the specified key is defined on this context. + // key: The key to look up. + if(this._getter){ + var got = this._getter(key); + if(typeof got != "undefined"){ + return true; + } + } + + if(typeof this[key] != "undefined"){ + return true; + } + + return false; + } +}); +return dojox.dtl.Context; +});
\ No newline at end of file |
