Files
eapim-admin/WebContent/jsp/onl/admin/adapter/adapterManDetailpopup.jsp
T
Rinjae c54ef1903f init
2025-09-05 17:16:26 +09:00

623 lines
22 KiB
Plaintext

<%@ page language="java" contentType="text/html; charset=utf-8"%>
<%@ page import="java.io.*"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ include file="/jsp/common/include/localemessage.jsp" %>
<%
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Expires", "0");
%>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<jsp:include page="/jsp/common/include/css_custom.jsp"/>
<jsp:include page="/jsp/common/include/css.jsp"/>
<jsp:include page="/jsp/common/include/script.jsp"/>
<script language="javascript" >
var url ='<c:url value="/onl/admin/adapter/adapterMan.json" />';
var url_view ='<c:url value="/onl/admin/adapter/adapterMan.view" />';
var selectName = "EAIBZWKDSTCD"; // selectBox Name
var prptyDomain =[]; //도메인 정보를 전역변수로 선언함
var isDetail = false;
var lastRadioVal = {}; //라디오박스의 최종값 저장(네임:값)
function isValid(){
if($('input[name=ADPTRBZWKGROUPNAME]').val() == ""){
alert("<%=localeMessage.getString("adapterDetail.checkRequierd1")%>");
$('input[name=ADPTRBZWKGROUPNAME]').focus();
return false;
}
if($('select[name=ADPTRCD]').val() == ""){
alert("<%=localeMessage.getString("adapterDetail.checkRequierd2")%>");
$('select[name=ADPTRCD]').focus();
return false;
}
return true;
}
function localSave(){
var key =$("input[name=ADPTRBZWKNAME]").val();
//객체 생성
var save ={};
$("#adapter input,#adapter select").not('select[name=ADAPTERLIST]').each(function(){
var name = $(this).attr('name').toUpperCase();
save[name] = $(this).val();
});
var fullData = $("#grid").getRowData();
//getRowData 하면 select html 그대로 들어가기 때문에 추가함
for(var i=0;i<fullData.length;i++){
var keyName = fullData[i].PRPTYGROUPNAME+"_"+fullData[i].PRPTYNAME;
keyName = keyName.replace(/[.\{\}]/g,''); //Name은 . 또는 {} 포함안되므로 치환
var domainType = fullData[i].DOMAINTYPE;
if(fullData[i].DOMAINTYPE != null && fullData[i].DOMAINTYPE != "" ){
if(domainType.toUpperCase() == "SELECT"){
fullData[i]["PRPTY2VAL"]= $("select[name="+keyName+"] option:selected").val();
}else if(domainType.toUpperCase() == "RADIO"){
fullData[i]["PRPTY2VAL"]= $("input:radio[name="+keyName+"]:checked").val();
} else if(domainType.toUpperCase() == "CHECK"){
fullData[i]["PRPTY2VAL"]= $("input:checkbox[name="+keyName+"]:checked").val();
}
}else{
fullData[i]["PRPTY2VAL"]=fullData[i]["PRPTY2VAL"].replace(/&nbsp;/g,' ');
}
fullData[i]["PRPTYGROUPNAME"]=$("input[name=PRPTYGROUPNAME]").val();
//추가 2019.03.13 SWCHOI
fullData[i]["LSTNERCLSNAME"]=$("input[name=LSTNERCLSNAME]").val();
fullData[i]["TESTCLSNAME"]=$("input[name=TESTCLSNAME]").val();
fullData[i]["ADPTRDESC"]=$("input[name=ADPTRDESC]").val();
}
save["rows"]=fullData;
submitData[key]=save;
alert("화면상에서 저장되었습니다.\n상단 수정버튼을 이용하여 모든 정보를 저장해 주세요.");
}
function init(key,callback){
$.ajax({
type : "POST",
url:url,
dataType:"json",
data:{cmd: 'LIST_INIT_COMBO'},
success:function(json){
new makeOptions("CODE","CODE").setObj($("select[name=EAIBZWKDSTCD]")).setFormat(codeName3OptionFormat).setData(json.bizRows).rendering(); // 업무구분코드
new makeOptions("CODE","NAME").setObj($("select[name=ADPTRCD]")).setFormat(codeName3OptionFormat).setNoValueInclude(true).setData(json.adapterTypeRows).rendering(); // 어댑터 유형
new makeOptions("CODE","NAME").setObj($("select[name=ADPTRMSGDSTCD]")).setFormat(codeName3OptionFormat).setData(json.msgTypeRows).rendering(); // 메시지타입
new makeOptions("CODE","NAME").setObj($("select[name=MSGENCODE]")).setFormat(codeName3OptionFormat).setNoValueInclude(true).setData(json.msgEncodeRows).rendering(); // 메시지문자셋
new makeOptions("CODE","NAME").setObj($("select[name=EAISEVRINSTNCNAME]")).setData(json.instanceRows).rendering(); // 서버인스턴스명
new makeOptions("CODE","NAME").setObj($("select[name=ADPTRIODSTCD]")).setData(json.adptrIoDstcdRows).setFormat(codeName3OptionFormat).rendering(); // IN/OUT 구분
new makeOptions("CODE","NAME").setObj($("select[name=ADPTRMSGPTRNCD]")).setData(json.adptrMsgPtrnCdRows).setFormat(codeName3OptionFormat).rendering(); // 표준/비표준 구분
new makeOptions("CODE","NAME").setObj($("select[name=ADPTRUSEYN]")).setData(json.ynNumRows).setFormat(codeName3OptionFormat).rendering(); // 어댑터 사용구분
new makeOptions("CODE","NAME").setObj($("select[name=SNDRCVHMSLOGYN]")).setData(json.ynNumRows).setFormat(codeName3OptionFormat).rendering(); // 송수신 로그여부
new makeOptions("CODE","NAME").setObj($("select[name=SPCFCLUUSEYN]")).setData(json.ynNumRows).setFormat(codeName3OptionFormat).rendering(); // 특정LU 사용여부
//new makeOptions("CODE","NAME").setObj($("select[name=OSIDINSTIYN]")).setData(json.ynTypeRows).setFormat(codeName3OptionFormat).rendering(); // 대외기관 여부
//new makeOptions("CODE","NAME").setObj($("select[name=MONIUSEYN]")).setData(json.ynRows).setFormat(codeName3OptionFormat).rendering(); // 모니터링 사용 여부
//new makeOptions("CODE","NAME").setObj($("select[name=MONIOPTION]")).setData(json.monicondiSetRows).setFormat(codeName3OptionFormat).rendering(); // 모니터링 조건설정여부
//new makeOptions("CODE","NAME").setObj($("select[name=TESTMASTERYN]")).setData(json.testMasterYnRows).setFormat(codeName3OptionFormat).rendering(); //TAS참조대표어댑터여부
//EAI서버구분코드
new makeOptions("CODE","NAME").setObj($("select[name=EAISEVRDSTCD]")).setData(json.inoutTypeRows).setFormat(codeName3OptionFormat).rendering();
//DR대상 어댑터여부
new makeOptions("CODE","NAME").setObj($("select[name=DRADPTRYN]")).setData(json.useYnRows).setFormat(codeName3OptionFormat).rendering();
// 동일 세션 사용여부(Socket IOBOUND)
new makeOptions("CODE","NAME").setObj($("select[name=sameSessionYn]")).setData(json.useYnRows).setFormat(codeName3OptionFormat).rendering();
// IN/OUT pair Adapter 사용 여부
new makeOptions("CODE","NAME").setObj($("select[name=pairAdapterYn]")).setData(json.useYnRows).setFormat(codeName3OptionFormat).rendering();
if(key == "")
{
$("input[name=REFCLSNAME]").val(json.refClsName); // 어댑터 신규 입력할 때 참조 클래스명 default setting.
setSearchable(selectName); // 콤보에 searchable 설정
}
if(typeof callback === 'function') {
callback(key);
}
},
error:function(e){
alert(e.responseText);
}
});
}
function detail(key){
if (!isDetail) return ;
$.ajax({
type : "POST",
url:url,
dataType:"json",
data:{cmd: 'DETAIL'
, ADPTRBZWKGROUPNAME : key
},
success:function(json){
var detail = json;
var adapters = json.adapters;
var prop = json.adapters[0].adapterProps;
//어댑터 리스트 카운트
adaptersCnt = adapters.length;
if(adaptersCnt > 0){
$("#adaptersCnt").text("- "+adaptersCnt+" 개");
}
prptyDomain = json.dInfo;
//도메인 정보
//adapterGroup
$("input[name=ADPTRBZWKGROUPNAME]").attr('readonly',true);
var moniTmp = "";
var osidinstiYn = "N";
$("#detail input,#detail select").each(function(){
var name = $(this).attr('name').toUpperCase();
$(this).val(detail[name]);
});
//adapter
if (adapters.length > 0){
$("#adapter input,#adapter select").not('select[name=ADAPTERLIST]').each(function(){
var name = $(this).attr('name').toUpperCase();
$(this).val(adapters[0][name]);
});
//addoption
new makeOptions("PRPTYGROUPNAME","PRPTYGROUPNAME").setObj($("select[name=ADAPTERLIST]")).setData(adapters).rendering();
for(var i=0;i<adapters.length;i++){
submitData[adapters[i]["PRPTYGROUPNAME"]]=adapters[i];
}
}
//prop
$("#grid")[0].addJSONData(prop);
setSearchable(selectName); // 콤보에 searchable 설정
},
error:function(e){
alert(e.responseText);
}
});
}
function mltplFormatter (cellvalue, options,rowObject){
if(rowObject.DMNKND != null && rowObject.DMNKND != "" && rowObject.DOMAINTYPE != null){
if(rowObject.DOMAINTYPE.toUpperCase() == "SELECT"){
return setSelectCombo(rowObject);
}else if(rowObject.DOMAINTYPE.toUpperCase() == "RADIO"){
var val= setRadio(rowObject);
return val;
}else if(rowObject.DOMAINTYPE.toUpperCase() == "CHECK"){
return setCheckbox(rowObject);
}else{
return cellvalue;
}
}else{
if(cellvalue === undefined || cellvalue == null){
return '';
}
cellvalue = cellvalue.replace(/[ ]/g,'&nbsp;');
return cellvalue;
}
//return '<pre>'+cellvalue + '</pre>';
}
function mltplUnFormatter (cellvalue, options,rowObject){
var name = (rowObject.PRPTYGROUPNAME==null?"":rowObject.PRPTYGROUPNAME)+"_"+rowObject.PRPTYNAME;
name = name.replace(/[.\{\}]/g,''); //name 에는 . {} 못들어가서 제거
if(rowObject.DMNKND != null && rowObject.DMNKND != "" && rowObject.DOMAINTYPE != null){
if(rowObject.DOMAINTYPE.toUpperCase() == "SELECT"){
return $("select[name="+name+"] option:selected").val();
}else if(rowObject.DOMAINTYPE.toUpperCase() == "RADIO"){
//return setRadio(rowObject);
}else if(rowObject.DOMAINTYPE.toUpperCase() == "CHECK"){
//return setCheckbox(rowObject);
}else{
return cellvalue;
}
}
else{
return cellvalue.replace(/&nbsp;/g,' ');
}
}
function setSelectCombo(rows){
var domainName = rows.DMNKND;
var value = rows.PRPTY2VAL;
var result="";
var data = prptyDomain[domainName].data;
if(data == null || data.length == 0){
console.log("도메인명 : "+domainName +" 코드 조회 안됨");
}
var name = (rows.PRPTYGROUPNAME==null?"":rows.PRPTYGROUPNAME)+"_"+rows.PRPTYNAME;
name = name.replace(/[.\{\}]/g,'');
result='<select name="'+name+'" style="width:100%">';
//result += '<option value=""></option>';
for(var idx=0;idx < data.length; idx++){
if(data[idx].CODE == value)
result += '<option value="'+ data[idx].CODE+'" selected>'+data[idx].NAME +'</option>';
else
result += '<option value="'+ data[idx].CODE+'">'+data[idx].NAME +'</option>';
}
result +='</select>';
return result;
}
function setRadio(rows){
var domainName = rows.DMNKND;
var value = rows.PRPTY2VAL;
var result="";
var data = prptyDomain[domainName].data;
if(data == null || data.length == 0){
console.log("도메인명 : "+domainName +" 코드 조회 안됨");
}
var name = (rows.PRPTYGROUPNAME==null?"":rows.PRPTYGROUPNAME)+"_"+rows.PRPTYNAME;
name = name.replace(/[.\{\}]/g,'');
for(var idx=0;idx < data.length; idx++){
if(data[idx].CODE == value){
result += '<input type="radio" name="'+name+'" value="'+ data[idx].CODE+'" checked>'+data[idx].NAME+" ";
lastRadioVal[name] = value;
}else{
result += '<input type="radio" name="'+name+'" value="'+ data[idx].CODE+'" >'+data[idx].NAME+" ";
}
}
return result;
}
function setCheckbox(rows){
var domainName = rows.DMNKND;
var value = rows.PRPTY2VAL;
var result="";
var data = prptyDomain[domainName].data;
if(data == null || data.length == 0){
console.log("도메인명 : "+domainName +" 코드 조회 안됨");
}
var name = (rows.PRPTYGROUPNAME==null?"":rows.PRPTYGROUPNAME)+"_"+rows.PRPTYNAME;
name = name.replace(/[.\{\}]/g,'');
for(var idx=0;idx < data.length; idx++){
if(data[idx].CODE == value)
result += '<input type="checkbox" name="'+name+'" value="'+ data[idx].CODE+'" checked>'+data[idx].NAME+" ";
else
result += '<input type="checkbox" name="'+name+'" value="'+ data[idx].CODE+'">'+data[idx].NAME+" ";
}
return result;
}
//도메인 타입이 null이면 조건체크 중에 에러 발생해서 공백으로 치환
function nullFormatter(cellvalue, options, rowData){
if(cellvalue === undefined || cellvalue == null || cellvalue ==='NULL'){
cellvalue='';
}
return cellvalue;
}
function gridRendering(){
$('#grid').jqGrid({
datatype:"local",
editurl : "clientArray",
loadonce: true,
rowNum: 10000,
autoencode:false,
colNames:['<%=localeMessage.getString("adapterDetail.prptyGroupName")%>',
'<%=localeMessage.getString("adapterDetail.prptyName")%>',
'<%=localeMessage.getString("adapterDetail.prpty2Val")%>',
'<%=localeMessage.getString("adapterDetail.prptydesc")%>',
'<%=localeMessage.getString("adapterDetail.dmnkNd")%>',
'<%=localeMessage.getString("adapterDetail.domainType")%>'
],
colModel:[
{ name : 'PRPTYGROUPNAME' , align:'left' , hidden: true },
{ name : 'PRPTYNAME' , align:'left' , width:'35%' },
{ name : 'PRPTY2VAL' , align:'left' , width:'65%', title:false, editable: false, formatter:mltplFormatter, unformatter:mltplUnFormatter},
{ name : 'PRPTYDESC' ,hidden:true},
{ name : 'DMNKND' ,hidden:true},
{ name : 'DOMAINTYPE' ,hidden:true, formatter:nullFormatter}
],
jsonReader: {
repeatitems:false
},
loadComplete : function (data) {
},
gridComplete : function(){
//라디오 버튼의 해제 기능
$(":radio").unbind("click");
$("input[type=radio]").bind('click',function(){
var name = $(this).attr('name');
var lastVal = lastRadioVal[name];
if(lastVal == $(this).val()){
$(this).attr('checked',false);
lastRadioVal[name]= '';
}else{
lastRadioVal[name]= $(this).val();
}
});
//프라퍼티 정보 tooltip 적용
var rows = $(this).getDataIDs();
for( var i= 0; i < rows.length; i++){
var tooltip = $(this).getCell(rows[i],'PRPTYDESC');
$("#grid").setCell(rows[i],'PRPTYNAME','','',{'title':tooltip});
}
},
onSelectRow: function(rowid,status){
var rowData = $(this).getRowData(rowid);
var domainName = rowData.DMNKND;
var domainType = rowData.DOMAINTYPE;
if(domainType.toUpperCase() == 'SELECT' || domainType.toUpperCase() == 'CHECK' || domainType.toUpperCase() == 'RADIO') return;
if (lastsel2 !=undefined){
if($("#grid tr#" + lastsel2).attr("editable") == 1){ //editable=1 means row in edit mode
$("#grid").saveRow(lastsel2,false,"clientArray");
}
}
$('#grid').restoreRow(lastsel2);
$('#grid').editRow(rowid,true);
//도메인 지정
if(domainName != null && domainName != "" && prptyDomain[domainName] != null && prptyDomain[domainName] !="")
$("input[name=PRPTY2VAL]").inputmask(prptyDomain[domainName]["info"].DOMAINVAL,{'autoUnmask':true});
var val = $('input[name=PRPTY2VAL]').val();
$('input[name=PRPTY2VAL]').val(val.replace(/&nbsp;/g,' ')); //Html Text --> Inputbox Text : &nbsp --> ' '
lastsel2=rowid;
},
onSortCol : function(){
return 'stop'; //정렬 방지
},
height: '250',
autowidth: true,
viewrecords: true
});
resizeJqGridWidth('grid','content_middle','980');
}
var submitData = {};
var lastsel2;
$(document).ready(function() {
var returnUrl = getReturnUrlForReturn();
$("img,select[name=ADAPTERLIST]").click(function(){
if($("#grid tr#" + lastsel2).attr("editable") == 1){ //editable=1 means row in edit mode
$("#grid").saveRow(lastsel2,false,"clientArray");
}
});
// var key ="${param.adptrBzwkGroupName}";
var key = '<c:out value="${param.adptrBzwkGroupName}"/>';
if (key != "" && key !="null"){
isDetail = true;
}
gridRendering();
init(key,detail);
$("input[name=ADPTRBZWKNAME]").keyup(function(key){
$("input[name=PRPTYGROUPNAME]").val($(this).val());
$("input[name=PRPTYGROUPDESC]").val("어댑터 프라퍼티 : "+$(this).val());
});
$("select[name=ADAPTERLIST]").change(function(){
if (!($(this).val() == null || $(this).val() == undefined || $(this).val() == "")){
var adapter = submitData[$(this).val()];
$("#adapter input,#adapter select").not('select[name=ADAPTERLIST]').each(function(){
var name = $(this).attr('name').toUpperCase();
$(this).val(adapter[name]);
});
$("#grid")[0].addJSONData(adapter.adapterProps);
}else{
$("#adapter input,#adapter select").not('select[name=ADAPTERLIST]').each(function(){
$(this).val("");
});
var ids = $("#grid").getDataIDs();
for(var i=0;i<ids.length;i++){
$("#grid").jqGrid('setCell',ids[i],'PRPTY2VAL',null);
}
}
});
$("select[name=ADPTRCD],select[name=ADPTRIODSTCD]").change(function(){
if ($('select[name=ADPTRCD]').val()=="") return;
if ($('select[name=ADPTRIODSTCD]').val()=="") return;
$.ajax({
type : "POST",
url:url,
dataType:"json",
data:{cmd: 'LIST_PROP'
, adptrCd : $('select[name=ADPTRCD]').val()
, adptrIoDstcd : $('select[name=ADPTRIODSTCD]').val()
},
success:function(json){
prptyDomain = json.dInfo;
//$("#grid").trigger("reloadGrid");
$("#grid")[0].addJSONData(json);
},
error:function(e){
alert(e.responseText);
}
});
});
buttonControl(isDetail);
titleControl(isDetail);
//모니터링 사용여부
$("select[name=MONIUSEYN]").change(function(){
var moniUseYn = $(this).val();
if(moniUseYn == "Y"){
$(".conditionYn").attr("disabled",false);
}else{
$(".conditionYn").attr("disabled",true);
}
});
$("#btn_close").click(function(){
window.close();
});
$('body').css("overflow-x","hidden");
$('body').css("overflow-y","auto");
});
</script>
</head>
<body>
<div class="popup_box">
<div class="search_wrap">
<%-- <img id="btn_close" src="<c:url value="/img/btn_close.png"/>" level="R" status="DETAIL,NEW"/> --%>
<button type="button" class="cssbtn" id="btn_close" level="R" status="DETAIL,NEW"><i class="material-icons">cancel</i> <%= localeMessage.getString("button.close") %></button>
</div>
<form id="ajaxForm">
<div class="table_row_title"><%=localeMessage.getString("adapterDetail.title2")%></div>
<table id="detail" class="table_row" cellspacing="0" >
<tr>
<th style="width:16%;"><%=localeMessage.getString("adapterDetail.adptrbzwkgroupname")%></th>
<td style="width:34%;"><input type="text" name="ADPTRBZWKGROUPNAME"/> </td>
<th style="width:16%;"><%=localeMessage.getString("adapterDetail.eaibzwkdstcd")%></th>
<td style="width:34%;">
<div class="select-style">
<select name="EAIBZWKDSTCD" disabled></select>
</div>
</td>
</tr>
<tr>
<th><%=localeMessage.getString("adapterDetail.adptrmsgptrncd")%></th>
<td >
<div class="select-style">
<select name="ADPTRMSGPTRNCD" disabled></select>
</div>
</td>
<th><%=localeMessage.getString("adapterDetail.adptruseyn")%></th>
<td >
<div class="select-style">
<select name="ADPTRUSEYN" disabled></select>
</div>
</td>
</tr>
<tr>
<th><%=localeMessage.getString("adapterDetail.sndrcvhmslogyn")%></th>
<td >
<div class="select-style">
<select name="SNDRCVHMSLOGYN" disabled></select>
</div>
</td>
<th><%=localeMessage.getString("adapterDetail.adptriodstcd")%></th>
<td >
<div class="select-style">
<select name="ADPTRIODSTCD" disabled></select>
</div>
</td>
</tr>
<tr>
<th><%=localeMessage.getString("adapterDetail.adptrcd")%></th>
<td >
<div class="select-style">
<select name="ADPTRCD" disabled></select>
</div>
</td>
<th><%=localeMessage.getString("adapterDetail.adptrmsgdstcd")%></th>
<td >
<div class="select-style">
<select name="ADPTRMSGDSTCD" disabled></select>
</div>
</td>
</tr>
<tr>
<th><%=localeMessage.getString("adapterDetail.msgencode")%></th>
<td>
<div class="select-style">
<select name="MSGENCODE" disabled></select>
</div>
</td>
<th><%=localeMessage.getString("adapterDetail.refclsname")%></th>
<td><input type="text" name="REFCLSNAME" disabled/>
<input type="hidden" name="KESAUSEYN" value="0"/>
</td>
</tr>
<tr>
<th><%=localeMessage.getString("adapterDetail.spcfcluuseyn")%></th>
<td >
<div class="select-style">
<select name="SPCFCLUUSEYN" disabled></select>
</div>
</td>
<th><%=localeMessage.getString("adapterDetail.adptrbzwkgroupdesc")%></th>
<td><input type="text" name="ADPTRBZWKGROUPDESC" disabled/> </td>
</tr>
</table>
</form>
<div class="table_row_title"><%=localeMessage.getString("adapterDetail.title3")%></div>
<!-- 어댑터-->
<table id="adapter" class="table_row" cellspacing="0" >
<tr>
<th style="width:16%;"><%=localeMessage.getString("adapterDetail.title5")%></th>
<td colspan="3">
<div class="select-style" style="display:inline-block; width:calc(100% - 250px);">
<select name="ADAPTERLIST" ></select>
</div>
</td>
</tr>
<tr>
<th><%=localeMessage.getString("adapterDetail.adptrbzwkname")%></th>
<td style="width:34%;" ><input type="text" name="ADPTRBZWKNAME" disabled/> </td>
<th style="width:16%;"><%=localeMessage.getString("adapterDetail.eaisevrinstncname")%></th>
<td >
<div class="select-style">
<select name="EAISEVRINSTNCNAME" disabled></select>
</div>
</td>
</tr>
<tr>
<th><%=localeMessage.getString("adapterDetail.lstnerclsname")%></th><td colspan="3"><input type="text" name="LSTNERCLSNAME" disabled/> </td>
</tr>
<tr>
<th><%=localeMessage.getString("adapterDetail.testclsname")%></th><td colspan="3"><input type="text" name="TESTCLSNAME" disabled/> </td>
</tr>
<tr>
<th><%=localeMessage.getString("adapterDetail.adptrdesc")%></th><td colspan="3"><input type="text" name="ADPTRDESC" disabled/> </td>
</tr>
<tr style="display:none" >
<th><%=localeMessage.getString("adapterDetail.prptygroupname")%></th><td colspan="3"><input type="text" name="PRPTYGROUPNAME"/> </td>
</tr>
<tr style="display:none" >
<th><%=localeMessage.getString("adapterDetail.prptygroupdesc")%></th><td colspan="3"><input type="text" name="PRPTYGROUPDESC"/> </td>
</tr>
</table>
<div class="table_row_title"><%=localeMessage.getString("adapterDetail.title4")%></div>
<!-- grid -->
<table id="grid" ></table>
</div><!-- end content_middle -->
</body>
</html>