var AwtOn = '1'; var AwtSearchUrl = getDomain() + "/himed/webapps/com/awtweb/jsp/awtSearch.jsp"; var AwtAjaxUrl = getDomain() + "/himed/webapps/com/awtweb/jsp/awtAjaxOra.jsp"; AwtBrowser.navigate(AwtSearchUrl); var AwtCtrl = null; var AwtCtrlDatagrid = null; var AwtCtrlType = null; var AwtWordBegin = -1; var AwtWordEnd = -1; var AwtSendWord = null; var AwtCarrotPos = 0; function AwtSearch() { var cp = event.focus; // var cp = event.currentTarget; if (cp == null) return; if (document.controls(cp) == null) return; if (document.controls(cp).attribute("id") == "AwtBrowser") return; if (event.keyCode == 113) { if (AwtGetSearchWordPopup()) { //alert("f '" + AwtWordBegin); //alert("f '" + AwtWordEnd); //alert("f '" + AwtSendWord + "'"); if (AwtSendWord != "") { AwtBrowser.document.parentWindow.execScript("AwtSearchLike('" + AwtAjaxUrl + "', '" + AwtSendWord + "')", "javascript"); attachAwtByObject(); AwtShow(); } } } else if (event.keyCode == 32 || event.keyCode == 13 || event.keyCode == 188 || event.keyCode == 190 || event.keyCode == 222) { //,188 .190 '222 if (AwtOn != '1') return; if (AwtGetSearchWord()) { //alert("f '" + AwtWordBegin); //alert("f '" + AwtWordEnd); //alert("f '" + AwtSendWord + "'"); AwtBrowser.document.parentWindow.execScript("AwtSearchOne('" + AwtAjaxUrl + "', '" + AwtSendWord + "')", "javascript"); } } } function attachAwtByObject() { var cp = event.focus; // var cp = event.currentTarget; if (cp == null) return; if (document.controls(cp) == null) return; if (document.controls(cp).elementName.replace("xforms:", "") == "datagrid") { AwtCtrlDatagrid = document.controls(cp); AwtCtrl = document.controls(cp).input; AwtCtrlType = "datagrid"; } else if (document.controls(cp).elementName.replace("xforms:", "") == "gridinput") { AwtCtrlDatagrid = document.controls(cp).parent; AwtCtrl = document.controls(cp); AwtCtrlType = "gridinput"; } else { AwtCtrlDatagrid = null; AwtCtrl = document.controls(cp); AwtCtrlType = document.controls(cp).elementName; } var top = 0; var left = 0; var width = 0; var height = 0; /* if (document.controls(objId).elementName == "xforms:datagrid") objId = objId + ".input"; var obj = document.controls(objId); */ var obj = AwtCtrl; var pObj = obj.parent; while (pObj != null && pObj.attribute("id") != "body") { top = top + parseInt(pObj.attribute("top").replace("px", "")); left = left + parseInt(pObj.attribute("left").replace("px", "")); //alert(pObj.attribute("id") + "-" + top); pObj = pObj.parent; } width = parseInt(obj.attribute("width").replace("px", "")); height = parseInt(obj.attribute("height").replace("px", "")); top = top + parseInt(obj.attribute("top").replace("px", "")); left = left + parseInt(obj.attribute("left").replace("px", "")); //alert(window.height + "-" + top + "-" + height + "-" + 311); if (window.height < top + height + 252) { top = top - 252 - height; //alert("A" + top); } else { //alert("B" + top); } //alert(window.width + "-" + left + "-" + 249); if (window.width < left + 249) { //left = left - 249; //alert("C" + left); } else { //alert("D" + left); } //alert(window.height + "-" + top); //alert(window.height + "-" + left); AwtGroup.attribute("top") = top + height; AwtGroup.attribute("left") = left; //alert(AwtGroup.attribute("top")); //alert(AwtGroup.attribute("left")); //alert('attachAwtByObject-' + AwtShowSearch); } function AwtGetSearchWordPopup() { var cp = event.focus; // var cp = event.currentTarget; if (cp == null) return; if (document.controls(cp) == null) return; if (document.controls(cp).elementName.replace("xforms:", "") == "datagrid") { //alert('µ¥ÀÌÅͱ׸®µå¿¡¼­´Â F2(´Ü¾îÁ¶È¸Ã¢) ±â´ÉÀ» »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù\r(½ÇÁ¦ ¿î¿µ¿¡¼­´Â ¾Ë¸² ¸Þ¼¼Áö ¾øÀ½)'); //return false; AwtCtrlDatagrid = document.controls(cp); AwtCtrl = document.controls(cp).input; AwtCtrlType = "datagrid"; if (AwtCtrl.attribute("visible") == "hidden") return; } else if (document.controls(cp).elementName.replace("xforms:", "") == "gridinput") { AwtCtrlDatagrid = document.controls(cp).parent; AwtCtrl = document.controls(cp); AwtCtrlType = "gridinput"; } else { AwtCtrlDatagrid = null; AwtCtrl = document.controls(cp); AwtCtrlType = document.controls(cp).elementName; } if (AwtCtrl.selBegin != AwtCtrl.selEnd) return false; AwtCarrotPos = AwtCtrl.selEnd; var text = AwtCtrl.currentText; //ij·µÀÇ À§Ä¡¸¦ ±âÁØÀ¸·Î ¾ÕÀ¸·Î ±¸ºÐÀÚ¸¦ ãÀ½ //±¸ºÐÀÚÀ» ¸¸³ª¸é ij·µÀ§Ä¡ÀÇ ´Ü¾îÀÇ ½ÃÀÛ, ³¡ ºÎºÐÀÓ(´Ü, ´Ü¾î°¡ ½ÃÀÛÇϱâ Àü¿¡ ±¸ºÐÀÚ¸¦ ¸¸³ª¸é ¹«½Ã) var foundC = false; var nowWordStartPos = AwtCtrl.selBegin - 1; //space¸¦ ¸øÃ£À¸¸é ±×³É ù À§Ä¡(0)°¡ µé¾î°¨ for (j = nowWordStartPos; j >= 0; j--) { //alert(j + " " + text.charAt(j) + " " + foundC); if (text.charAt(j) == ' ' //space || text.charAt(j) == ' ' //tab || text.charAt(j) == '\n' //enter || text.charAt(j) == '.' //. || text.charAt(j) == ',' //, || text.charAt(j) == '\'' //' || text.charAt(j) == '"' //" ) { nowWordStartPos = j + 1; foundC = true; break; } } if (!foundC) nowWordStartPos = 0; //±¸¹®ÀÇ Ã¹ ±ÛÀÚºÎÅÍ Ã£À» ´Ü¾îÀÇ ½ÃÀÛÀÓ //alert(nowWordStartPos); foundC = false; for (k = nowWordStartPos; k < text.length; k++) { if (text.charAt(k) == ' ' //space || text.charAt(k) == ' ' //tab || text.charAt(k) == '\n' //enter || text.charAt(k) == '.' //. || text.charAt(k) == ',' //, || text.charAt(k) == '\'' //' || text.charAt(k) == '"' //" ) { nowWordEndPos = k; foundC = true; break; } } if (!foundC) nowWordEndPos = text.length; //±¸¹®ÀÇ ³¡ ±ÛÀÚ±îÁö ãÀ» ´Ü¾îÀÓ if (nowWordStartPos == nowWordEndPos) return false; AwtSendWord = text.substring(nowWordStartPos, nowWordEndPos); AwtWordBegin = nowWordStartPos; AwtWordEnd = nowWordEndPos; return true; } function AwtGetSearchWord() { var cp = event.focus; // var cp = event.currentTarget; if (cp == null) return; if (document.controls(cp) == null) return; if (document.controls(cp).elementName.replace("xforms:", "") == "datagrid") { AwtCtrlDatagrid = document.controls(cp); AwtCtrl = document.controls(cp).input; AwtCtrlType = "datagrid"; } else if (document.controls(cp).elementName.replace("xforms:", "") == "gridinput") { AwtCtrlDatagrid = document.controls(cp).parent; AwtCtrl = document.controls(cp); AwtCtrlType = "gridinput"; } else { AwtCtrlDatagrid = null; AwtCtrl = document.controls(cp); AwtCtrlType = document.controls(cp).elementName; } if (AwtCtrl.selBegin != AwtCtrl.selEnd) return false; AwtCarrotPos = AwtCtrl.selEnd; var text = AwtCtrl.currentText; //ij·µÀÇ À§Ä¡¸¦ ±âÁØÀ¸·Î ¾ÕÀ¸·Î ±¸ºÐÀÚ¸¦ ãÀ½ //±¸ºÐÀÚÀ» ¸¸³ª¸é ij·µÀ§Ä¡ÀÇ ´Ü¾îÀÇ ½ÃÀÛ, ³¡ ºÎºÐÀÓ(´Ü, ´Ü¾î°¡ ½ÃÀÛÇϱâ Àü¿¡ ±¸ºÐÀÚ¸¦ ¸¸³ª¸é ¹«½Ã) var beforeIsGubun = false; var found1 = false; var foundC = false; var nowWordStartPos = AwtCtrl.selBegin - 1; //space¸¦ ¸øÃ£À¸¸é ±×³É ù À§Ä¡(0)°¡ µé¾î°¨ for (j = nowWordStartPos; j >= 0; j--) { //alert(j + " " + text.charAt(j) + " " + foundC); if (text.charAt(j) == ' ' //space || text.charAt(j) == ' ' //tab || text.charAt(j) == '\n' //enter || text.charAt(j) == '.' //. || text.charAt(j) == ',' //, || text.charAt(j) == '\'' //' || text.charAt(j) == '"' //" ) { if (j == nowWordStartPos) { //óÀ½ºÎÅÍ ±¸ºÐÀÚ°¡ ³ª¿À¸é if (beforeIsGubun == true) //Á»Àü¿¡ ã¾Ñ´ø ´Ü¾î°¡ ±¸ºÐÀÚÀ̸é... return false; //±¸ºÐÀÚ°¡ µÎ¹ø¿¬¼ÓÀ¸·Î ³ª¿Â °æ¿ì¸®¹Ç·Î return nowWordStartPos = j - 1; //±¸ºÐÀÚ°¡ µÎ¹ø ¹Ýº¹µÉ¶§¸¦ ´ëºñÇØ¼­ óÀ½½ÃÀÛÀ» Çϳª À̵¿½ÃÅ´ //alert("yyy" + nowWordStartPos); beforeIsGubun = true; //Áö±Ý ãÀº ´Ü¾î°¡ ±¸ºÐÀÚ¿´À½À» ±â·ÏÇϰí } else { if (foundC) { found1 = true; nowWordStartPos = j + 1; //alert("xxx" + nowWordStartPos); break; } } } else foundC = true; } if (!found1) if (nowWordStartPos == -1) return false; //³»¿ëÀÌ ¸ðµÎ ±¸ºÐÀÚÀÓ, ãÀ» ´Ü¾î°¡ ¾øÀ½ else nowWordStartPos = 0; //±¸¹®ÀÇ Ã¹ ±ÛÀÚºÎÅÍ Ã£À» ´Ü¾îÀÇ ½ÃÀÛÀÓ //alert(nowWordStartPos); var found2 = false; var nowWordEndPos = 0; for (k = nowWordStartPos; k < text.length; k++) { if (text.charAt(k) == ' ' //space || text.charAt(k) == ' ' //tab || text.charAt(k) == '\n' //enter || text.charAt(k) == '.' //. || text.charAt(k) == ',' //, || text.charAt(k) == '\'' //' || text.charAt(k) == '"' //" ) { found2 = true; nowWordEndPos = k; // alert("A" + nowWordEndPos); break; } } if (found2) nowWordEndPos; //ã¾ÆÁø ±¸ºÐÀÚ±îÁö else { if (text.charAt(text.length - 1) == ' ' //space || text.charAt(text.length - 1) == ' ' //tab || text.charAt(text.length - 1) == '\n' //enter || text.charAt(text.length - 1) == '.' //. || text.charAt(text.length - 1) == ',' //, || text.charAt(text.length - 1) == '\'' //' || text.charAt(text.length - 1) == '"' //" ) nowWordEndPos = text.length - 1; //¸¶Áö¸· ±ÛÀÚ±îÁö else nowWordEndPos = text.length; //¸¶Áö¸· ±ÛÀÚ±îÁö //alert("B" + nowWordEndPos); } //alert(nowWordEndPos); AwtSendWord = text.substring(nowWordStartPos, nowWordEndPos); AwtWordBegin = nowWordStartPos; AwtWordEnd = nowWordEndPos; return true; } function AwtHide() { AwtGroup.visible = false; //if (AwtCtrlType != "datagrid" && AwtCtrl != null) { model.setFocus("AwtGroup"); model.setFocus(AwtCtrl.attribute("id")); //} if (AwtCtrl != null) { AwtCtrl.selEnd = AwtCarrotPos; AwtCtrl.selBegin = AwtCarrotPos; } } function AwtShow() { AwtGroup.visible = true; model.setFocus("AwtBrowser"); AwtBrowser.document.parentWindow.execScript("focus()", "javascript"); } function AwtSetResult(awtResult, awtMode) { var result = null; var hanengmode = null; if (awtMode == "matchone") { var tokens = awtResult.split("||"); hanengmode = tokens[0]; result = tokens[1]; } else { result = awtResult; } if (awtMode != "matchone") { if (AwtCtrlType == "datagrid") { if (AwtCtrlDatagrid != null) { AwtCtrlDatagrid.editCell(); } } else if (AwtCtrlType == "gridinput") { if (AwtCtrlDatagrid != null) { AwtCtrlDatagrid.editCell(); } } else { //do nothing } } if (result == AwtSendWord) return; var first = AwtCtrl.currentText.substr(0, AwtWordBegin); var last = AwtCtrl.currentText.substr(AwtWordEnd, AwtCtrl.currentText.length); var cnt = 1; if (awtMode == "autocomplete") cnt = 0; AwtCarrotPos = (first + result).length + cnt; if (awtMode != "matchone") { if (AwtCtrlType == "datagrid") { if (AwtCtrlDatagrid != null) { model.setFocus("AwtGroup"); model.setFocus(AwtCtrl.attribute("id")); AwtCtrlDatagrid.editCell(); } } else if (AwtCtrlType == "gridinput") { if (AwtCtrlDatagrid != null) { model.setFocus("AwtGroup"); model.setFocus(AwtCtrl.attribute("id")); AwtCtrlDatagrid.editCell(); } } else { model.setFocus("AwtGroup"); model.setFocus(AwtCtrl.attribute("id")); } } AwtCtrl.currentText = first + result + last; if (AwtCtrl != null) { if (awtMode == "matchone") { if (hanengmode == "1") { AwtCtrl.attribute("imemode") = "alpha"; } else if (hanengmode == "2") { AwtCtrl.attribute("imemode") = "hangul"; } if (AwtCtrlType != "gridinput" && AwtCtrlType != "gridinput") { model.setFocus("AwtGroup"); model.setFocus(AwtCtrl.attribute("id")); } //alert(AwtCtrl.attribute("id") + " " + AwtCtrl.attribute("imemode")); } else { if (AwtCtrlType == "datagrid") { if (AwtCtrlDatagrid != null) { AwtCtrlDatagrid.editCell(); } } else if (AwtCtrlType == "gridinput") { if (AwtCtrlDatagrid != null) { AwtCtrlDatagrid.editCell(); } } else { //do nothing } } AwtCtrl.selEnd = AwtCarrotPos; AwtCtrl.selBegin = AwtCarrotPos; } AwtCtrl = null; AwtCtrlType = null; }