Commit 94a01e2e authored by Akikonata's avatar Akikonata

added closure

parent 31f3519a
var KityMinder = km.KityMinder = kity.createClass("KityMinder", { var KityMinder = km.KityMinder = kity.createClass("KityMinder", {
constructor: function (id, option) { constructor: function (id, option) {
// 初始化 // 初始化
this._initMinder(id, option || {}); this._initMinder(id, option || {});
...@@ -19,26 +18,31 @@ var KityMinder = km.KityMinder = kity.createClass("KityMinder", { ...@@ -19,26 +18,31 @@ var KityMinder = km.KityMinder = kity.createClass("KityMinder", {
} }
}); });
// 模块注册 //模块注册&暴露模块接口
KityMinder.registerModule = function( name, module ) { (function(){
var _modules = {};
KityMinder.registerModule = function( name, module ) {
//初始化模块列表 //初始化模块列表
this._modules = this._modules||{}; _modules[name] = module;
this._modules[name] = module; };
}; KityMinder.getModules = function(){
return _modules;
};
})();
// 模块维护 // 模块维护
kity.extendClass(KityMinder, { kity.extendClass(KityMinder, (function(){
var _commands = {};//command池子
var _query = {};//query池子
return {
_initModules: function() { _initModules: function() {
var me = this; var _modules = KityMinder.getModules();
me.commands = {};//command池子
me._query = {};//query池子
me.actions = [];//操作记录栈
var _modules = KityMinder._modules;
if(_modules){ if(_modules){
var me = this;
for(var key in _modules){ for(var key in _modules){
//执行模块初始化,抛出后续处理对象 //执行模块初始化,抛出后续处理对象
var moduleDeals = var moduleDeals = _modules[key].call(me);
_modules[key].call(me);
console.log(moduleDeals); console.log(moduleDeals);
if(moduleDeals.ready) if(moduleDeals.ready)
...@@ -50,7 +54,7 @@ kity.extendClass(KityMinder, { ...@@ -50,7 +54,7 @@ kity.extendClass(KityMinder, {
var moduleDealsCommands = moduleDeals.commands; var moduleDealsCommands = moduleDeals.commands;
if(moduleDealsCommands){ if(moduleDealsCommands){
for(var _keyC in moduleDealsCommands){ for(var _keyC in moduleDealsCommands){
me.commands[_keyC] = moduleDealsCommands[_keyC]; _commands[_keyC] = moduleDealsCommands[_keyC];
} }
} }
...@@ -68,8 +72,47 @@ kity.extendClass(KityMinder, { ...@@ -68,8 +72,47 @@ kity.extendClass(KityMinder, {
} }
} }
},
execCommand: function( name ) {
var _action = new _commands[name]();
console.log(_action);
var args = arguments;
args[0] = this;
if(_action.execute){
_action.fire("beforecommand");
_action.on("precommand",function(e){
_action.execute.apply(null,args);
_action.fire("command");
});
}
},
queryCommandState: function( name ) {
if(!_commands[name]){return false;}
if(!_query[name]){
_query[name] = new _commands[name]();
}
if(_query[name].queryState){
return _query[name].queryState(this);
} else {
return 0;
}
},
queryCommandValue: function( name ) {
if(!_commands[name]){return false;}
if(!_query[name]){
_query[name] = new _commands[name]();
}
if(_query[name].queryValue){
return _query[name].queryValue(this);
} else {
return 0;
} }
});
}
};
})());
// 节点控制 // 节点控制
kity.extendClass(KityMinder, { kity.extendClass(KityMinder, {
...@@ -143,44 +186,6 @@ kity.extendClass(KityMinder, { ...@@ -143,44 +186,6 @@ kity.extendClass(KityMinder, {
} }
}); });
// 命令机制
kity.extendClass(KityMinder, {
execCommand: function( name ) {
var _action = new this.commands[name]();
console.log(_action);
var args = arguments;
args[0] = this;
if(_action.execute){
_action.execute.apply(null,args);
}
this.actions.push(_action);
},
queryCommandState: function( name ) {
if(!this.commands[name]){return false;}
if(!this._query[name]){
this._query[name] = new this.commands[name]();
}
if(this._query[name].queryState){
return this._query[name].queryState(this);
} else {
return 0;
}
},
queryCommandValue: function( name ) {
if(!this.commands[name]){return false;}
if(!this._query[name]){
this._query[name] = new this.commands[name]();
}
if(this._query[name].queryValue){
return this._query[name].queryValue(this);
} else {
return 0;
}
}
});
// 导入导出 // 导入导出
kity.extendClass(KityMinder, { kity.extendClass(KityMinder, {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment