editor_table
This commit is contained in:
parent
b6b6aa33f6
commit
ffb8a5e2b3
@ -9,8 +9,13 @@ editor_table_wrapper = function (editor) {
|
|||||||
* HTML模板
|
* HTML模板
|
||||||
*/
|
*/
|
||||||
|
|
||||||
editor_table.prototype.select = function (options) {
|
editor_table.prototype.select = function (value, values) {
|
||||||
return `<select>\n${options.join('')}</select>\n`
|
return `<select>\n${
|
||||||
|
editor.table.option(value) +
|
||||||
|
values.map(function (v) {
|
||||||
|
return editor.table.option(v)
|
||||||
|
}).join('')
|
||||||
|
}</select>\n`
|
||||||
}
|
}
|
||||||
editor_table.prototype.option = function (value) {
|
editor_table.prototype.option = function (value) {
|
||||||
return `<option value='${JSON.stringify(value)}'>${JSON.stringify(value)}</option>\n`
|
return `<option value='${JSON.stringify(value)}'>${JSON.stringify(value)}</option>\n`
|
||||||
@ -25,6 +30,51 @@ editor_table_wrapper = function (editor) {
|
|||||||
return `<textarea spellcheck='false'>${JSON.stringify(value, null, indent || 0)}</textarea>\n`
|
return `<textarea spellcheck='false'>${JSON.stringify(value, null, indent || 0)}</textarea>\n`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
editor_table.prototype.title = function () {
|
||||||
|
return `\n<tr><td>条目</td><td>注释</td><td>值</td></tr>\n`
|
||||||
|
}
|
||||||
|
|
||||||
|
editor_table.prototype.gap = function (field) {
|
||||||
|
return `<tr><td>----</td><td>----</td><td>${field}</td></tr>\n`
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
/**
|
||||||
|
* 表格生成的控制
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 缩进控制, 此函数未实装, 目前全部使用的是0
|
||||||
|
*/
|
||||||
|
editor_table.prototype.indent = function (field) {
|
||||||
|
var num = '\t';
|
||||||
|
if (field.indexOf("['main']") === 0) return 0;
|
||||||
|
if (field === "['special']") return 0;
|
||||||
|
return num;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 注释对象的默认值
|
||||||
|
*/
|
||||||
|
editor_table.prototype.defaultcobj = {
|
||||||
|
// 默认是文本域
|
||||||
|
_type: 'textarea',
|
||||||
|
_data: '',
|
||||||
|
_string: function (args) {//object~[field,cfield,vobj,cobj]
|
||||||
|
var thiseval = args.vobj;
|
||||||
|
return (typeof (thiseval) === typeof ('')) && thiseval[0] === '"';
|
||||||
|
},
|
||||||
|
// 默认情况下 非对象和数组的视为叶节点
|
||||||
|
_leaf: function (args) {//object~[field,cfield,vobj,cobj]
|
||||||
|
var thiseval = args.vobj;
|
||||||
|
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,空数组,空对象
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
/**
|
/**
|
||||||
@ -56,7 +106,7 @@ editor_table_wrapper = function (editor) {
|
|||||||
*/
|
*/
|
||||||
editor_table.prototype.objToTable_ = function (obj, commentObj) {
|
editor_table.prototype.objToTable_ = function (obj, commentObj) {
|
||||||
// 表格抬头
|
// 表格抬头
|
||||||
var outstr = ["\n<tr><td>条目</td><td>注释</td><td>值</td></tr>\n"];
|
var outstr = [editor.table.title()];
|
||||||
var guids = [];
|
var guids = [];
|
||||||
var defaultcobj = {
|
var defaultcobj = {
|
||||||
// 默认是文本域
|
// 默认是文本域
|
||||||
@ -124,7 +174,7 @@ editor_table_wrapper = function (editor) {
|
|||||||
if (cobj._hide) continue;
|
if (cobj._hide) continue;
|
||||||
if (!cobj._leaf) {
|
if (!cobj._leaf) {
|
||||||
// 不是叶节点时, 插入展开的标记并继续遍历, 此处可以改成按钮用来添加新项或折叠等
|
// 不是叶节点时, 插入展开的标记并继续遍历, 此处可以改成按钮用来添加新项或折叠等
|
||||||
outstr.push(["<tr><td>----</td><td>----</td><td>", field, "</td></tr>\n"].join(''));
|
outstr.push(editor.table.gap(field));
|
||||||
recursionParse(field, cfield, vobj, cobj);
|
recursionParse(field, cfield, vobj, cobj);
|
||||||
} else {
|
} else {
|
||||||
// 是叶节点时, 调objToTr_渲染<tr>
|
// 是叶节点时, 调objToTr_渲染<tr>
|
||||||
@ -309,28 +359,18 @@ editor_table_wrapper = function (editor) {
|
|||||||
var thiseval = vobj;
|
var thiseval = vobj;
|
||||||
if (cobj._select) {
|
if (cobj._select) {
|
||||||
var values = cobj._select.values;
|
var values = cobj._select.values;
|
||||||
var outstr = ['<select>\n', "<option value='", JSON.stringify(thiseval), "'>", JSON.stringify(thiseval), '</option>\n'];
|
return editor.table.select(thiseval,values);
|
||||||
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 (cobj._input) {
|
} else if (cobj._input) {
|
||||||
return ["<input type='text' spellcheck='false' value='", JSON.stringify(thiseval), "'/>\n"].join('');
|
return editor.table.text(thiseval);
|
||||||
} else if (cobj._bool) {
|
} else if (cobj._bool) {
|
||||||
return ["<input type='checkbox' ", (thiseval ? 'checked ' : ''), "/>\n"].join('');
|
return editor.table.checkbox(thiseval);
|
||||||
} else {
|
} else {
|
||||||
var num = 0;//editor_table.indent(field);
|
var num = 0;//editor_table.indent(field);
|
||||||
return ["<textarea spellcheck='false' >", JSON.stringify(thiseval, null, num), '</textarea>\n'].join('');
|
return editor.table.textarea(thiseval,num);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
editor_table.prototype.indent = function (field) {
|
|
||||||
var num = '\t';
|
|
||||||
if (field.indexOf("['main']") === 0) return 0;
|
|
||||||
if (field === "['special']") return 0;
|
|
||||||
return num;
|
|
||||||
}
|
|
||||||
|
|
||||||
editor.constructor.prototype.table = new editor_table();
|
editor.constructor.prototype.table = new editor_table();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -13,6 +13,7 @@
|
|||||||
+ [ ] editor_table 处理表格的生成, 及其响应的事件, 从原editor\_mode中分离
|
+ [ ] editor_table 处理表格的生成, 及其响应的事件, 从原editor\_mode中分离
|
||||||
+ [ ] editor_file 调用fs.js编辑文件, 把原editor\_file模块化
|
+ [ ] editor_file 调用fs.js编辑文件, 把原editor\_file模块化
|
||||||
+ [ ] editor_game 处理来自core的数据, 导入为editor的数据, 从原editor中分离
|
+ [ ] editor_game 处理来自core的数据, 导入为editor的数据, 从原editor中分离
|
||||||
|
+ [ ] editor_util 生成guid等函数, 从editor分离
|
||||||
+ [ ] editor 执行初始化流程加组合各组件
|
+ [ ] editor 执行初始化流程加组合各组件
|
||||||
|
|
||||||
+ [ ] 原editor_mode 移除
|
+ [ ] 原editor_mode 移除
|
||||||
@ -29,6 +30,7 @@ editor: {
|
|||||||
multi: 组件
|
multi: 组件
|
||||||
file: 组件
|
file: 组件
|
||||||
table: 组件
|
table: 组件
|
||||||
|
util: 组件
|
||||||
}
|
}
|
||||||
game: 来自游戏的数据
|
game: 来自游戏的数据
|
||||||
mode: 当前的模式(左侧的选择)
|
mode: 当前的模式(左侧的选择)
|
||||||
@ -57,6 +59,26 @@ editor: {
|
|||||||
+ [ ] ? 表格折叠
|
+ [ ] ? 表格折叠
|
||||||
变为四栏, 可以折叠展开
|
变为四栏, 可以折叠展开
|
||||||
|
|
||||||
|
+ [ ] blockly对于无法识别的图块原样返回
|
||||||
|
|
||||||
|
+ [ ] ? 简洁的事件方块注册
|
||||||
|
`editor.registerEvent('log',[['test','Int','测试',0],['floorId','Idstring','楼层','MT0']])`
|
||||||
|
|
||||||
|
+ [ ] 一个显示所有快捷键的文本
|
||||||
|
|
||||||
|
+ [ ] 更多快捷键
|
||||||
|
【全塔属性】、【楼层属性】等常用的编辑栏切换
|
||||||
|
|
||||||
|
+ [ ] ? 地图编辑优化
|
||||||
|
常用的地图编辑快捷键/命令:复制ctrl+c、粘贴ctrl+v、(复制可绑定为现在的“选中xx位置事件” 粘贴为复制xx事件到此处),撤回ctrl+z、取消撤回ctrl+y
|
||||||
|
可以按住拖动图块与事件。
|
||||||
|
|
||||||
|
+ [ ] ? 自由建立快捷键到命令的注册表。
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## 左侧页面模式
|
## 左侧页面模式
|
||||||
|
|
||||||
标题? 保存按钮? 添加按钮? 删除按钮?
|
标题? 保存按钮? 添加按钮? 删除按钮?
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user