123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250 |
- var submitArray = new Array();
- function asyncSend(transactionId, paramPath, resultPath, responseHandler, errorHandler) {
-
-
- var submitUUID = "" + getRandomSubmitUUID();
-
-
- var submit = TFHttpService.createInstance(submitUUID);
- submit.URL = getActionURL(transactionId);
- submit.mediaType = "application/x-www-form-urlencoded";
- submit.method = "POST";
-
- submit.onResponse = "defualtResponseHandler";
- submit.onError = "defualtErrorHandler";
-
-
-
- if (submitArray == undefined || submitArray == null) {
- submitArray = new Array();
- }
-
-
- var submitItem = new Object();
- submitItem.trid = transactionId;
- submitItem.resultPath = resultPath;
- submitItem.submitUUID = submitUUID;
- submitItem.responseHandler = responseHandler;
- submitItem.errorHandler = errorHandler;
-
- submitArray.push(submitItem);
-
- submit.send(paramPath);
- }
- function defualtResponseHandler(submitUUID, response, responseType) {
-
- if (submitArray == null || submitArray.length <= 0) {
- messageBox("submit ��� ó�� �� ������ ���Ͽ����ϴ�.", "C");
- return;
- }
-
- var submitItem = getSubmitItem(submitUUID);
-
- bindInstance(submitUUID, response, responseType, submitItem.resultPath);
-
- try {
- eval(submitItem.responseHandler+"()");
- } catch (e) {
- messageBox(e.message, "C");
- return;
- }
-
- }
- function defualtErrorHandler(submitUUID, errorInfo) {
- var submitItem = getSubmitItem(submitUUID);
-
- if (typeof(submitItem.errorHandler) != "undefined") {
- try {
- eval(submitItem.errorHandler);
- } catch (e) {
- messageBox(e.message, "C");
- return;
- }
- } else {
- messageBox(errorInfo, "C");
- return;
- }
- }
- function bindInstance(submitUUID, response, responseType, resultPath) {
-
- var parentNodePath = resultPath.substring(0, resultPath.lastIndexOf("/"));
- var lastPath = resultPath.split(/\
- model.removeNode(parentNodePath);
- model.makeNode(parentNodePath);
-
-
- model.createChild("xforms:instance", "id:"+submitUUID);
-
- if (responseType == "xml") {
-
- if(model.instances.item(submitUUID).loadXML(response)) {
-
-
- var targetNode = model.instances.item(0).selectSingleNode(parentNodePath);
-
-
- var sourceNode = model.instances.item(submitUUID).selectSingleNode("//" + lastPath + "/..");
- if (targetNode != undefined && sourceNode != undefined) {
-
- var sourceChildNodes = sourceNode.childNodes;
-
- while (childNode = sourceChildNodes.nextNode()) {
- targetNode.appendChild(childNode);
- }
- }
-
-
- model.removeChild(submitUUID);
- }
- }
-
- model.refresh();
- }
- function bindInstanceOld(submitUUID, response, responseType, resultPath) {
- model.removeNode(resultPath);
- model.makeNode(resultPath);
-
- var lastPath = resultPath.split(/\
- var xml;
- if (responseType == "xml") {
- xml = stringToXML(response);
- copyNodeToInstance(xml, resultPath, model.instances.item(0), resultPath);
- }
-
- model.refresh();
- }
- function copyNodeToInstance(srcXML, srcPath, destInstance, destPath) {
- if (srcXML == undefined) {
- return;
- }
-
- if (destInstance == undefined) {
- return;
- }
-
- model.removeNode(destPath);
- model.makeNode(destPath);
-
- var lastPath = destPath.split(/\
- var srcNodeList = srcXML.getElementsByTagName(lastPath);
-
- for (var idx = 0 ; idx < srcNodeList.length ; idx++) {
- var resultPath = srcPath + "[" + idx + "]";
- if (idx == 0 ) {
- resultPath = srcPath;
- }
-
- model.makeNode(resultPath);
- var childNodes = srcNodeList[idx].childNodes;
- for (var cIdx = 0 ; cIdx < childNodes.length ; cIdx++) {
- var child = childNodes[cIdx];
- var childPath = resultPath + "/" + child.nodeName;
-
- model.makeNode(childPath);
- model.setValue(childPath, child.text);
-
- }
- }
-
- model.refresh();
- }
- function stringToXML(xmlStr) {
- if (typeof htmlwindow.DOMParser != "undefined") {
- return ( new htmlwindow.DOMParser() ).parseFromString(xmlStr, "text/xml");
- } else if (typeof htmlwindow.ActiveXObject != "undefined" && new htmlwindow.ActiveXObject("Microsoft.XMLDOM")) {
- var xmlDoc = new htmlwindow.ActiveXObject("Microsoft.XMLDOM");
- xmlDoc.async = "false";
- xmlDoc.loadXML(xmlStr);
- return xmlDoc;
- } else {
- throw new Error("No XML parser found");
- }
-
- return null;
- }
- function getSubmitItem(submitUUID) {
- if (submitUUID == undefined || submitUUID == "") {
- messageBox("submitItem ȹ�� ����!", "C");
- return;
- }
-
- if (submitArray.length <= 0) {
- messageBox("submitArray is Empty!", "C");
- return;
- }
- for (var idx = 0 ; idx < submitArray.length ; idx++) {
- var curItem = submitArray[idx];
- if (submitUUID == curItem.submitUUID) {
- submitArray[idx] = null;
- makeFullArray(submitArray);
- return curItem;
- }
- }
- }
- function makeFullArray(array) {
- for (var idx = 0 ; idx < array.length ; idx++) {
- if (array[idx] == undefined || array[idx] == null) {
- var lastItem = array.pop();
- if (lastItem != null) {
- array[idx] = lastItem;
- }
- }
- }
- }
- function getRandomSubmitUUID() {
- var s = [], itoh = ['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'];
-
-
- for (var i = 0; i <36; i++) {
- s[i] = Math.floor(Math.random()*0x10);
- }
-
- s[14] = 4;
- s[19] = (s[19] & 0x3) | 0x8;
-
- for (var i = 0; i <36; i++) {
- s[i] = itoh[s[i]];
- }
-
-
- return s.join('');
- }
-
|