commit
c1c9cb7905
@ -453,7 +453,7 @@ editor.prototype.listen = function() {
|
||||
if( e.ctrlKey && ( e.keyCode == 90 || e.keyCode == 89 ) )
|
||||
e.preventDefault();
|
||||
//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.updateMap();
|
||||
reDo = JSON.parse(JSON.stringify(currDrawData));
|
||||
@ -461,7 +461,7 @@ editor.prototype.listen = function() {
|
||||
preMapData = null;
|
||||
}
|
||||
//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));
|
||||
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));
|
||||
|
||||
@ -235,7 +235,7 @@ document.getElementById('blocklyDiv').onmousewheel = function(e){
|
||||
//console.log(e);
|
||||
e.preventDefault();
|
||||
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.setScale(workspace.scale);
|
||||
}
|
||||
@ -370,6 +370,7 @@ editor_blockly.import = function(id_,args){
|
||||
|
||||
var blocklyWidgetDiv = document.getElementsByClassName('blocklyWidgetDiv');
|
||||
editor_blockly.show = function(){
|
||||
if(typeof(selectBox)!==typeof(undefined))selectBox.isSelected = false;
|
||||
document.getElementById('left6').style='';
|
||||
for(var ii =0,node;node=blocklyWidgetDiv[ii];ii++){
|
||||
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(actionList) && actionList.length > 0){
|
||||
saveSetting('data',actionList,function (err) {
|
||||
callback([
|
||||
(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){
|
||||
if (isset(editor.main[v]))
|
||||
locObj.main[v]=editor.main[v];
|
||||
locObj.main[v]=data_obj.main[v];
|
||||
else
|
||||
locObj[v]=null;
|
||||
});
|
||||
@ -439,10 +441,11 @@ editor_file = function(editor, callback){
|
||||
} else {
|
||||
callback([
|
||||
(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){
|
||||
if (isset(editor.main[v]))
|
||||
locObj.main[v]=editor.main[v];
|
||||
locObj.main[v]=data_obj.main[v];
|
||||
else
|
||||
locObj[v]=null;
|
||||
});
|
||||
|
||||
@ -112,6 +112,7 @@ editor_mode.prototype.objToTable_ = function(obj,commentObj){
|
||||
}
|
||||
if(checkRange(cobj._range,thiseval)){
|
||||
editor_mode.addAction(['change',field,thiseval]);
|
||||
editor_mode.onmode('save');//自动保存
|
||||
} else {
|
||||
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){
|
||||
var num = '\t';
|
||||
if(field.indexOf("['main']")===0)return 0;
|
||||
|
||||
@ -31,6 +31,7 @@ editor_multi.isString=false;
|
||||
editor_multi.lintAutocomplete=false;
|
||||
|
||||
editor_multi.show = function(){
|
||||
if(typeof(selectBox)!==typeof(undefined))selectBox.isSelected = false;
|
||||
var valueNow = codeEditor.getValue();
|
||||
//try{eval('function _asdygakufyg_() { return '+valueNow+'\n}');editor_multi.lintAutocomplete=true;}catch(ee){}
|
||||
if(valueNow.slice(0,8)==='function')editor_multi.lintAutocomplete=true;
|
||||
@ -49,7 +50,7 @@ editor_multi.toggerLint = function() {
|
||||
}
|
||||
|
||||
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';
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user