276 lines
9.7 KiB
JavaScript
276 lines
9.7 KiB
JavaScript
function loadProperties() {
|
|
jQuery.i18n.properties({// 加载资浏览器语言对应的资源文件
|
|
name : 'i18n', // 资源文件名称
|
|
path : 'i18n/', // 资源文件路径
|
|
mode : 'map', // 用 Map 的方式使用资源文件中的值
|
|
});
|
|
}
|
|
|
|
function createBehaviorsForm(data, behaviorData, behaviorIndex) {
|
|
var methodParams = new Array();
|
|
var fieldHTML = "";
|
|
for (var i = 0; i < data.length; i++) {
|
|
methodParams.push(data[i]);
|
|
}
|
|
for (var j = 0; j < methodParams.length; j++) {
|
|
var methodParamModel = new MethodParamModel(methodParams[j].name,
|
|
methodParams[j].lable, methodParams[j].valueSeperator,
|
|
methodParams[j].fieldSeperator, methodParams[j].paramType,
|
|
methodParams[j].methodParamProperties);
|
|
var methodParamProperties = new Array();
|
|
for (var q = 0; q < methodParamModel.methodParamProperties.length; q++) {
|
|
var methodParamPropertyModel = new MethodParamPropertyModel(
|
|
methodParamModel.methodParamProperties[q].key,
|
|
methodParamModel.methodParamProperties[q].value);
|
|
methodParamProperties.push(methodParamPropertyModel);
|
|
}
|
|
var type = methodParamModel.paramType;
|
|
var size = 0, cols = "", rows = "";
|
|
for (var p = 0; p < methodParamProperties.length; p++) {
|
|
var methodParamProertyModel = methodParamProperties[p];
|
|
if (methodParamProertyModel.key == "size") {
|
|
size = methodParamProertyModel.value;
|
|
} else if (methodParamProertyModel.key == "cols") {
|
|
cols = methodParamProertyModel.value;
|
|
} else if (methodParamProertyModel.key == "rows") {
|
|
rows = methodParamProertyModel.value;
|
|
}
|
|
}
|
|
if (type == "Field") {
|
|
fieldHTML += createField(methodParamModel.lable,
|
|
methodParamModel.name, size, behaviorIndex);
|
|
} else if (type == "MultiField") {
|
|
fieldHTML += createMultiField(methodParamModel.lable,
|
|
methodParamModel.name, size, behaviorIndex);
|
|
} else if (type == "Table") {
|
|
fieldHTML += createTable(methodParamModel, cols, behaviorIndex);
|
|
} else if (type == "CheckBox") {
|
|
fieldHTML += createCheckBox(methodParamModel, rows, behaviorIndex);
|
|
}
|
|
}
|
|
return fieldHTML;
|
|
}
|
|
|
|
|
|
function createField(label, name, size, behaviorIndex) {
|
|
if (size == 0) {
|
|
size = 20;
|
|
}
|
|
var divNode = document.createElement("div");
|
|
var p = document.createElement("p");
|
|
var labelNode = document.createTextNode(label);
|
|
var div = document.createElement("div");
|
|
var nameNode = document.createTextNode(name);
|
|
var input = document.createElement("input");
|
|
|
|
$(divNode).attr("class", "Field sample_frame");
|
|
$(divNode).attr("id", behaviorIndex + "_" + name);
|
|
$(div).attr("class", "sample_sub_frame");
|
|
$(input).attr("type", "text");
|
|
$(input).attr("size", size);
|
|
$(input).attr("id", name + "_input");
|
|
|
|
p.appendChild(labelNode);
|
|
div.appendChild(nameNode);
|
|
div.appendChild(input);
|
|
divNode.appendChild(p);
|
|
divNode.appendChild(div);
|
|
return divNode.outerHTML;
|
|
}
|
|
|
|
function createMultiField(label, name, size, behaviorIndex) {
|
|
if (size == 0) {
|
|
size = 20;
|
|
}
|
|
var divNode = document.createElement("div");
|
|
var p = document.createElement("p");
|
|
var labelNode = document.createTextNode(name + ":" + label);
|
|
var div = document.createElement("div");
|
|
var addFieldButton = document.createElement("button");
|
|
var addFieldNode = document.createTextNode($.i18n
|
|
.prop("addField"));
|
|
var removeFieldButton = document.createElement("button");
|
|
var removeFieldNode = document.createTextNode($.i18n
|
|
.prop("removeField"));
|
|
var br = document.createElement("br");
|
|
var table = document.createElement("table");
|
|
|
|
$(divNode).attr("class", "MultiField sample_frame");
|
|
$(divNode).attr("id", behaviorIndex + "_" + name);
|
|
$(div).attr("class", "sample_sub_frame");
|
|
$(addFieldButton).attr("type", "submit");
|
|
$(addFieldButton).attr("class", "btn-large");
|
|
$(addFieldButton).attr("onClick",
|
|
"addField(" + size + "," + behaviorIndex + ");");
|
|
$(removeFieldButton).attr("type", "submit");
|
|
$(removeFieldButton).attr("class", "btn-large");
|
|
$(removeFieldButton).attr("onClick", "removeField(this)");
|
|
$(table).attr("id", "addFieldTable_" + behaviorIndex);
|
|
$(table).attr("class", "table-margin");
|
|
|
|
p.appendChild(labelNode);
|
|
addFieldButton.appendChild(addFieldNode);
|
|
removeFieldButton.appendChild(removeFieldNode);
|
|
div.appendChild(addFieldButton);
|
|
div.appendChild(removeFieldButton);
|
|
div.appendChild(br);
|
|
div.appendChild(table);
|
|
divNode.appendChild(p);
|
|
divNode.appendChild(div);
|
|
return divNode.outerHTML;
|
|
}
|
|
|
|
var field;
|
|
function addField(size, addId) {
|
|
field = $("#addFieldTable_" + addId).children().length;
|
|
var data = "field_" + field + ":";
|
|
field = field + 1;
|
|
var newTrNode = document.createElement("tr");
|
|
var newTdNode1 = document.createElement("td");
|
|
var newTdNode2 = document.createElement("td");
|
|
newTdNode1.setAttribute("class", data);
|
|
var textNode = document.createTextNode(data);
|
|
var inputNode = document.createElement("input");
|
|
inputNode.setAttribute("type", "text");
|
|
inputNode.setAttribute("size", size);
|
|
|
|
newTdNode1.appendChild(textNode);
|
|
newTdNode2.appendChild(inputNode);
|
|
newTrNode.appendChild(newTdNode1);
|
|
newTrNode.appendChild(newTdNode2);
|
|
document.getElementById("addFieldTable_" + addId).appendChild(newTrNode);
|
|
}
|
|
|
|
function removeField(selectedNode) {
|
|
var table = selectedNode.nextSibling.nextSibling;
|
|
var deletedNode = table.lastChild;
|
|
table.removeChild(deletedNode);
|
|
}
|
|
|
|
function createTable(methodParamModel, cols, behaviorIndex) {
|
|
var name = methodParamModel.name;
|
|
var label = methodParamModel.lable;
|
|
var valueSeperator = methodParamModel.valueSeperator;
|
|
var table_content = cols.split(valueSeperator);
|
|
var tr = document.createElement("tr");
|
|
for (var i = 0; i < table_content.length; i++) {
|
|
var th = document.createElement("th");
|
|
var text = document.createTextNode(table_content[i]);
|
|
th.appendChild(text);
|
|
tr.appendChild(th);
|
|
}
|
|
var tr_content = document.createElement("tr");
|
|
for (var j = 0; j < table_content.length; j++) {
|
|
var td_content = document.createElement("td");
|
|
var text_content = document.createElement("input");
|
|
text_content.setAttribute("type", "text");
|
|
td_content.appendChild(text_content);
|
|
tr_content.appendChild(td_content);
|
|
}
|
|
var divNode = document.createElement("div");
|
|
var p = document.createElement("p");
|
|
var labelNode = document.createTextNode(label);
|
|
var div = document.createElement("div");
|
|
var nameNode = document.createTextNode(name);
|
|
var br1 = document.createElement("br");
|
|
var br2 = document.createElement("br");
|
|
var addColButton = document.createElement("button");
|
|
var addColNode = document.createTextNode($.i18n.prop("addCol"));
|
|
var removeColButton = document.createElement("button");
|
|
var removeColNode = document.createTextNode($.i18n
|
|
.prop("removeCol"));
|
|
var table = document.createElement("table");
|
|
var thead = document.createElement("thead");
|
|
var tbody = document.createElement("tbody");
|
|
|
|
$(divNode).attr("class", "Table sample_frame");
|
|
$(divNode).attr("id", behaviorIndex + "_" + name);
|
|
$(div).attr("class", "sample_sub_frame");
|
|
$(addColButton).attr("type", "submit");
|
|
$(addColButton).attr("class", "btn-large");
|
|
$(addColButton).attr("onClick", "addCol(this)");
|
|
$(removeColButton).attr("type", "submit");
|
|
$(removeColButton).attr("class", "btn-large");
|
|
$(removeColButton).attr("onClick", "removeCol(this)");
|
|
$(table).attr("class", behaviorIndex + "_operateTableCols");
|
|
$(table).attr("class", "table-margin");
|
|
|
|
p.appendChild(labelNode);
|
|
addColButton.appendChild(addColNode);
|
|
removeColButton.appendChild(removeColNode);
|
|
thead.appendChild(tr);
|
|
tbody.appendChild(tr_content);
|
|
table.appendChild(thead);
|
|
table.appendChild(tbody);
|
|
div.appendChild(nameNode);
|
|
div.appendChild(br1);
|
|
div.appendChild(addColButton);
|
|
div.appendChild(removeColButton);
|
|
div.appendChild(br2);
|
|
div.appendChild(table);
|
|
divNode.appendChild(p);
|
|
divNode.appendChild(div);
|
|
return divNode.outerHTML;
|
|
|
|
}
|
|
|
|
function addCol(selectedNode) {
|
|
var tbody = selectedNode.nextSibling.nextSibling.nextSibling.lastChild;
|
|
var length = tbody.previousSibling.firstChild.childNodes.length;
|
|
var tr = document.createElement("tr");
|
|
for (var i = 0; i < length; i++) {
|
|
var td = document.createElement("td");
|
|
var input = document.createElement("input");
|
|
input.setAttribute("type", "text");
|
|
td.appendChild(input);
|
|
tr.appendChild(td);
|
|
}
|
|
tbody.appendChild(tr);
|
|
}
|
|
|
|
function removeCol(selectedNode) {
|
|
var tbody = selectedNode.nextSibling.nextSibling.lastChild;
|
|
var removeNode = tbody.lastChild;
|
|
tbody.removeChild(removeNode);
|
|
}
|
|
|
|
function createCheckBox(methodParamModel, rows, behaviorIndex) {
|
|
var name = methodParamModel.name;
|
|
var label = methodParamModel.lable;
|
|
var valueSeperator = methodParamModel.valueSeperator;
|
|
var cb_content = rows.split(valueSeperator);
|
|
|
|
var result = document.createElement("div");
|
|
var divNode = document.createElement("div");
|
|
var p = document.createElement("p");
|
|
var div = document.createElement("div");
|
|
var br = document.createElement("br");
|
|
var divInput = document.createElement("div");
|
|
var labelNode = document.createTextNode(label);
|
|
var nameNode = document.createTextNode(name);
|
|
$(divNode).attr("class", "CheckBox sample_frame");
|
|
$(divNode).attr("id", "checkbox_" + name + "_" + behaviorIndex);
|
|
$(div).attr("class", "sample_sub_frame");
|
|
$(divInput).attr("class", "sample_sub_frame");
|
|
p.appendChild(labelNode);
|
|
for (var i = 0; i < cb_content.length; i++) {
|
|
var checkBoxNode = document.createElement("input");
|
|
var brInput = document.createElement("br");
|
|
checkBoxNode.setAttribute("type", "checkbox");
|
|
checkBoxNode.setAttribute("name", "checkbox_" + name + "_"
|
|
+ behaviorIndex);
|
|
checkBoxNode.setAttribute("value", cb_content[i]);
|
|
var checkBoxValue = document.createTextNode(cb_content[i]);
|
|
divInput.appendChild(checkBoxNode);
|
|
divInput.appendChild(checkBoxValue);
|
|
divInput.appendChild(brInput);
|
|
}
|
|
div.appendChild(nameNode);
|
|
div.appendChild(br);
|
|
div.appendChild(divInput);
|
|
divNode.appendChild(p);
|
|
divNode.appendChild(div);
|
|
result.appendChild(divNode);
|
|
return $(result).html();
|
|
|
|
} |