/*************************************************************************************************
* 프로그램명 : MTable.java 프로그램설명 : 집계문서의 표 기본정보 처리 작성자 : 강원중 작성일 : 2003.12.03 변경일 : 2004.09.16
**************************************************************************************************/
package kr.co.kihyun.moumi.doc.table;
import java.util.List;
public class TableDefine {
private StringBuilder strOnLoad = new StringBuilder();
// //////////////////insertDiv요기는 양식등록일때 사용함/////////////////////////////////////////////////////////////
public String insertDiv(String form, List> tdList, int iTRCount) {
if (form == null)
return null;
// ban lower case form = form.toLowerCase();
StringBuilder sInserted = new StringBuilder();
int tdCount = 0;
int tdStart = 0;
int tdEnd = 0;
form = form.replaceAll(">( )*( )+<", "> <"); // 빈 셀중에 스페이스가 들어있는 것을 ' '로 바꿔줌(한글용)
form = form.replaceAll(">( )+<", "> <"); // 빈 셀중에 스페이스가 들어있는 것을 ' '로 바꿔줌(한글용)
int brCheck = -1;
int brCheck2 = -1;
int spaceCheck = -1;
int endTD = -1;
int fontCheck = -1;
String sInsert_EXCEL = "";
String sInsert_HWP = "";
String sInsert_TXT = "";
while (true) {
tdStart = form.indexOf("

";
sInsert_HWP = " style='cursor: pointer;'>

";
sInsert_TXT = " style='cursor: pointer;'>

";
if ((tdStart < spaceCheck) && (endTD > spaceCheck)) {
this.strOnLoad.append("changeCell(this, ");
this.strOnLoad.append(tdCount);
this.strOnLoad.append(");");
sInserted.append(form.substring(0, tdEnd));
sInserted.append(sInsert_EXCEL);// // 셀윈도우 입력하는 부분
form = form.substring(tdEnd + 1, form.length());
} else if ((tdStart < fontCheck) && (endTD > fontCheck)) {
this.strOnLoad.append("changeCell(this, ");
this.strOnLoad.append(tdCount);
this.strOnLoad.append(");");
sInserted.append(form.substring(0, tdEnd) + sInsert_EXCEL);// // 셀윈도우 입력하는 부분
form = form.substring(tdEnd + 1, form.length());
} else if ((tdStart < brCheck) && (endTD > brCheck)) {
this.strOnLoad.append("changeCell(this, ");
this.strOnLoad.append(tdCount);
this.strOnLoad.append(");");
sInserted.append(form.substring(0, tdEnd));
sInserted.append(sInsert_HWP);// // 셀윈도우 입력하는 부분
form = form.substring(tdEnd + 1, form.length());
} else if ((tdStart < brCheck2) && (endTD > brCheck2)) {
this.strOnLoad.append("changeCell(this, ");
this.strOnLoad.append(tdCount);
this.strOnLoad.append(");");
sInserted.append(form.substring(0, tdEnd));
sInserted.append(sInsert_HWP);// // 셀윈도우 입력하는 부분
form = form.substring(tdEnd + 1, form.length());
} else {
sInserted.append(form.substring(0, tdEnd));
sInserted.append(sInsert_TXT);// // 셀윈도우 입력하는 부분
form = form.substring(tdEnd + 1, form.length());
}
tdCount++;
}
sInserted.append(form);
String result = sInserted.toString().replaceAll("> <", "> <");
return result;
}
public String getStrOnLoad() {
return strOnLoad.toString();
}
public static String insertDiv(String form, int[] itemNumList) {
if (form == null)
return null;
StringBuilder inBuf = new StringBuilder();
int tdCount = 0;
int tdStart;
int tdEnd;
int index = 0;
int brCheck = -1;
int brCheck2 = -1;
int spaceCheck = -1;
int endTD = -1;
int fontCheck = -1;
String inStr = "";
String inEXCEL = "";
String inHWP = "";
while (true) {
if (index > itemNumList.length - 1)
break;
tdStart = form.indexOf("
", tdStart + 1);
if (tdEnd == -1)
break;
brCheck = -1;
brCheck2 = -1;
spaceCheck = -1;
endTD = -1;
fontCheck = -1;
endTD = form.indexOf(" | ", tdEnd + 1);
if (tdCount == itemNumList[index]) {
// modifyed by 구경모 # div태그의 특징인 줄바꾸기의 공백남기는특성을 안하기위해 span으로 변경(

";
inEXCEL = " style='cursor: pointer; height=65'>

";
inHWP = "

";
// //////////////////////////////////
// HWP
brCheck = form.indexOf("
", tdEnd + 1);
// HWP2002
brCheck2 = form.indexOf(" ", tdEnd + 1);
// Excel 2000
spaceCheck = form.indexOf((" "), tdEnd + 1);
// Excel 97
fontCheck = form.indexOf(("
"), tdEnd + 1);
if ((tdStart < spaceCheck) && (endTD > spaceCheck)) {
inBuf.append(form.substring(0, tdEnd));
inBuf.append(inEXCEL);// // 셀윈도우 입력하는 부분
form = form.substring(tdEnd + 1, form.length());
} else if ((tdStart < fontCheck) && (endTD > fontCheck)) {
inBuf.append(form.substring(0, tdEnd));
inBuf.append(inEXCEL);// // 셀윈도우 입력하는 부분
form = form.substring(tdEnd + 1, form.length());
} else if ((tdStart < brCheck) && (endTD > brCheck)) {
inBuf.append(form.substring(0, tdEnd + 1));
inBuf.append(inHWP);// // 셀윈도우 입력하는 부분
form = form.substring(tdEnd + 1, form.length());
} else if ((tdStart < brCheck2) && (endTD > brCheck2)) {
inBuf.append(form.substring(0, tdEnd + 1));
inBuf.append(inHWP);// // 셀윈도우 입력하는 부분
form = form.substring(tdEnd + 1, form.length());
} else {
inBuf.append(form.substring(0, tdEnd + 1));
inBuf.append(inStr);
form = form.substring(tdEnd + 1, form.length());
}
index++;
} else {
inBuf.append(form.substring(0, tdEnd + 1));
form = form.substring(tdEnd + 1, form.length());
}
tdCount++;
}
inBuf.append(form);
String result = inBuf.toString().replaceAll("> <", "><");
result = result.replaceAll("> <", "><");
result = result.replaceAll("
", "");
return result;
}
/**
* @param strOnLoad the strOnLoad to set
*/ public void setStrOnLoad(StringBuilder strOnLoad) {
this.strOnLoad = strOnLoad;
}
}