Merge branch 'v2.x' of https://github.com/ckcz123/mota-js into v2.x
This commit is contained in:
commit
a8c6b3fab3
@ -2507,9 +2507,15 @@ expression
|
|||||||
: expression Arithmetic_List expression
|
: expression Arithmetic_List expression
|
||||||
| negate_e
|
| negate_e
|
||||||
| bool_e
|
| bool_e
|
||||||
|
| idFixedList_e
|
||||||
|
| idFlag_e
|
||||||
|
| idTemp_e
|
||||||
|
| idIdList_e
|
||||||
| idString_e
|
| idString_e
|
||||||
| evFlag_e
|
| enemyattr_e
|
||||||
| evTemp_e
|
| blockId_e
|
||||||
|
| blockCls_e
|
||||||
|
| equip_e
|
||||||
| evalString_e
|
| evalString_e
|
||||||
|
|
||||||
|
|
||||||
@ -2571,90 +2577,77 @@ var code = IdString_0;
|
|||||||
return [code, Blockly.JavaScript.ORDER_ATOMIC];
|
return [code, Blockly.JavaScript.ORDER_ATOMIC];
|
||||||
*/;
|
*/;
|
||||||
|
|
||||||
//这一条不会被antlr识别,总是会被归到idString_e
|
idIdList_e
|
||||||
idString_1_e
|
|
||||||
: Id_List ':' IdText
|
: Id_List ':' IdText
|
||||||
|
|
||||||
|
|
||||||
/* idString_1_e
|
/* idIdList_e
|
||||||
colour : this.idstring_eColor
|
colour : this.idstring_eColor
|
||||||
default : [null,"自定义flag"]
|
default : [null,"自定义flag"]
|
||||||
//todo 将其output改成'idString_e'
|
|
||||||
var code = MotaActionFunctions.replaceFromName(MotaActionFunctions.replaceToName(Id_List_0+':'+IdText_0));
|
var code = MotaActionFunctions.replaceFromName(MotaActionFunctions.replaceToName(Id_List_0+':'+IdText_0));
|
||||||
return [code, Blockly.JavaScript.ORDER_ATOMIC];
|
return [code, Blockly.JavaScript.ORDER_ATOMIC];
|
||||||
*/;
|
*/;
|
||||||
|
|
||||||
//这一条不会被antlr识别,总是会被归到idString_e
|
idFixedList_e
|
||||||
idString_2_e
|
|
||||||
: FixedId_List
|
: FixedId_List
|
||||||
|
|
||||||
|
|
||||||
/* idString_2_e
|
/* idFixedList_e
|
||||||
colour : this.idstring_eColor
|
colour : this.idstring_eColor
|
||||||
//todo 将其output改成'idString_e'
|
|
||||||
var code = FixedId_List_0;
|
var code = FixedId_List_0;
|
||||||
return [code, Blockly.JavaScript.ORDER_ATOMIC];
|
return [code, Blockly.JavaScript.ORDER_ATOMIC];
|
||||||
*/;
|
*/;
|
||||||
|
|
||||||
|
|
||||||
//这一条不会被antlr识别,总是会被归到idString_e
|
enemyattr_e
|
||||||
idString_3_e
|
|
||||||
: '怪物' IdString '的' EnemyId_List
|
: '怪物' IdString '的' EnemyId_List
|
||||||
|
|
||||||
|
|
||||||
/* idString_3_e
|
/* enemyattr_e
|
||||||
colour : this.idstring_eColor
|
|
||||||
default : ['greenSlime',"攻击"]
|
default : ['greenSlime',"攻击"]
|
||||||
//todo 将其output改成'idString_e'
|
|
||||||
var code = 'enemy:'+IdString_0+':'+EnemyId_List_0;
|
var code = 'enemy:'+IdString_0+':'+EnemyId_List_0;
|
||||||
return [code, Blockly.JavaScript.ORDER_ATOMIC];
|
return [code, Blockly.JavaScript.ORDER_ATOMIC];
|
||||||
*/;
|
*/;
|
||||||
|
|
||||||
|
|
||||||
//这一条不会被antlr识别,总是会被归到idString_e
|
blockId_e
|
||||||
idString_4_e
|
|
||||||
: '图块ID:' Int ',' Int
|
: '图块ID:' Int ',' Int
|
||||||
|
|
||||||
|
|
||||||
/* idString_4_e
|
/* blockId_e
|
||||||
colour : this.idstring_eColor
|
|
||||||
default : [0,0]
|
default : [0,0]
|
||||||
var code = 'blockId:'+Int_0+','+Int_1;
|
var code = 'blockId:'+Int_0+','+Int_1;
|
||||||
return [code, Blockly.JavaScript.ORDER_ATOMIC];
|
return [code, Blockly.JavaScript.ORDER_ATOMIC];
|
||||||
*/;
|
*/;
|
||||||
|
|
||||||
|
|
||||||
//这一条不会被antlr识别,总是会被归到idString_e
|
blockCls_e
|
||||||
idString_5_e
|
|
||||||
: '图块类别:' Int ',' Int
|
: '图块类别:' Int ',' Int
|
||||||
|
|
||||||
|
|
||||||
/* idString_5_e
|
/* blockCls_e
|
||||||
colour : this.idstring_eColor
|
|
||||||
default : [0,0]
|
default : [0,0]
|
||||||
var code = 'blockCls:'+Int_0+','+Int_1;
|
var code = 'blockCls:'+Int_0+','+Int_1;
|
||||||
return [code, Blockly.JavaScript.ORDER_ATOMIC];
|
return [code, Blockly.JavaScript.ORDER_ATOMIC];
|
||||||
*/;
|
*/;
|
||||||
|
|
||||||
|
|
||||||
//这一条不会被antlr识别,总是会被归到idString_e
|
equip_e
|
||||||
idString_6_e
|
|
||||||
: '装备孔:' Int
|
: '装备孔:' Int
|
||||||
|
|
||||||
|
|
||||||
/* idString_6_e
|
/* equip_e
|
||||||
colour : this.idstring_eColor
|
|
||||||
default : [0]
|
default : [0]
|
||||||
var code = 'equip:'+Int_0;
|
var code = 'equip:'+Int_0;
|
||||||
return [code, Blockly.JavaScript.ORDER_ATOMIC];
|
return [code, Blockly.JavaScript.ORDER_ATOMIC];
|
||||||
*/;
|
*/;
|
||||||
|
|
||||||
|
|
||||||
evFlag_e
|
idFlag_e
|
||||||
: '独立开关' Letter_List
|
: '独立开关' Letter_List
|
||||||
|
|
||||||
|
|
||||||
/* evFlag_e
|
/* idFlag_e
|
||||||
colour : this.idstring_eColor
|
colour : this.idstring_eColor
|
||||||
default : ["A"]
|
default : ["A"]
|
||||||
var code = "switch:"+Letter_List_0;
|
var code = "switch:"+Letter_List_0;
|
||||||
@ -2662,11 +2655,11 @@ return [code, Blockly.JavaScript.ORDER_ATOMIC];
|
|||||||
*/;
|
*/;
|
||||||
|
|
||||||
|
|
||||||
evTemp_e
|
idTemp_e
|
||||||
: '临时变量' Letter_List
|
: '临时变量' Letter_List
|
||||||
|
|
||||||
|
|
||||||
/* evTemp_e
|
/* idTemp_e
|
||||||
colour : this.idstring_eColor
|
colour : this.idstring_eColor
|
||||||
default : ["A"]
|
default : ["A"]
|
||||||
var code = "temp:"+Letter_List_0;
|
var code = "temp:"+Letter_List_0;
|
||||||
@ -2899,14 +2892,10 @@ this.evisitor.mapColor=175;
|
|||||||
|
|
||||||
/* Function_1
|
/* Function_1
|
||||||
delete(this.block('negate_e').inputsInline);
|
delete(this.block('negate_e').inputsInline);
|
||||||
this.block('idString_1_e').output='idString_e';
|
this.block('idIdList_e').output='idString_e';
|
||||||
this.block('idString_2_e').output='idString_e';
|
this.block('idFixedList_e').output='idString_e';
|
||||||
this.block('idString_3_e').output='idString_e';
|
this.block('idFlag_e').output='idString_e';
|
||||||
this.block('idString_4_e').output='idString_e';
|
this.block('idTemp_e').output='idString_e';
|
||||||
this.block('idString_5_e').output='idString_e';
|
|
||||||
this.block('idString_6_e').output='idString_e';
|
|
||||||
this.block('evFlag_e').output='idString_e';
|
|
||||||
this.block('evTemp_e').output='idString_e';
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Functions
|
/* Functions
|
||||||
@ -2957,7 +2946,7 @@ ActionParser.prototype.parse = function (obj,type) {
|
|||||||
var text_choices = null;
|
var text_choices = null;
|
||||||
for(var ii=obj.length-1,choice;choice=obj[ii];ii--) {
|
for(var ii=obj.length-1,choice;choice=obj[ii];ii--) {
|
||||||
text_choices=MotaActionBlocks['levelCase'].xmlText([
|
text_choices=MotaActionBlocks['levelCase'].xmlText([
|
||||||
MotaActionBlocks['evalString_e'].xmlText([choice.need]),choice.title,choice.clear||false,this.parseList(choice.action),text_choices]);
|
this.expandEvalBlock([choice.need]),choice.title,choice.clear||false,this.parseList(choice.action),text_choices]);
|
||||||
}
|
}
|
||||||
return MotaActionBlocks['level_m'].xmlText([text_choices]);
|
return MotaActionBlocks['level_m'].xmlText([text_choices]);
|
||||||
|
|
||||||
@ -3414,14 +3403,14 @@ ActionParser.prototype.parseAction = function() {
|
|||||||
break
|
break
|
||||||
case "setValue":
|
case "setValue":
|
||||||
this.next = MotaActionBlocks['setValue_s'].xmlText([
|
this.next = MotaActionBlocks['setValue_s'].xmlText([
|
||||||
this.tryToUseEvFlag_e('idString_e', [data.name]), data["operator"]||'=',
|
this.expandIdBlock([data.name]), data["operator"]||'=',
|
||||||
MotaActionBlocks['evalString_e'].xmlText([data.value]),
|
this.expandEvalBlock([data.value]),
|
||||||
data.norefresh || false,
|
data.norefresh || false,
|
||||||
this.next]);
|
this.next]);
|
||||||
break;
|
break;
|
||||||
case "setEnemy":
|
case "setEnemy":
|
||||||
this.next = MotaActionBlocks['setEnemy_s'].xmlText([
|
this.next = MotaActionBlocks['setEnemy_s'].xmlText([
|
||||||
data.id, data.name, MotaActionBlocks['evalString_e'].xmlText([data.value]), this.next]);
|
data.id, data.name, this.expandEvalBlock([data.value]), this.next]);
|
||||||
break;
|
break;
|
||||||
case "setFloor":
|
case "setFloor":
|
||||||
this.next = MotaActionBlocks['setFloor_s'].xmlText([
|
this.next = MotaActionBlocks['setFloor_s'].xmlText([
|
||||||
@ -3450,14 +3439,14 @@ ActionParser.prototype.parseAction = function() {
|
|||||||
case "if": // 条件判断
|
case "if": // 条件判断
|
||||||
if (data["false"]) {
|
if (data["false"]) {
|
||||||
this.next = MotaActionBlocks['if_s'].xmlText([
|
this.next = MotaActionBlocks['if_s'].xmlText([
|
||||||
this.tryToUseEvFlag_e('evalString_e', [data.condition]),
|
this.expandEvalBlock([data.condition]),
|
||||||
this.insertActionList(data["true"]),
|
this.insertActionList(data["true"]),
|
||||||
this.insertActionList(data["false"]),
|
this.insertActionList(data["false"]),
|
||||||
this.next]);
|
this.next]);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
this.next = MotaActionBlocks['if_1_s'].xmlText([
|
this.next = MotaActionBlocks['if_1_s'].xmlText([
|
||||||
this.tryToUseEvFlag_e('evalString_e', [data.condition]),
|
this.expandEvalBlock([data.condition]),
|
||||||
this.insertActionList(data["true"]),
|
this.insertActionList(data["true"]),
|
||||||
this.next]);
|
this.next]);
|
||||||
}
|
}
|
||||||
@ -3473,11 +3462,10 @@ ActionParser.prototype.parseAction = function() {
|
|||||||
var case_caseList = null;
|
var case_caseList = null;
|
||||||
for(var ii=data.caseList.length-1,caseNow;caseNow=data.caseList[ii];ii--) {
|
for(var ii=data.caseList.length-1,caseNow;caseNow=data.caseList[ii];ii--) {
|
||||||
case_caseList=MotaActionBlocks['switchCase'].xmlText([
|
case_caseList=MotaActionBlocks['switchCase'].xmlText([
|
||||||
this.isset(caseNow.case)?MotaActionBlocks['evalString_e'].xmlText([caseNow.case]):"值",caseNow.nobreak,this.insertActionList(caseNow.action),case_caseList]);
|
this.isset(caseNow.case)?this.expandEvalBlock([caseNow.case]):"值",caseNow.nobreak,this.insertActionList(caseNow.action),case_caseList]);
|
||||||
}
|
}
|
||||||
this.next = MotaActionBlocks['switch_s'].xmlText([
|
this.next = MotaActionBlocks['switch_s'].xmlText([
|
||||||
// MotaActionBlocks['evalString_e'].xmlText([data.condition]),
|
this.expandEvalBlock([data.condition]),
|
||||||
this.tryToUseEvFlag_e('evalString_e', [data.condition]),
|
|
||||||
case_caseList,this.next]);
|
case_caseList,this.next]);
|
||||||
break;
|
break;
|
||||||
case "choices": // 提供选项
|
case "choices": // 提供选项
|
||||||
@ -3494,30 +3482,28 @@ ActionParser.prototype.parseAction = function() {
|
|||||||
break;
|
break;
|
||||||
case "for": // 循环遍历
|
case "for": // 循环遍历
|
||||||
this.next = MotaActionBlocks['for_s'].xmlText([
|
this.next = MotaActionBlocks['for_s'].xmlText([
|
||||||
this.tryToUseEvFlag_e('evalString_e', [data.name]),
|
this.expandEvalBlock([data.name]),
|
||||||
data.from || 0, data.to || 0, data.step || 0,
|
data.from || 0, data.to || 0, data.step || 0,
|
||||||
this.insertActionList(data.data),
|
this.insertActionList(data.data),
|
||||||
this.next]);
|
this.next]);
|
||||||
break;
|
break;
|
||||||
case "forEach": // 循环遍历列表
|
case "forEach": // 循环遍历列表
|
||||||
this.next = MotaActionBlocks['forEach_s'].xmlText([
|
this.next = MotaActionBlocks['forEach_s'].xmlText([
|
||||||
this.tryToUseEvFlag_e('evalString_e', [data.name]),
|
this.expandEvalBlock([data.name]),
|
||||||
JSON.stringify(data.list),
|
JSON.stringify(data.list),
|
||||||
this.insertActionList(data.data),
|
this.insertActionList(data.data),
|
||||||
this.next]);
|
this.next]);
|
||||||
break;
|
break;
|
||||||
case "while": // 前置条件循环处理
|
case "while": // 前置条件循环处理
|
||||||
this.next = MotaActionBlocks['while_s'].xmlText([
|
this.next = MotaActionBlocks['while_s'].xmlText([
|
||||||
// MotaActionBlocks['evalString_e'].xmlText([data.condition]),
|
this.expandEvalBlock([data.condition]),
|
||||||
this.tryToUseEvFlag_e('evalString_e', [data.condition]),
|
|
||||||
this.insertActionList(data.data),
|
this.insertActionList(data.data),
|
||||||
this.next]);
|
this.next]);
|
||||||
break;
|
break;
|
||||||
case "dowhile": // 后置条件循环处理
|
case "dowhile": // 后置条件循环处理
|
||||||
this.next = MotaActionBlocks['dowhile_s'].xmlText([
|
this.next = MotaActionBlocks['dowhile_s'].xmlText([
|
||||||
this.insertActionList(data.data),
|
this.insertActionList(data.data),
|
||||||
// MotaActionBlocks['evalString_e'].xmlText([data.condition]),
|
this.expandEvalBlock([data.condition]),
|
||||||
this.tryToUseEvFlag_e('evalString_e', [data.condition]),
|
|
||||||
this.next]);
|
this.next]);
|
||||||
break;
|
break;
|
||||||
case "break": // 跳出循环
|
case "break": // 跳出循环
|
||||||
@ -3826,18 +3812,53 @@ ActionParser.prototype.Colour = function(color) {
|
|||||||
return color?JSON.stringify(color).slice(1,-1):null;
|
return color?JSON.stringify(color).slice(1,-1):null;
|
||||||
}
|
}
|
||||||
|
|
||||||
ActionParser.prototype.tryToUseEvFlag_e = function(defaultType, args, isShadow, comment) {
|
ActionParser.prototype.matchId = function(args, isShadow, comment) {
|
||||||
var match=/^switch:([A-Z])$/.exec(args[0])
|
var rt=function(xml){
|
||||||
|
return {xml:xml,ret:true}
|
||||||
|
}
|
||||||
|
var match = /nothing/.exec('nothing')
|
||||||
|
// 固定列表
|
||||||
|
var FixedId_List=MotaActionBlocks.idFixedList_e.json.args0[0].options; // [["生命", "status:hp"], ...]
|
||||||
|
match=new RegExp('^('+FixedId_List.map(function(v){return v[1]}).join('|')+')$').exec(args[0])
|
||||||
|
if(match){
|
||||||
|
return rt(MotaActionBlocks['idFixedList_e'].xmlText(args, isShadow, comment));
|
||||||
|
}
|
||||||
|
// 独立开关
|
||||||
|
match=/^switch:([A-Z])$/.exec(args[0])
|
||||||
if(match){
|
if(match){
|
||||||
args[0]=match[1]
|
args[0]=match[1]
|
||||||
return MotaActionBlocks['evFlag_e'].xmlText(args, isShadow, comment);
|
return rt(MotaActionBlocks['idFlag_e'].xmlText(args, isShadow, comment));
|
||||||
}
|
}
|
||||||
|
// 临时变量
|
||||||
match=/^temp:([A-Z])$/.exec(args[0])
|
match=/^temp:([A-Z])$/.exec(args[0])
|
||||||
if(match){
|
if(match){
|
||||||
args[0]=match[1]
|
args[0]=match[1]
|
||||||
return MotaActionBlocks['evTemp_e'].xmlText(args, isShadow, comment);
|
return rt(MotaActionBlocks['idTemp_e'].xmlText(args, isShadow, comment));
|
||||||
}
|
}
|
||||||
return MotaActionBlocks[defaultType||'evalString_e'].xmlText(args, isShadow, comment);
|
// id列表
|
||||||
|
var Id_List = MotaActionBlocks.idIdList_e.json.args0[0].options; // [["变量", "flag"], ...]
|
||||||
|
match=new RegExp('^('+Id_List.map(function(v){return v[1]}).join('|')+'):([a-zA-Z0-9_\\u4E00-\\u9FCC]+)$').exec(args[0])
|
||||||
|
if(match){
|
||||||
|
args=[match[1],match[2]].concat(args.slice(1))
|
||||||
|
return rt(MotaActionBlocks['idIdList_e'].xmlText(args, isShadow, comment));
|
||||||
|
}
|
||||||
|
return {xml:'',ret:false}
|
||||||
|
}
|
||||||
|
|
||||||
|
ActionParser.prototype.expandIdBlock = function(args, isShadow, comment) {
|
||||||
|
var ret=this.matchId(args, isShadow, comment)
|
||||||
|
if (ret.ret) return ret.xml;
|
||||||
|
return MotaActionBlocks['idString_e'].xmlText(args, isShadow, comment);
|
||||||
|
}
|
||||||
|
|
||||||
|
ActionParser.prototype.expandEvalBlock = function(args, isShadow, comment) {
|
||||||
|
var ret=this.matchId(args, isShadow, comment)
|
||||||
|
if (ret.ret) return ret.xml;
|
||||||
|
// todo
|
||||||
|
// 1. 将「数值设置」的名称尽可能替换掉;如果是 FixedId_List 那就用它;否则如果是 独立开关/临时变量 那就用对应的;否则用 A:B 的那个框
|
||||||
|
// 2. 将「值块」尽可能替换掉,主要是「独立开关」,「临时变量」,「非 - 独立开关」,「非-临时变量」;以及true/false替换成勾选框;对于其他变量/属性等之类也尽可能进行替换
|
||||||
|
|
||||||
|
return MotaActionBlocks['evalString_e'].xmlText(args, isShadow, comment);
|
||||||
}
|
}
|
||||||
|
|
||||||
MotaActionFunctions.actionParser = new ActionParser();
|
MotaActionFunctions.actionParser = new ActionParser();
|
||||||
|
|||||||
@ -97,7 +97,7 @@ editor_blockly = function () {
|
|||||||
],
|
],
|
||||||
'数据相关':[
|
'数据相关':[
|
||||||
MotaActionBlocks['setValue_s'].xmlText([
|
MotaActionBlocks['setValue_s'].xmlText([
|
||||||
MotaActionBlocks['idString_1_e'].xmlText(['status','生命']), '=', '', false
|
MotaActionBlocks['idIdList_e'].xmlText(['status','生命']), '=', '', false
|
||||||
]),
|
]),
|
||||||
MotaActionBlocks['setEnemy_s'].xmlText(),
|
MotaActionBlocks['setEnemy_s'].xmlText(),
|
||||||
MotaActionBlocks['setFloor_s'].xmlText(),
|
MotaActionBlocks['setFloor_s'].xmlText(),
|
||||||
@ -217,20 +217,20 @@ editor_blockly = function () {
|
|||||||
],
|
],
|
||||||
'值块':[
|
'值块':[
|
||||||
MotaActionBlocks['setValue_s'].xmlText([
|
MotaActionBlocks['setValue_s'].xmlText([
|
||||||
MotaActionBlocks['idString_1_e'].xmlText(['status','生命']), '=', '', false
|
MotaActionBlocks['idIdList_e'].xmlText(['status','生命']), '=', '', false
|
||||||
]),
|
]),
|
||||||
MotaActionBlocks['expression_arithmetic_0'].xmlText(),
|
MotaActionBlocks['expression_arithmetic_0'].xmlText(),
|
||||||
MotaActionBlocks['evFlag_e'].xmlText(),
|
MotaActionBlocks['idFlag_e'].xmlText(),
|
||||||
MotaActionBlocks['evTemp_e'].xmlText(),
|
MotaActionBlocks['idTemp_e'].xmlText(),
|
||||||
MotaActionBlocks['negate_e'].xmlText(),
|
MotaActionBlocks['negate_e'].xmlText(),
|
||||||
MotaActionBlocks['bool_e'].xmlText(),
|
MotaActionBlocks['bool_e'].xmlText(),
|
||||||
MotaActionBlocks['idString_e'].xmlText(),
|
MotaActionBlocks['idString_e'].xmlText(),
|
||||||
MotaActionBlocks['idString_1_e'].xmlText(),
|
MotaActionBlocks['idIdList_e'].xmlText(),
|
||||||
MotaActionBlocks['idString_2_e'].xmlText(),
|
MotaActionBlocks['idFixedList_e'].xmlText(),
|
||||||
MotaActionBlocks['idString_3_e'].xmlText(),
|
MotaActionBlocks['enemyattr_e'].xmlText(),
|
||||||
MotaActionBlocks['idString_4_e'].xmlText(),
|
MotaActionBlocks['blockId_e'].xmlText(),
|
||||||
MotaActionBlocks['idString_5_e'].xmlText(),
|
MotaActionBlocks['blockCls_e'].xmlText(),
|
||||||
MotaActionBlocks['idString_6_e'].xmlText(),
|
MotaActionBlocks['equip_e'].xmlText(),
|
||||||
MotaActionBlocks['evalString_e'].xmlText(),
|
MotaActionBlocks['evalString_e'].xmlText(),
|
||||||
],
|
],
|
||||||
'常见事件模板':[
|
'常见事件模板':[
|
||||||
@ -1011,7 +1011,7 @@ function omitedcheckUpdateFunction(event) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 对怪物ID提供补全
|
// 对怪物ID提供补全
|
||||||
if ((type == 'idString_3_e' || type == 'battle_s' || type == 'setEnemy_s') && name == 'IdString_0') {
|
if ((type == 'enemyattr_e' || type == 'battle_s' || type == 'setEnemy_s') && name == 'IdString_0') {
|
||||||
return filter(allEnemys, content);
|
return filter(allEnemys, content);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -97,14 +97,12 @@ editor_mode = function (editor) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
editor_mode.prototype.onmode = function (mode, callback) {
|
editor_mode.prototype.onmode = function (mode, callback) {
|
||||||
//setTimeout(function(){
|
if (editor_mode.mode != mode) {
|
||||||
if (editor_mode.mode != mode) {
|
if (mode === 'save') editor_mode.doActionList(editor_mode.mode, editor_mode.actionList, callback);
|
||||||
if (mode === 'save') editor_mode.doActionList(editor_mode.mode, editor_mode.actionList, callback);
|
if (editor_mode.mode === 'nextChange' && mode) editor_mode.showMode(mode);
|
||||||
if (editor_mode.mode === 'nextChange' && mode) editor_mode.showMode(mode);
|
if (mode !== 'save') editor_mode.mode = mode;
|
||||||
if (mode !== 'save') editor_mode.mode = mode;
|
editor_mode.actionList = [];
|
||||||
editor_mode.actionList = [];
|
}
|
||||||
}
|
|
||||||
//})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
editor_mode.prototype.showMode = function (mode) {
|
editor_mode.prototype.showMode = function (mode) {
|
||||||
|
|||||||
@ -225,8 +225,10 @@ editor_table_wrapper = function (editor) {
|
|||||||
|
|
||||||
var listen = function (guids) {
|
var listen = function (guids) {
|
||||||
// 每个叶节点的事件绑定
|
// 每个叶节点的事件绑定
|
||||||
|
var tableid = editor.util.guid();
|
||||||
|
editor.mode.currentTable=tableid;
|
||||||
guids.forEach(function (guid) {
|
guids.forEach(function (guid) {
|
||||||
editor.table.guidListen(guid, obj, commentObj)
|
editor.table.guidListen(guid, tableid, obj, commentObj)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
return { "HTML": outstr.join(''), "guids": guids, "listen": listen };
|
return { "HTML": outstr.join(''), "guids": guids, "listen": listen };
|
||||||
@ -310,7 +312,7 @@ editor_table_wrapper = function (editor) {
|
|||||||
* 监听一个guid对应的表格项
|
* 监听一个guid对应的表格项
|
||||||
* @param {String} guid
|
* @param {String} guid
|
||||||
*/
|
*/
|
||||||
editor_table.prototype.guidListen = function (guid, obj, commentObj) {
|
editor_table.prototype.guidListen = function (guid, tableid, obj, commentObj) {
|
||||||
// tr>td[title=field]
|
// tr>td[title=field]
|
||||||
// >td[title=comment,cobj=cobj:json]
|
// >td[title=comment,cobj=cobj:json]
|
||||||
// >td>div>input[value=thiseval]
|
// >td>div>input[value=thiseval]
|
||||||
@ -319,6 +321,7 @@ editor_table_wrapper = function (editor) {
|
|||||||
var field = thisTr.children[0].getAttribute('title');
|
var field = thisTr.children[0].getAttribute('title');
|
||||||
var cobj = JSON.parse(thisTr.children[1].getAttribute('cobj'));
|
var cobj = JSON.parse(thisTr.children[1].getAttribute('cobj'));
|
||||||
var modeNode = thisTr.parentNode;
|
var modeNode = thisTr.parentNode;
|
||||||
|
thisTr.setAttribute('tableid',tableid)
|
||||||
while (!editor_mode._ids.hasOwnProperty(modeNode.getAttribute('id'))) {
|
while (!editor_mode._ids.hasOwnProperty(modeNode.getAttribute('id'))) {
|
||||||
modeNode = modeNode.parentNode;
|
modeNode = modeNode.parentNode;
|
||||||
}
|
}
|
||||||
@ -342,6 +345,7 @@ editor_table_wrapper = function (editor) {
|
|||||||
*/
|
*/
|
||||||
editor_table.prototype.onchange = function (guid, obj, commentObj, thisTr, input, field, cobj, modeNode) {
|
editor_table.prototype.onchange = function (guid, obj, commentObj, thisTr, input, field, cobj, modeNode) {
|
||||||
editor_mode.onmode(editor_mode._ids[modeNode.getAttribute('id')]);
|
editor_mode.onmode(editor_mode._ids[modeNode.getAttribute('id')]);
|
||||||
|
if (editor.mode.currentTable!=thisTr.getAttribute('tableid')) return;
|
||||||
var thiseval = null;
|
var thiseval = null;
|
||||||
if (input.checked != null) input.value = input.checked;
|
if (input.checked != null) input.value = input.checked;
|
||||||
try {
|
try {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user