88 lines
1.9 KiB
JavaScript
88 lines
1.9 KiB
JavaScript
|
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;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
}
|