commit
c1c9cb7905
@ -453,7 +453,7 @@ editor.prototype.listen = function() {
|
|||||||
if( e.ctrlKey && ( e.keyCode == 90 || e.keyCode == 89 ) )
|
if( e.ctrlKey && ( e.keyCode == 90 || e.keyCode == 89 ) )
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
//Ctrl+z 撤销上一步undo
|
//Ctrl+z 撤销上一步undo
|
||||||
if(e.keyCode == 90 && e.ctrlKey && preMapData && currDrawData.pos.length){
|
if(e.keyCode == 90 && e.ctrlKey && preMapData && currDrawData.pos.length && selectBox.isSelected){
|
||||||
editor.map = JSON.parse(JSON.stringify(preMapData));
|
editor.map = JSON.parse(JSON.stringify(preMapData));
|
||||||
editor.updateMap();
|
editor.updateMap();
|
||||||
reDo = JSON.parse(JSON.stringify(currDrawData));
|
reDo = JSON.parse(JSON.stringify(currDrawData));
|
||||||
@ -461,7 +461,7 @@ editor.prototype.listen = function() {
|
|||||||
preMapData = null;
|
preMapData = null;
|
||||||
}
|
}
|
||||||
//Ctrl+y 重做一步redo
|
//Ctrl+y 重做一步redo
|
||||||
if(e.keyCode == 89 && e.ctrlKey && reDo && reDo.pos.length){
|
if(e.keyCode == 89 && e.ctrlKey && reDo && reDo.pos.length && selectBox.isSelected){
|
||||||
preMapData = JSON.parse(JSON.stringify(editor.map));
|
preMapData = JSON.parse(JSON.stringify(editor.map));
|
||||||
for(var j=0; j<reDo.pos.length;j++)
|
for(var j=0; j<reDo.pos.length;j++)
|
||||||
editor.map[reDo.pos[j].y][reDo.pos[j].x] = JSON.parse(JSON.stringify(reDo.info));
|
editor.map[reDo.pos[j].y][reDo.pos[j].x] = JSON.parse(JSON.stringify(reDo.info));
|
||||||
|
|||||||
@ -235,7 +235,7 @@ document.getElementById('blocklyDiv').onmousewheel = function(e){
|
|||||||
//console.log(e);
|
//console.log(e);
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
var hvScroll = e.shiftKey?'hScroll':'vScroll';
|
var hvScroll = e.shiftKey?'hScroll':'vScroll';
|
||||||
workspace.scrollbar[hvScroll].handlePosition_+=( ((e.deltaY||0)+(e.detail||0)) <0?20:-20);
|
workspace.scrollbar[hvScroll].handlePosition_+=( ((e.deltaY||0)+(e.detail||0)) >0?20:-20);
|
||||||
workspace.scrollbar[hvScroll].onScroll_();
|
workspace.scrollbar[hvScroll].onScroll_();
|
||||||
workspace.setScale(workspace.scale);
|
workspace.setScale(workspace.scale);
|
||||||
}
|
}
|
||||||
@ -370,6 +370,7 @@ editor_blockly.import = function(id_,args){
|
|||||||
|
|
||||||
var blocklyWidgetDiv = document.getElementsByClassName('blocklyWidgetDiv');
|
var blocklyWidgetDiv = document.getElementsByClassName('blocklyWidgetDiv');
|
||||||
editor_blockly.show = function(){
|
editor_blockly.show = function(){
|
||||||
|
if(typeof(selectBox)!==typeof(undefined))selectBox.isSelected = false;
|
||||||
document.getElementById('left6').style='';
|
document.getElementById('left6').style='';
|
||||||
for(var ii =0,node;node=blocklyWidgetDiv[ii];ii++){
|
for(var ii =0,node;node=blocklyWidgetDiv[ii];ii++){
|
||||||
node.style.zIndex = 201;
|
node.style.zIndex = 201;
|
||||||
|
|||||||
@ -419,15 +419,17 @@ editor_file = function(editor, callback){
|
|||||||
]
|
]
|
||||||
为[]时只查询不修改
|
为[]时只查询不修改
|
||||||
*/
|
*/
|
||||||
|
var data_obj = data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d;
|
||||||
if (!isset(callback)) {printe('未设置callback');throw('未设置callback')};
|
if (!isset(callback)) {printe('未设置callback');throw('未设置callback')};
|
||||||
if (isset(actionList) && actionList.length > 0){
|
if (isset(actionList) && actionList.length > 0){
|
||||||
saveSetting('data',actionList,function (err) {
|
saveSetting('data',actionList,function (err) {
|
||||||
callback([
|
callback([
|
||||||
(function(){
|
(function(){
|
||||||
var locObj=Object.assign({'main':{}},editor.core.data);
|
//var locObj=Object.assign({'main':{}},editor.core.data);
|
||||||
|
var locObj=Object.assign({},data_obj,{'main':{}});
|
||||||
Object.keys(editor_file.dataComment._data.main._data).forEach(function(v){
|
Object.keys(editor_file.dataComment._data.main._data).forEach(function(v){
|
||||||
if (isset(editor.main[v]))
|
if (isset(editor.main[v]))
|
||||||
locObj.main[v]=editor.main[v];
|
locObj.main[v]=data_obj.main[v];
|
||||||
else
|
else
|
||||||
locObj[v]=null;
|
locObj[v]=null;
|
||||||
});
|
});
|
||||||
@ -439,10 +441,11 @@ editor_file = function(editor, callback){
|
|||||||
} else {
|
} else {
|
||||||
callback([
|
callback([
|
||||||
(function(){
|
(function(){
|
||||||
var locObj=Object.assign({'main':{}},editor.core.data);
|
//var locObj=Object.assign({'main':{}},editor.core.data);
|
||||||
|
var locObj=Object.assign({},data_obj,{'main':{}});
|
||||||
Object.keys(editor_file.dataComment._data.main._data).forEach(function(v){
|
Object.keys(editor_file.dataComment._data.main._data).forEach(function(v){
|
||||||
if (isset(editor.main[v]))
|
if (isset(editor.main[v]))
|
||||||
locObj.main[v]=editor.main[v];
|
locObj.main[v]=data_obj.main[v];
|
||||||
else
|
else
|
||||||
locObj[v]=null;
|
locObj[v]=null;
|
||||||
});
|
});
|
||||||
|
|||||||
@ -112,6 +112,7 @@ editor_mode.prototype.objToTable_ = function(obj,commentObj){
|
|||||||
}
|
}
|
||||||
if(checkRange(cobj._range,thiseval)){
|
if(checkRange(cobj._range,thiseval)){
|
||||||
editor_mode.addAction(['change',field,thiseval]);
|
editor_mode.addAction(['change',field,thiseval]);
|
||||||
|
editor_mode.onmode('save');//自动保存
|
||||||
} else {
|
} else {
|
||||||
printe(field+' : 输入的值不合要求,请鼠标放置在注释上查看说明');
|
printe(field+' : 输入的值不合要求,请鼠标放置在注释上查看说明');
|
||||||
}
|
}
|
||||||
@ -170,127 +171,6 @@ editor_mode.prototype.objToTd_ = function(obj,commentObj,field,cfield,vobj,cobj)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
editor_mode.prototype.objToTable = function(obj,commentObj){
|
|
||||||
var outstr=["\n<tr><td>条目</td><td>注释</td><td>值</td></tr>\n"];
|
|
||||||
var guids=[];
|
|
||||||
var checkIsLeaf = function(obj,commentObj,field){
|
|
||||||
var thiseval = eval('obj'+field);
|
|
||||||
if (thiseval == null || thiseval == undefined)return true;//null,undefined
|
|
||||||
if (typeof(thiseval) == typeof(''))return true;//字符串
|
|
||||||
if (Object.keys(thiseval).length == 0)return true;//数字,true,false,空数组,空对象
|
|
||||||
try {
|
|
||||||
var comment = eval('commentObj'+field);
|
|
||||||
if( comment.indexOf('$leaf') != -1){
|
|
||||||
evalstr = comment.split('$leaf')[1].split('$end')[0];
|
|
||||||
if(eval(evalstr) === true)return true;
|
|
||||||
}
|
|
||||||
} catch (error) {}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
//深度优先遍历
|
|
||||||
var recursionParse = function(tfield) {
|
|
||||||
for(var ii in eval("obj"+tfield)){
|
|
||||||
var field = tfield+"['"+ii+"']";
|
|
||||||
var isleaf = checkIsLeaf(obj,commentObj,field);
|
|
||||||
if (isleaf) {
|
|
||||||
var leafnode = editor_mode.objToTr(obj,commentObj,field);
|
|
||||||
outstr.push(leafnode[0]);
|
|
||||||
guids.push(leafnode[1]);
|
|
||||||
} else {
|
|
||||||
outstr.push(["<tr><td>----</td><td>----</td><td>",field,"</td></tr>\n"].join(''));
|
|
||||||
recursionParse(field);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
recursionParse("");
|
|
||||||
var checkRange = function(comment,thiseval){
|
|
||||||
if( comment.indexOf('$range') !== -1){
|
|
||||||
var evalstr = comment.split('$range')[1].split('$end')[0];
|
|
||||||
return eval(evalstr);
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
var listen = function(guids) {
|
|
||||||
guids.forEach(function(guid){
|
|
||||||
// tr>td[title=field]
|
|
||||||
// >td[title=comment]
|
|
||||||
// >td>div>input[value=thsieval]
|
|
||||||
var thisTr = document.getElementById(guid);
|
|
||||||
var input = thisTr.children[2].children[0].children[0];
|
|
||||||
var field = thisTr.children[0].getAttribute('title');
|
|
||||||
var comment = thisTr.children[1].getAttribute('title');
|
|
||||||
input.onchange = function(){
|
|
||||||
var node = thisTr.parentNode;
|
|
||||||
while (!editor_mode._ids.hasOwnProperty(node.getAttribute('id'))) {
|
|
||||||
node = node.parentNode;
|
|
||||||
}
|
|
||||||
editor_mode.onmode(editor_mode._ids[node.getAttribute('id')]);
|
|
||||||
var thiseval=null;
|
|
||||||
try{
|
|
||||||
thiseval = JSON.parse(input.value);
|
|
||||||
}catch(ee){
|
|
||||||
printe(field+' : '+ee);
|
|
||||||
throw ee;
|
|
||||||
}
|
|
||||||
if(checkRange(comment,thiseval)){
|
|
||||||
editor_mode.addAction(['change',field,thiseval]);
|
|
||||||
} else {
|
|
||||||
printe(field+' : 输入的值不合要求,请鼠标放置在注释上查看说明');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
input.ondblclick = function(){
|
|
||||||
if(!editor_blockly.import(guid))
|
|
||||||
if(!editor_multi.import(guid)){}
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
return {"HTML":outstr.join(''),"guids":guids,"listen":listen};
|
|
||||||
}
|
|
||||||
|
|
||||||
editor_mode.prototype.objToTr = function(obj,commentObj,field){
|
|
||||||
var guid = editor.guid();
|
|
||||||
var thiseval = eval('obj'+field);
|
|
||||||
var comment = '';
|
|
||||||
try {
|
|
||||||
comment = eval('commentObj'+field);
|
|
||||||
} catch (error) {}
|
|
||||||
if(!comment)comment='';
|
|
||||||
|
|
||||||
var charlength=10;
|
|
||||||
|
|
||||||
var shortField = field.split("']").slice(-2)[0].split("['").slice(-1)[0];
|
|
||||||
shortField = (shortField.length<charlength?shortField:shortField.slice(0,charlength)+'...');
|
|
||||||
|
|
||||||
var commentHTMLescape=editor.HTMLescape(comment);
|
|
||||||
var shortCommentHTMLescape=(comment.length<charlength?commentHTMLescape:editor.HTMLescape(comment.slice(0,charlength))+'...');
|
|
||||||
|
|
||||||
var outstr=['<tr id="',guid,'"><td title="',field,'">',shortField,'</td>',
|
|
||||||
'<td title="',commentHTMLescape,'">',shortCommentHTMLescape,'</td>',
|
|
||||||
'<td><div class="etableInputDiv">',editor_mode.objToTd(thiseval,comment,field),'</div></td></tr>\n',
|
|
||||||
];
|
|
||||||
return [outstr.join(''),guid];
|
|
||||||
}
|
|
||||||
|
|
||||||
editor_mode.prototype.objToTd = function(thiseval,comment,field){
|
|
||||||
if( comment.indexOf('$select') != -1){
|
|
||||||
var evalstr = comment.split('$select')[1].split('$end')[0];
|
|
||||||
var values = eval(evalstr)['values'];
|
|
||||||
var outstr = ['<select>\n',"<option value='",JSON.stringify(thiseval),"'>",JSON.stringify(thiseval),'</option>\n'];
|
|
||||||
values.forEach(function(v){
|
|
||||||
outstr.push(["<option value='",JSON.stringify(v),"'>",JSON.stringify(v),'</option>\n'].join(''))
|
|
||||||
});
|
|
||||||
outstr.push('</select>');
|
|
||||||
return outstr.join('');
|
|
||||||
} else if( comment.indexOf('$input') != -1){
|
|
||||||
return ["<input spellcheck='false' value='",JSON.stringify(thiseval),"'/>\n"].join('');
|
|
||||||
} else {
|
|
||||||
//rows='",rows,"'
|
|
||||||
var num = 0;//editor_mode.indent(field);
|
|
||||||
return ["<textarea spellcheck='false' >",JSON.stringify(thiseval,null,num),'</textarea>\n'].join('');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
editor_mode.prototype.indent = function(field){
|
editor_mode.prototype.indent = function(field){
|
||||||
var num = '\t';
|
var num = '\t';
|
||||||
if(field.indexOf("['main']")===0)return 0;
|
if(field.indexOf("['main']")===0)return 0;
|
||||||
|
|||||||
@ -31,6 +31,7 @@ editor_multi.isString=false;
|
|||||||
editor_multi.lintAutocomplete=false;
|
editor_multi.lintAutocomplete=false;
|
||||||
|
|
||||||
editor_multi.show = function(){
|
editor_multi.show = function(){
|
||||||
|
if(typeof(selectBox)!==typeof(undefined))selectBox.isSelected = false;
|
||||||
var valueNow = codeEditor.getValue();
|
var valueNow = codeEditor.getValue();
|
||||||
//try{eval('function _asdygakufyg_() { return '+valueNow+'\n}');editor_multi.lintAutocomplete=true;}catch(ee){}
|
//try{eval('function _asdygakufyg_() { return '+valueNow+'\n}');editor_multi.lintAutocomplete=true;}catch(ee){}
|
||||||
if(valueNow.slice(0,8)==='function')editor_multi.lintAutocomplete=true;
|
if(valueNow.slice(0,8)==='function')editor_multi.lintAutocomplete=true;
|
||||||
@ -49,7 +50,7 @@ editor_multi.toggerLint = function() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
editor_multi.indent = function(field){
|
editor_multi.indent = function(field){
|
||||||
if(editor && editor.mode && editor.mode.indent)return editor.mode.indent(field);
|
if(typeof(editor)!==typeof(undefined) && editor && editor.mode && editor.mode.indent)return editor.mode.indent(field);
|
||||||
return '\t';
|
return '\t';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user