📄 formtoolbox.js
字号:
input2.value = "..."; input.appendChild(input1); input.appendChild(txt); input.appendChild(input2); var browseRef = self.browseRef(input1,p,p.dialog); OAT.Dom.attach(input2,"click",browseRef); self.addTable(text,input); break; } /* property type switch */ } /* for all properties */ /* datasources */ if (o.datasources.length) { var t = OAT.Dom.text("Datasources"); self.addTable(t); } for (var i=0;i<o.datasources.length;i++) { var ds = o.datasources[i]; var t = OAT.Dom.text(ds.name); var colList = o.form.outputFields; if (ds.variable) { /* variable count datasource */ var cnt_select = OAT.Dom.create("select"); for (var j=0;j<11;j++) { OAT.Dom.option(j,j,cnt_select); if (j == ds.names.length) { cnt_select.selectedIndex = j; } } self.addTable(t,cnt_select); /* count change reference */ var dsCountRef = self.dsCountRef(cnt_select,ds,o); OAT.Dom.attach(cnt_select,"change",dsCountRef); /* actual values */ for (var j=0;j<ds.names.length;j++) { var text = OAT.Dom.text("#"+(j+1)+" name"); var name = OAT.Dom.create("input"); name.setAttribute("type","text"); name.setAttribute("size","16"); name.value = ds.names[j]; OAT.Bindings.bindString(name,ds.names,j); self.addTable(text,name); var text = OAT.Dom.text("#"+(j+1)+" value"); var select = OAT.Dom.create("select"); OAT.Dom.option("","-1",select); for (var k=0;k<colList.length;k++) { OAT.Dom.option(colList[k],k,select); if (k == ds.columnIndexes[j]) { select.selectedIndex = k+1; } } OAT.Bindings.bindSelect(select,ds.columnIndexes,j); self.addTable(text,select); } } else { /* static datasource */ var select = OAT.Dom.create("select"); OAT.Dom.option("","-1",select); for (var j=0;j<colList.length;j++) { OAT.Dom.option(colList[j],j,select); if (j == ds.columnIndexes[0]) { select.selectedIndex = j+1; } } OAT.Bindings.bindSelect(select,ds.columnIndexes,0); self.addTable(t,select); } } /* css */ if (o.css.length) { var t = OAT.Dom.text("Appearance"); self.addTable(t); } for (var i=0;i<o.css.length;i++) { var css = o.css[i]; var text = OAT.Dom.text(css.name); var value = OAT.Dom.style(o.elm,css.property); switch (css.type) { case "string": var input = OAT.Dom.create("input"); input.setAttribute("size","5"); input.value = value; OAT.Bindings.bindString(input,o.elm.style,css.property); self.addTable(text,input); break; case "combo": var input = new OAT.Combolist(css.options,value); input.input.setAttribute("size","6"); OAT.Bindings.bindCombo(input,o.elm.style,css.property); self.addTable(text,input.div); break; case "select": var input = OAT.Dom.create("select"); for (var i=0;i<css.options.length;i++) { OAT.Dom.option(css.options[i],css.options[i],input); if (css.options[i] == css.value) { input.selectedIndex = i; } } OAT.Bindings.bindSelect(input,o.elm.style,css.property); self.addTable(text,input); break; case "color": var input = OAT.Dom.create("div",{cssFloat:"right",styleFloat:"right",width:"16px",height:"8px",margin:"3px",backgroundColor:value,border:"1px solid #000",cursor:"pointer",overflow:"hidden"}); OAT.Bindings.bindColor(input,o.elm.style,css.property); self.addTable(text,input); break; } } /* delete */ var del = OAT.Dom.create("a",{marginTop:"3px"}); del.setAttribute("href","#"); del.innerHTML = "remove"; var delRef = function(event) { o.deselect(); OAT.Dom.unlink(o.elm); var index = -1; for (var i=0;i<obj.objects.length;i++) if (obj.objects[i] == o) { index = i; } obj.objects.splice(index,1); self.showForm(o.form); /* show form */ } OAT.Dom.attach(del,"click",delRef); self.addTable(del); } this.showMulti = function() { self.clear(); self.name.innerHTML = "[multiple]"; self.createTable(); var alignTop = OAT.Dom.create("a",{display:"block"}); alignTop.setAttribute("href","#"); alignTop.innerHTML = "align to top"; self.addTable(alignTop); OAT.Dom.attach(alignTop,"click",function(){obj.alignSelected("top");}); var alignBottom = OAT.Dom.create("a",{display:"block"}); alignBottom.setAttribute("href","#"); alignBottom.innerHTML = "align to bottom"; self.addTable(alignBottom); OAT.Dom.attach(alignBottom,"click",function(){obj.alignSelected("bottom");}); var alignLeft = OAT.Dom.create("a",{display:"block"}); alignLeft.setAttribute("href","#"); alignLeft.innerHTML = "align to left"; self.addTable(alignLeft); OAT.Dom.attach(alignLeft,"click",function(){obj.alignSelected("left");}); var alignRight = OAT.Dom.create("a",{display:"block"}); alignRight.setAttribute("href","#"); alignRight.innerHTML = "align to right"; self.addTable(alignRight); OAT.Dom.attach(alignRight,"click",function(){obj.alignSelected("right");}); var del = OAT.Dom.create("a",{marginTop:"3px"}); del.setAttribute("href","#"); del.innerHTML = "remove"; var delRef = function(event) { for (var i=0;i<obj.selObjs.length;i++) { var o = obj.selObjs[i]; o.deselect(); OAT.Dom.unlink(o.elm); var index = -1; for (var j=0;j<obj.objects.length;j++) if (obj.objects[j] == o) { index = j; } obj.objects.splice(index,1); } self.showForm(o.form); /* show form */ } OAT.Dom.attach(del,"click",delRef); self.addTable(del); } /************************************************************/ this.fieldCountRef = function(cnt_select,form) { return function() { var fb = form.fieldBinding; var oldLen = fb.selfFields.length; var newLen = parseInt(cnt_select.value); fb.selfFields.length = newLen; fb.masterForms.length = newLen; fb.masterFields.length = newLen; for (var j=0;j<newLen;j++) { if (j >= oldLen) { fb.selfFields[j] = 0; fb.masterForms[j] = false; fb.masterFields[j] = ""; } } self.showForm(form); } } this.dsCountRef = function(cnt_select,ds,o) { return function() { var oldLen = ds.names.length; ds.names.length = parseInt(cnt_select.value); ds.columnIndexes.length = parseInt(cnt_select.value); for (var j=0;j<ds.names.length;j++) { if (j >= oldLen) { ds.names[j] = ""; ds.columnIndexes[j] = -1; } } self.showObject(o); } } this.browseRef = function(elm,property,mode) { return function() { var callback = function(name) { var f = name.split("/").pop(); elm.innerHTML = f+" "; property.value = name; if (property.onselect) { property.onselect(); } } self.selectFile(callback,mode); } } this.createFieldPair = function(form,index) { /* first part - list of own input fields */ var fb = form.fieldBinding; var s = OAT.Dom.create("select"); for (var i=0;i<form.inputFields.length;i++) { OAT.Dom.option(form.inputFields[i],i,s); if (fb.selfFields[index] == i) { s.selectedIndex = i; } } OAT.Dom.attach(s,"change",function(){fb.selfFields[index] = parseInt($v(s));}); /* second part - list of available other fields, direct input or parametrized values */ var div = OAT.Dom.create("div"); /* 1.direct value */ var d1 = OAT.Dom.create("div"); var r1 = OAT.Dom.create("input"); r1.type = "radio"; r1.name = "radio_"+index; var inp = OAT.Dom.create("input"); inp.type = "text"; inp.size = 40; if (!fb.masterForms[index] && typeof(fb.masterFields[index]) == "string") { r1.checked = true; inp.value = fb.masterFields[index]; } OAT.Dom.attach(inp,"keyup",function(){ if (!r1.checked) { return; } fb.masterFields[index] = $v(inp); }); OAT.Dom.attach(r1,"change",function(){ fb.masterForms[index] = false; fb.masterFields[index] = $v(inp); }); d1.appendChild(r1); d1.appendChild(inp); /* 2.pick a column */ var d2 = OAT.Dom.create("div"); var r2 = OAT.Dom.create("input"); r2.type = "radio"; r2.name = "radio_"+index; if (fb.masterForms[index]) { r2.checked = true; } var sel = OAT.Dom.create("select"); var currIndex = -1; for (var i=0;i<self.obj.forms.length;i++) { var f = self.obj.forms[i]; if (f != form) { for (var j=0;j<f.outputFields.length;j++) { currIndex++; var name = f.toString()+"."+f.outputFields[j]; var o = OAT.Dom.option(name,name,sel); o.masterForm = f; o.masterField = j; if (fb.masterForms[index] == f && fb.masterFields[index] == j) { sel.selectedIndex = currIndex; } } } } var changeRef = function() { if (!r2.checked) { return; } var o = sel.childNodes[sel.selectedIndex]; fb.masterForms[index] = o.masterForm; fb.masterFields[index] = o.masterField; } OAT.Dom.attach(r2,"change",changeRef); OAT.Dom.attach(sel,"change",changeRef); d2.appendChild(r2); d2.appendChild(sel); /* 3.parameter */ var d3 = OAT.Dom.create("div"); var r3 = OAT.Dom.create("input"); r3.type = "radio"; r3.name = "radio_"+index; var text = OAT.Dom.create("span"); text.innerHTML = " ask at runtime"; if (!fb.masterForms[index] && fb.masterFields[index] == -1) { r3.checked = true; } OAT.Dom.attach(r3,"change",function(){ fb.masterForms[index] = false; fb.masterFields[index] = -1; }); d3.appendChild(r3); d3.appendChild(text); div.appendChild(d1); div.appendChild(d2); div.appendChild(d3); return [s,div]; } } /* Toolbox() */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -