75 lines
1.4 KiB
JavaScript
75 lines
1.4 KiB
JavaScript
//>>built
|
|
define("dojox/app/model",["dojo/_base/lang","dojo/Deferred","dojo/when"],function(_1,_2,_3){
|
|
return function(_4,_5,_6){
|
|
this.app=_6||_5;
|
|
this.defCount=0;
|
|
var _7={};
|
|
var _8=new _2();
|
|
if(_5.loadedModels){
|
|
_1.mixin(_7,_5.loadedModels);
|
|
}
|
|
if(_4){
|
|
for(var _9 in _4){
|
|
if(_9.charAt(0)!=="_"){
|
|
this.defCount++;
|
|
}
|
|
}
|
|
if(this.defCount==0){
|
|
return _7;
|
|
}
|
|
for(var _a in _4){
|
|
if(_a.charAt(0)!=="_"){
|
|
_b(_4,_a,_5,_8,_7);
|
|
}
|
|
}
|
|
return _8;
|
|
}else{
|
|
return _7;
|
|
}
|
|
};
|
|
function _b(_c,_d,_e,_f,_10){
|
|
var _11=_c[_d].params?_c[_d].params:{};
|
|
var def=new _2();
|
|
var _12=_c[_d].modelLoader?_c[_d].modelLoader:"dojox/app/utils/simpleModel";
|
|
require([_12],function(_13){
|
|
def.resolve(_13);
|
|
});
|
|
var _14=new _2();
|
|
return _3(def,_1.hitch(this,function(_15){
|
|
var _16;
|
|
try{
|
|
_16=_15(_c,_11,_d);
|
|
}
|
|
catch(ex){
|
|
console.warn("load model error in model.",ex);
|
|
_14.reject("load model error in model.",ex);
|
|
return _14.promise;
|
|
}
|
|
if(_16.then){
|
|
_3(_16,_1.hitch(this,function(_17){
|
|
_10[_d]=_17;
|
|
this.app.log("in app/model, for item=[",_d,"] loadedModels =",_10);
|
|
this.defCount--;
|
|
if(this.defCount==0){
|
|
_f.resolve(_10);
|
|
}
|
|
_14.resolve(_10);
|
|
return _10;
|
|
}),function(){
|
|
_14.reject("load model error in models.");
|
|
});
|
|
return _14;
|
|
}else{
|
|
_10[_d]=_16;
|
|
this.app.log("in app/model else path, for item=[",_d,"] loadedModels=",_10);
|
|
this.defCount--;
|
|
if(this.defCount==0){
|
|
_f.resolve(_10);
|
|
}
|
|
_14.resolve(_10);
|
|
return _10;
|
|
}
|
|
}));
|
|
};
|
|
});
|