Commit d9a86469 authored by techird's avatar techird

Merge branch 'dev' of https://github.com/kitygraph/kityminder into dev

parents 494627a3 94a01e2e
...@@ -18,7 +18,7 @@ var Command = kity.createClass( "Command", { ...@@ -18,7 +18,7 @@ var Command = kity.createClass( "Command", {
isContentChanged: function() { isContentChanged: function() {
return false; return false;
}, },
setSelectionChanged: function(val) { setSelectionChanged: function(val) {
...@@ -26,13 +26,14 @@ var Command = kity.createClass( "Command", { ...@@ -26,13 +26,14 @@ var Command = kity.createClass( "Command", {
isSelectionChanged: function() { isSelectionChanged: function() {
return false; return false;
} },
});
Command.queryState = function(km) { queryState : function(km) {
return 0; return 0;
} },
Command.queryValue = function(km) { queryValue : function(km) {
return 0; return 0;
} }
\ No newline at end of file });
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,56 +18,101 @@ var KityMinder = km.KityMinder = kity.createClass("KityMinder", { ...@@ -19,56 +18,101 @@ var KityMinder = km.KityMinder = kity.createClass("KityMinder", {
} }
}); });
// 模块注册 //模块注册&暴露模块接口
KityMinder.registerModule = function( name, module ) { (function(){
//初始化模块列表 var _modules = {};
this._modules = this._modules||{}; KityMinder.registerModule = function( name, module ) {
this._modules[name] = module; //初始化模块列表
}; _modules[name] = module;
};
KityMinder.getModules = function(){
return _modules;
};
})();
// 模块维护 // 模块维护
kity.extendClass(KityMinder, { kity.extendClass(KityMinder, (function(){
_initModules: function() { var _commands = {};//command池子
var me = this; var _query = {};//query池子
me.commands = {};//command池子
me.actions = [];//操作记录栈 return {
var _modules = KityMinder._modules; _initModules: function() {
if(_modules){ var _modules = KityMinder.getModules();
for(var key in _modules){ if(_modules){
//执行模块初始化,抛出后续处理对象 var me = this;
var moduleDeals = for(var key in _modules){
_modules[key].call(me); //执行模块初始化,抛出后续处理对象
console.log(moduleDeals); var moduleDeals = _modules[key].call(me);
console.log(moduleDeals);
if(moduleDeals.ready)
{ if(moduleDeals.ready)
moduleDeals.ready.call(me); {
} moduleDeals.ready.call(me);
}
//command加入命令池子 //command加入命令池子
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];
}
} }
}
//绑定事件
//绑定事件 var moduleDealsEvents = moduleDeals.events;
var moduleDealsEvents = moduleDeals.events; if(moduleDealsEvents){
if(moduleDealsEvents){ for(var _keyE in moduleDealsEvents){
for(var _keyE in moduleDealsEvents){ var bindEvs = _keyE.split(" ");
var bindEvs = _keyE.split(" "); var func = moduleDealsEvents[_keyE];
var func = moduleDealsEvents[_keyE]; for (var _i = 0; _i < bindEvs.length; _i++){
for (var _i = 0; _i < bindEvs.length; _i++){ me.on(bindEvs[_i],func);
me.on(bindEvs[_i],func); }
} }
} }
} }
}
},
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, {
...@@ -224,28 +268,6 @@ kity.extendClass(KityMinder, { ...@@ -224,28 +268,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 ) {
console.log(this.commands[name]);
(this.commands[name].queryState||Command.queryState)(this);
},
queryCommandValue: function( name ) {
(this.commands[name].queryValue||Command.queryValue)(this);
}
});
// 导入导出 // 导入导出
kity.extendClass(KityMinder, { kity.extendClass(KityMinder, {
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
KityMinder.registerModule("defaulttest",mindermoduleDefaultTest); KityMinder.registerModule("defaulttest",mindermoduleDefaultTest);
var myMinder = new KityMinder(); var myMinder = new KityMinder();
myMinder.execCommand("testCommand","test1",function(){alert(a)},{a:1,b:2}); myMinder.execCommand("testCommand","test1",function(){alert(a)},{a:1,b:2});
myMinder.queryCommandState("testCommand"); console.log(myMinder.queryCommandState("testCommand"));
myMinder.queryCommandValue("testCommand"); console.log(myMinder.queryCommandValue("testCommand"));
</script> </script>
</html> </html>
\ No newline at end of file
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