⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 formdesigner.js

📁 its a varypowrerfull javascript tool
💻 JS
📖 第 1 页 / 共 2 页
字号:
			}		}	} /* FormDesigner::createDrags() */		this.deselectAll = function() {		for (var i=0;i<self.objects.length;i++) { self.objects[i].deselect(); OAT.Drag.removeAll(self.objects[i].elm); }	} /* FormDesigner::deselectAll() */		this.selectObject = function(obj,event) {		if (obj.selected) { return; } /* what to do when element gets clicked */		if (event) {			if (!event.shiftKey && !event.ctrlKey) { self.deselectAll(); }		}		obj.select();		self.createDrags();		if (self.selObjs.length > 1) { 			self.toolbox.showMulti(); 		} else { 			self.toolbox.showObject(obj); 		}	}		this.addObject = function(form,type,x,y) {		/* add object 'type' to form. event at [x, y] */		var coords = OAT.Dom.position(form.div);				var obj_x = x - coords[0];		var obj_y = y - coords[1];				var formObj = new OAT.FormObject[type](obj_x,obj_y,1);		formObj.form = form;		self.objects.push(formObj);		form.div.appendChild(formObj.elm);		self.deselectAll();				self.selectObject(formObj);		var cancelRef = function(event) { event.cancelBubble = true; }				OAT.Dom.attach(formObj.elm,"click",function(event){self.selectObject(formObj,event);});		OAT.Dom.attach(formObj.elm,"mousedown",cancelRef);		return formObj;	}	this.alignSelected = function(type) {		var extreme = -1;		for (var i=0;i<self.objects.length;i++) if (self.objects[i] && self.objects[i].selected) {			var e = self.objects[i].elm;			var x = e.offsetLeft;			var y = e.offsetTop;			var w = e.offsetWidth-4;			var h = e.offsetHeight-4;			switch (type) {				case "top": if (extreme == -1 || y < extreme) { extreme = y; } break;				case "left": if (extreme == -1 || x < extreme) { extreme = x; } break;				case "bottom": if (extreme == -1 || y+h > extreme) { extreme = y+h; } break;				case "right": if (extreme == -1 || x+w > extreme) { extreme = x+w; } break;			} /* switch */		}		for (var i=0;i<self.objects.length;i++) if (self.objects[i] && self.objects[i].selected) {			var e = self.objects[i].elm;			var w = e.offsetWidth-4;			var h = e.offsetHeight-4;			switch (type) {				case "top": e.style.top = extreme + "px"; break;				case "left": e.style.left = extreme + "px"; break;				case "bottom": e.style.top = (extreme - h) + "px"; break;				case "right": e.style.left = (extreme - w) + "px"; break;			} /* switch */		}	} /* FormDesigner::alignSelected(type); */		this.loadXML = function(data) {		var tmp;		var xml = OAT.Xml.getTreeString(data);		var root = xml.documentElement;		var c = root.getElementsByTagName("connection")[0];		OAT.Xmla.dsn = c.getAttribute("dsn");		OAT.Xmla.endpoint = c.getAttribute("endpoint");		if (c.getAttribute("user")) {			OAT.Xmla.user = OAT.Crypto.base64d(c.getAttribute("user"));			OAT.Xmla.password = OAT.Crypto.base64d(c.getAttribute("password"));		}				var forms = root.getElementsByTagName("form");		self.clear({addNav:false});		for (var i=0;i<forms.length;i++) {			if (i) { var f = self.addForm({addNav:false}); } else { var f = self.forms[0]; }			var fb = f.fieldBinding;						if (forms[i].getAttribute("hidden")) { f.hidden = 1; } /* hidden? */			f.empty = parseInt(forms[i].getAttribute("empty")); /* should be emptied with no data? */			f.name = forms[i].getAttribute("name"); /* name */			f.pageSize = parseInt(forms[i].getAttribute("pagesize"));			f.cursorType = parseInt(forms[i].getAttribute("cursortype"));			var dso = forms[i].getElementsByTagName("datasource")[0];			f.ds.type = parseInt(dso.getAttribute("type"));			f.ds.subtype = parseInt(dso.getAttribute("subtype"));			f.ds.url = dso.getAttribute("url");			f.ds.service = dso.getAttribute("service");			f.ds.xpath = parseInt(dso.getAttribute("xpath"));			var tmp = dso.getElementsByTagName("query")[0];			f.ds.query = OAT.Xml.textValue(tmp);			var tmp = dso.getElementsByTagName("inputField");			f.inputFields = [];			for (var j=0;j<tmp.length;j++) {				f.inputFields.push(OAT.Xml.textValue(tmp[j]));			}			var tmp = dso.getElementsByTagName("outputField");			f.outputFields = [];			for (var j=0;j<tmp.length;j++) {				var v = OAT.Xml.textValue(tmp[j]);				f.outputFields.push(OAT.Dom.fromSafeXML(v));			}			var tmp = dso.getElementsByTagName("selfField");			for (var j=0;j<tmp.length;j++) {				fb.selfFields.push(parseInt(OAT.Xml.textValue(tmp[j])));			}			var tmp = dso.getElementsByTagName("masterForm");			for (var j=0;j<tmp.length;j++) {				var val = OAT.Xml.textValue(tmp[j]);				fb.masterForms.push(val);			}			var tmp = dso.getElementsByTagName("masterField");			for (var j=0;j<tmp.length;j++) {				var val = OAT.Xml.textValue(tmp[j]);				if (fb.masterForms[j] == "false") {					fb.masterFields.push(val == "-1" ? -1 : OAT.Dom.fromSafeXML(val));				} else {					fb.masterFields.push(parseInt(val));				}			}			tmp = forms[i].getElementsByTagName("area")[0];			var attrib = tmp.attributes[0];			f.div.style.color = tmp.getAttribute("fgcolor");			f.div.style.backgroundColor = tmp.getAttribute("bgcolor");			f.div.style.fontSize = tmp.getAttribute("size");			f.div.style.left = tmp.getAttribute("left")+"px";			f.div.style.top = tmp.getAttribute("top")+"px";			f.div.style.width = tmp.getAttribute("width")+"px";			f.div.style.height = tmp.getAttribute("height")+"px";						var objects = forms[i].getElementsByTagName("object");			for (var j=0;j<objects.length;j++) {				var type = objects[j].getAttribute("type");				var obj = self.addObject(f,type,0,0);				if (obj.userSet) { obj.setValue(objects[j].getAttribute("value")); }				obj.loadXML(objects[j]);			}						var cb = (i==0 ? function(){self.selectForm(self.forms[0]);}:function(){});						f.refresh(cb,false);		} /* for all forms */				/* create master links */		for (var i=0;i<self.forms.length;i++) {			var f = self.forms[i];			var fb = f.fieldBinding;			for (var j=0;j<fb.masterForms.length;j++) {				if (fb.masterForms[j] == "false") { fb.masterForms[j] = false; } else {					fb.masterForms[j] = self.forms[parseInt(fb.masterForms[j])];				}			}		}		/* create pin links */		for (var i=0;i<self.objects.length;i++) if (self.objects[i].name == "map") {			var o = self.objects[i];			var v = o.properties[4].value;			if (v == -1) { o.properties[4].value = false; } else { o.properties[4].value = self.forms[v]; }		}				self.selectForm(self.forms[0]);	} /* FormDesigner::loadXML() */	this.toXML = function(xslStr) {		var xml = '<?xml version="1.0" ?>\n';		if (xslStr) { xml += xslStr+'\n'; }		xml += '<design>\n';		xml += '\t<connection dsn="'+OAT.Xmla.dsn+'" endpoint="'+OAT.Xmla.endpoint+'" ';		if ($("options_uid").checked) { xml += 'user="'+OAT.Crypto.base64e(OAT.Xmla.user)+'" password="'+OAT.Crypto.base64e(OAT.Xmla.password)+'"'; }		xml += ' showajax="'+($("options_showajax").checked ? 1 : 0)+'" ';		xml += ' nocred="'+($("options_nocred").checked ? 1 : 0)+'"></connection>\n';		for (var i=0;i<self.forms.length;i++) {			var f = self.forms[i];			var d = f.div;			var fb = f.fieldBinding;			var tmp = [];			for (var j=0;j<fb.masterForms.length;j++) {				var index = self.forms.find(fb.masterForms[j]);				tmp.push(index != -1 ? index : "false");			}			xml += '\t<form name="'+f.name+'" empty="'+f.empty+'" ';			xml += ' cursortype="'+f.cursorType+'" pagesize="'+f.pageSize+'" ';			if (f.hidden == "1") { xml += 'hidden="1" '; }			xml += '>\n';			xml += '\t\t<datasource type="'+f.ds.type+'" subtype="'+f.ds.subtype+'" url="'+f.ds.url+'" ';			xml += 'xpath="'+f.ds.xpath+'" service="'+f.ds.service+'" rootelement="'+f.ds.rootElement+'">\n';			xml += '\t\t\t<outputFields>\n';			for (var j=0;j<f.outputFields.length;j++) {				xml += '\t\t\t\t<outputField>'+OAT.Dom.toSafeXML(f.outputFields[j])+'</outputField>\n';			}			xml += '\t\t\t</outputFields>\n';			xml += '\t\t\t<inputFields>\n';			for (var j=0;j<f.inputFields.length;j++) {				xml += '\t\t\t\t<inputField>'+f.inputFields[j]+'</inputField>\n';			}			xml += '\t\t\t</inputFields>\n';			xml += '\t\t\t<query>'+f.ds.query+'</query>\n';			xml += '\t\t\t<selfFields>\n';			for (var j=0;j<fb.selfFields.length;j++) {				xml += '\t\t\t\t<selfField>'+fb.selfFields[j]+'</selfField>\n';			}			xml += '\t\t\t</selfFields>\n';			xml += '\t\t\t<masterFields>\n';			for (var j=0;j<fb.masterFields.length;j++) {				xml += '\t\t\t\t<masterField>'+OAT.Dom.toSafeXML(fb.masterFields[j])+'</masterField>\n';			}			xml += '\t\t\t</masterFields>\n';			xml += '\t\t\t<masterForms>\n';			for (var j=0;j<tmp.length;j++) {				xml += '\t\t\t\t<masterForm>'+tmp[j]+'</masterForm>\n';			}			xml += '\t\t\t</masterForms>\n';			xml += '\t\t</datasource>';			var bg = OAT.Dom.style(d,"backgroundColor");			var fg = OAT.Dom.style(d,"color");			var size = OAT.Dom.style(d,"fontSize");			var coords = OAT.Dom.getLT(d);			var dims = OAT.Dom.getWH(d);			xml += '\t\t<area bgcolor="'+bg+'" fgcolor="'+fg+'" size="'+size+'" '+				'left="'+coords[0]+'" top="'+coords[1]+'" width="'+dims[0]+'" height="'+dims[1]+'" />\n';						for (var j=0;j<self.objects.length;j++) {				if (self.objects[j].form == f) { 					xml += '\t\t'+self.objects[j].toXML(self)+'\n'; 				}			}						xml += '\t</form>\n';		}		xml += '</design>\n';				return xml;	} /* FormDesigner::toXML(); */}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -