MECHandlerPool_wev8.js
2.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
var MECHandlerPool = [];
MECHandlerPool.initHandler = function(mecJsonArr, loadedFn){
var c = mecJsonArr.length;
function runLoadedFn(){
if(typeof(loadedFn) == "function"){
loadedFn.call(this);
}
}
if(c == 0){
runLoadedFn();
}else{
$("#content_editor_wrap").css("visibility", "hidden");
$("#editor_resource_loading").show();
for(var i = 0; i < mecJsonArr.length; i++){
var mecJson = mecJsonArr[i];
var id = mecJson["id"];
var mectype = mecJson["mectype"];
var mecparam = mecJson["mecparam"];
var mecJson = $.parseJSON(mecparam);
try{
var that = this;
var callbackFn = function(){
var _mectype = this._mectype;
var _id = this._id;
var _mecJson = this._mecJson;
var mecHandler = eval("new MEC_NS."+_mectype+"(_mectype, _id, _mecJson)");
that.addHandler(mecHandler);
c--;
if(c == 0){
$("#content_editor_wrap").css("visibility", "visible");
$("#editor_resource_loading").fadeOut(500);
runLoadedFn();
}
};
callbackFn._mectype = mectype;
callbackFn._id = id;
callbackFn._mecJson = mecJson;
ResourceLoader.loadResource(mectype, callbackFn);
/*
* var mecHandler = eval("new MEC_NS."+_mec_type+"(_mectype, id, mecJson)");
that.addHandler(mecHandler);
*/
}catch(e){
console.error("MECHandlerPool.initHandler >> " + e);
}
}
}
};
MECHandlerPool.addHandler = function(mecHandler){
this.push(mecHandler);
};
MECHandlerPool.removeHandler = function(mec_id){
var removeIndex = -1;
for(var i = 0; i < this.length; i++){
var mecHandler = this[i];
if(mecHandler.id == mec_id){
removeIndex = i;
break;
}
}
if(removeIndex != -1){
this.splice(removeIndex, 1);
}
};
MECHandlerPool.getHandler = function(mec_id){
for(var i = 0; i < this.length; i++){
var mecHandler = this[i];
if(mecHandler.id == mec_id){
return mecHandler;
}
}
};
MECHandlerPool.getHandlerByType = function(type){
var result = new Array();
for(var i = 0; i < this.length; i++){
var mecHandler = this[i];
if(mecHandler.type == type){
result.push(mecHandler);
}
}
return result;
};
MECHandlerPool.eachHandler = function(fn){
for(var i = 0; i < this.length; i++){
var mecHandler = this[i];
fn.call(mecHandler, i);
};
};
MECHandlerPool.getPageMecJsonArr = function(){
var pageMecJsonArr = [];
for(var i = 0; i < this.length; i++){
var mecHandler = this[i];
pageMecJsonArr.push(mecHandler.getMecJson());
}
return pageMecJsonArr;
};