|
|
@ -1,65 +1,103 @@
|
|
|
|
/**************************************************************************
|
|
|
|
|
|
|
|
* 엘리먼트 doctx탐지 및 이벤트 실행(실행 메소드이름 필수)
|
|
|
|
class Detect {
|
|
|
|
**************************************************************************/
|
|
|
|
|
|
|
|
function detectElementEvent(){
|
|
|
|
|
|
|
|
if(arguments.length < 1){
|
|
|
|
|
|
|
|
console.log('메소드 이름은 필수 입니다.');
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
let methodName = arguments[0];
|
|
|
|
|
|
|
|
let sp = methodName.split(".");
|
|
|
|
|
|
|
|
if(sp.length > 3){
|
|
|
|
|
|
|
|
console.log('depth가 너무 깁니다.');
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var args = Array.prototype.slice.call(arguments);
|
|
|
|
|
|
|
|
args.shift();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let element = event.target;
|
|
|
|
static help(){
|
|
|
|
|
|
|
|
console.log("elementEvent(메소드명,메소드변수1,2,3,...) : "
|
|
|
|
|
|
|
|
+"HTML요소의 doctx를 탐지하고, 문서 내의 DatasetControl인스턴스나 PageObject객체를 탐색하여 메소드명이 일치하는 메소드를 실행합니다.");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
console.log("listSearch(메소드변수1,2,3,...) : " + Detect.helpStringForInference("검색버튼 클릭 이벤트"));
|
|
|
|
|
|
|
|
console.log("excelDown(메소드변수1,2,3,...) : " + Detect.helpStringForInference("엑셀다운로드버튼 클릭 이벤트"));
|
|
|
|
|
|
|
|
console.log("init(메소드변수1,2,3,...) : " + Detect.helpStringForInference("초기화버튼 클릭 이벤트"));
|
|
|
|
|
|
|
|
console.log("gridClick(메소드변수1,2,3,...) : " + Detect.helpStringForInference("그리드 클릭 이벤트"));
|
|
|
|
|
|
|
|
console.log("gridDoubleClick(메소드변수1,2,3,...) : " + Detect.helpStringForInference("그리드 더블클릭 이벤트"));
|
|
|
|
|
|
|
|
console.log("gridCheck(메소드변수1,2,3,...) : " + Detect.helpStringForInference("그리드 체크박스 체크 이벤트"));
|
|
|
|
|
|
|
|
console.log("openNew(메소드변수1,2,3,...) : " + Detect.helpStringForInference("새 정보 입력화면 호출 버튼 클릭 이벤트"));
|
|
|
|
|
|
|
|
console.log("save(메소드변수1,2,3,...) : " + Detect.helpStringForInference("저장 버튼 클릭 이벤트"));
|
|
|
|
|
|
|
|
console.log("remove(메소드변수1,2,3,...) : " + Detect.helpStringForInference("삭제 버튼 클릭 이벤트"));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
let doctx;
|
|
|
|
static helpStringForInference(str){
|
|
|
|
if(element.hasAttribute("data-ref-doctx")){
|
|
|
|
return "HTML요소의 doctx를 탐지하고, 문서 내의 DatasetControl인스턴스나 PageObject객체를 탐색 한 후 "+str+"에 대한 메소드명을 추론하여 메소드를 실행합니다.";
|
|
|
|
doctx = element.getAttribute("data-ref-doctx");
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
doctx = element.detectDoctx();
|
|
|
|
|
|
|
|
element.setAttribute("data-ref-doctx", doctx);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//pageObject 전역객체가 있고, pageObject 내부에 doctx를 키로 갖는 객체가 있으면
|
|
|
|
static elementEvent(){
|
|
|
|
if((window.pageObject !== undefined) && (pageObject[doctx] !== undefined)){
|
|
|
|
if(arguments.length < 1){
|
|
|
|
let curPO = pageObject[doctx];
|
|
|
|
console.log('메소드 이름은 필수 입니다.');
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
let methodName = arguments[0];
|
|
|
|
|
|
|
|
let sp = methodName.split(".");
|
|
|
|
|
|
|
|
if(sp.length > 3){
|
|
|
|
|
|
|
|
console.log('depth가 너무 깁니다.');
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//STEP 1 : "pageObject전역객체.doctx명"에서 찾는다.
|
|
|
|
var args = Array.prototype.slice.call(arguments);
|
|
|
|
if(sp.length == 1){
|
|
|
|
args.shift();
|
|
|
|
if(curPO[methodName] !== undefined && curPO[methodName] instanceof Function){
|
|
|
|
|
|
|
|
curPO[methodName].apply(curPO, args); //실행
|
|
|
|
let element = event.target;
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
let doctx;
|
|
|
|
} else if(sp.length == 2){
|
|
|
|
if(element.hasAttribute("data-ref-doctx")){
|
|
|
|
if(curPO[sp[0]] !== undefined
|
|
|
|
doctx = element.getAttribute("data-ref-doctx");
|
|
|
|
&& curPO[sp[0]][sp[1]] !== undefined
|
|
|
|
} else {
|
|
|
|
&& curPO[sp[0]][sp[1]] instanceof Function){
|
|
|
|
doctx = element.detectDoctx();
|
|
|
|
curPO[sp[0]][sp[1]].apply(curPO[sp[0]], args); //실행
|
|
|
|
element.setAttribute("data-ref-doctx", doctx);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//pageObject 전역객체가 있고, pageObject 내부에 doctx를 키로 갖는 객체가 있으면
|
|
|
|
|
|
|
|
if((window.pageObject !== undefined) && (pageObject[doctx] !== undefined)){
|
|
|
|
|
|
|
|
let curPO = pageObject[doctx];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//STEP 1 : "pageObject전역객체.doctx명"에서 찾는다.
|
|
|
|
|
|
|
|
if(sp.length == 1){
|
|
|
|
|
|
|
|
if(curPO[methodName] !== undefined && curPO[methodName] instanceof Function){
|
|
|
|
|
|
|
|
curPO[methodName].apply(curPO, args); //실행
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} else if(sp.length == 2){
|
|
|
|
|
|
|
|
if(curPO[sp[0]] !== undefined
|
|
|
|
|
|
|
|
&& curPO[sp[0]][sp[1]] !== undefined
|
|
|
|
|
|
|
|
&& curPO[sp[0]][sp[1]] instanceof Function){
|
|
|
|
|
|
|
|
curPO[sp[0]][sp[1]].apply(curPO[sp[0]], args); //실행
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} else if(sp.length == 3){
|
|
|
|
|
|
|
|
if(curPO[sp[0]] !== undefined
|
|
|
|
|
|
|
|
&& curPO[sp[0]][sp[1]] !== undefined
|
|
|
|
|
|
|
|
&& curPO[sp[0]][sp[1]][sp[2]] !== undefined
|
|
|
|
|
|
|
|
&& curPO[sp[0]][sp[1]][sp[2]] instanceof Function){
|
|
|
|
|
|
|
|
curPO[sp[0]][sp[1]][sp[2]].apply(curPO[sp[0]][sp[1]], args); //실행
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else if(sp.length == 3){
|
|
|
|
|
|
|
|
if(curPO[sp[0]] !== undefined
|
|
|
|
//STEP 2 : "pageObject전역객체.doctx명.ctrl또는control"에서 찾는다.
|
|
|
|
&& curPO[sp[0]][sp[1]] !== undefined
|
|
|
|
if(sp.length == 1){
|
|
|
|
&& curPO[sp[0]][sp[1]][sp[2]] !== undefined
|
|
|
|
let findedCtrl = null;
|
|
|
|
&& curPO[sp[0]][sp[1]][sp[2]] instanceof Function){
|
|
|
|
if(curPO["ctrl"] !== undefined){
|
|
|
|
curPO[sp[0]][sp[1]][sp[2]].apply(curPO[sp[0]][sp[1]], args); //실행
|
|
|
|
findedCtrl = curPO["ctrl"];
|
|
|
|
return;
|
|
|
|
} else if(curPO["control"] !== undefined){
|
|
|
|
|
|
|
|
findedCtrl = curPO["control"];
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if(findedCtrl != null){
|
|
|
|
|
|
|
|
if(findedCtrl[methodName] !== undefined && findedCtrl[methodName] instanceof Function){
|
|
|
|
|
|
|
|
findedCtrl[methodName].apply(findedCtrl, args); //실행
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//STEP 2 : "pageObject전역객체.doctx명.ctrl또는control"에서 찾는다.
|
|
|
|
//STEP 3 : doctx를 갖는 DatasetControl 전역객체에서 찾는다.
|
|
|
|
if(sp.length == 1){
|
|
|
|
if(sp.length == 1){
|
|
|
|
let findedCtrl = null;
|
|
|
|
let findedCtrl = null;
|
|
|
|
if(curPO["ctrl"] !== undefined){
|
|
|
|
for(var member in window){
|
|
|
|
findedCtrl = curPO["ctrl"];
|
|
|
|
if(window[member] instanceof DatasetControl){
|
|
|
|
} else if(curPO["control"] !== undefined){
|
|
|
|
if(window[member].doctx == "[data-doctx='"+doctx+"']"){
|
|
|
|
findedCtrl = curPO["control"];
|
|
|
|
findedCtrl = window[member];
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if(findedCtrl != null){
|
|
|
|
if(findedCtrl != null){
|
|
|
|
if(findedCtrl[methodName] !== undefined && findedCtrl[methodName] instanceof Function){
|
|
|
|
if(findedCtrl[methodName] !== undefined && findedCtrl[methodName] instanceof Function){
|
|
|
@ -68,176 +106,174 @@ function detectElementEvent(){
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
console.log('메소드를 찾을 수 없습니다.');
|
|
|
|
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//STEP 3 : doctx를 갖는 DatasetControl 전역객체에서 찾는다.
|
|
|
|
/**************************************************************************
|
|
|
|
if(sp.length == 1){
|
|
|
|
* 검색버튼 클릭 이벤트 탐지 및 실행
|
|
|
|
let findedCtrl = null;
|
|
|
|
**************************************************************************/
|
|
|
|
for(var member in window){
|
|
|
|
static listSearch(){
|
|
|
|
if(window[member] instanceof DatasetControl){
|
|
|
|
let inference = [
|
|
|
|
if(window[member].doctx == "[data-doctx='"+doctx+"']"){
|
|
|
|
"Data_Open", //델파이(클린파킹)
|
|
|
|
findedCtrl = window[member];
|
|
|
|
"search", //DatasetControl
|
|
|
|
}
|
|
|
|
"searchList", "fnSearch", "fnSearchList"
|
|
|
|
}
|
|
|
|
];
|
|
|
|
}
|
|
|
|
|
|
|
|
if(findedCtrl != null){
|
|
|
|
var args = Array.prototype.slice.call(arguments);
|
|
|
|
if(findedCtrl[methodName] !== undefined && findedCtrl[methodName] instanceof Function){
|
|
|
|
Detect.byInference(inference, args);
|
|
|
|
findedCtrl[methodName].apply(findedCtrl, args); //실행
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
console.log('메소드를 찾을 수 없습니다.');
|
|
|
|
/**************************************************************************
|
|
|
|
return;
|
|
|
|
* 엑셀버튼 클릭 이벤트 탐지 및 실행
|
|
|
|
}
|
|
|
|
**************************************************************************/
|
|
|
|
|
|
|
|
static excelDown(){
|
|
|
|
|
|
|
|
let inference = [
|
|
|
|
/**************************************************************************
|
|
|
|
"fnExcel", "fnExcelDown", "excelDown"
|
|
|
|
* 검색버튼 클릭 이벤트 탐지 및 실행
|
|
|
|
];
|
|
|
|
**************************************************************************/
|
|
|
|
var args = Array.prototype.slice.call(arguments);
|
|
|
|
function detectListSearch(){
|
|
|
|
Detect.byInference(inference, args);
|
|
|
|
let inference = [
|
|
|
|
}
|
|
|
|
"Data_Open", //델파이(클린파킹)
|
|
|
|
|
|
|
|
"search", //DatasetControl
|
|
|
|
|
|
|
|
"searchList", "fnSearch", "fnSearchList"
|
|
|
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var args = Array.prototype.slice.call(arguments);
|
|
|
|
|
|
|
|
detectByInference(inference, args);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**************************************************************************
|
|
|
|
|
|
|
|
* 엑셀버튼 클릭 이벤트 탐지 및 실행
|
|
|
|
|
|
|
|
**************************************************************************/
|
|
|
|
|
|
|
|
function detectExcelDown(){
|
|
|
|
|
|
|
|
let inference = [
|
|
|
|
|
|
|
|
"fnExcel", "fnExcelDown", "excelDown"
|
|
|
|
|
|
|
|
];
|
|
|
|
|
|
|
|
var args = Array.prototype.slice.call(arguments);
|
|
|
|
|
|
|
|
detectByInference(inference, args);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**************************************************************************
|
|
|
|
|
|
|
|
* 초기화버튼 클릭 이벤트 탐지 및 실행
|
|
|
|
|
|
|
|
**************************************************************************/
|
|
|
|
|
|
|
|
function detectInit(){
|
|
|
|
|
|
|
|
let inference = [
|
|
|
|
|
|
|
|
"fnInit", "fnReset"
|
|
|
|
|
|
|
|
];
|
|
|
|
|
|
|
|
var args = Array.prototype.slice.call(arguments);
|
|
|
|
|
|
|
|
detectByInference(inference, args);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**************************************************************************
|
|
|
|
|
|
|
|
* 그리드 클릭 이벤트탐지 및 실행
|
|
|
|
|
|
|
|
**************************************************************************/
|
|
|
|
|
|
|
|
function detectGridClick(){
|
|
|
|
|
|
|
|
let inference = [
|
|
|
|
|
|
|
|
"setCurrent", //DatasetControl
|
|
|
|
|
|
|
|
"clickList", "fnClickList"
|
|
|
|
|
|
|
|
];
|
|
|
|
|
|
|
|
var args = Array.prototype.slice.call(arguments);
|
|
|
|
|
|
|
|
detectByInference(inference, args);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**************************************************************************
|
|
|
|
/**************************************************************************
|
|
|
|
* 그리드 더블클릭 이벤트탐지 및 실행
|
|
|
|
* 초기화버튼 클릭 이벤트 탐지 및 실행
|
|
|
|
**************************************************************************/
|
|
|
|
**************************************************************************/
|
|
|
|
function detectGridDoubleClick(){
|
|
|
|
static init(){
|
|
|
|
let inference = [
|
|
|
|
let inference = [
|
|
|
|
"getInfo", //DatasetControl
|
|
|
|
"fnInit", "fnReset"
|
|
|
|
"dblclickList", "fnDblclickList"
|
|
|
|
];
|
|
|
|
];
|
|
|
|
var args = Array.prototype.slice.call(arguments);
|
|
|
|
var args = Array.prototype.slice.call(arguments);
|
|
|
|
Detect.byInference(inference, args);
|
|
|
|
detectByInference(inference, args);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**************************************************************************
|
|
|
|
/**************************************************************************
|
|
|
|
* 그리드 체크박스 체크 이벤트탐지 및 실행
|
|
|
|
* 그리드 클릭 이벤트탐지 및 실행
|
|
|
|
**************************************************************************/
|
|
|
|
**************************************************************************/
|
|
|
|
function detectGridCheck(){
|
|
|
|
static gridClick(){
|
|
|
|
let inference = [
|
|
|
|
let inference = [
|
|
|
|
"select", //DatasetControl
|
|
|
|
"setCurrent", //DatasetControl
|
|
|
|
"checkList", "fnCheckList"
|
|
|
|
"clickList", "fnClickList"
|
|
|
|
];
|
|
|
|
];
|
|
|
|
var args = Array.prototype.slice.call(arguments);
|
|
|
|
var args = Array.prototype.slice.call(arguments);
|
|
|
|
detectByInference(inference, args);
|
|
|
|
Detect.byInference(inference, args);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**************************************************************************
|
|
|
|
|
|
|
|
* 그리드 더블클릭 이벤트탐지 및 실행
|
|
|
|
|
|
|
|
**************************************************************************/
|
|
|
|
|
|
|
|
static gridDoubleClick(){
|
|
|
|
|
|
|
|
let inference = [
|
|
|
|
|
|
|
|
"getInfo", //DatasetControl
|
|
|
|
|
|
|
|
"dblclickList", "fnDblclickList"
|
|
|
|
|
|
|
|
];
|
|
|
|
|
|
|
|
var args = Array.prototype.slice.call(arguments);
|
|
|
|
|
|
|
|
Detect.byInference(inference, args);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**************************************************************************
|
|
|
|
/**************************************************************************
|
|
|
|
* 새 정보 입력화면 호출 버튼 클릭 이벤트탐지 및 실행
|
|
|
|
* 그리드 체크박스 체크 이벤트탐지 및 실행
|
|
|
|
**************************************************************************/
|
|
|
|
**************************************************************************/
|
|
|
|
function detectOpenNew(){
|
|
|
|
static gridCheck(){
|
|
|
|
let inference = [
|
|
|
|
let inference = [
|
|
|
|
"newInfo", "getInfo", //DatasetControl
|
|
|
|
"select", //DatasetControl
|
|
|
|
"fnCreate"
|
|
|
|
"checkList", "fnCheckList"
|
|
|
|
];
|
|
|
|
];
|
|
|
|
var args = Array.prototype.slice.call(arguments);
|
|
|
|
var args = Array.prototype.slice.call(arguments);
|
|
|
|
detectByInference(inference, args);
|
|
|
|
Detect.byInference(inference, args);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**************************************************************************
|
|
|
|
|
|
|
|
* 저장 버튼 클릭 이벤트탐지 및 실행
|
|
|
|
|
|
|
|
**************************************************************************/
|
|
|
|
|
|
|
|
function detectSave(){
|
|
|
|
|
|
|
|
let inference = [
|
|
|
|
|
|
|
|
"save", //DatasetControl
|
|
|
|
|
|
|
|
"fnSave"
|
|
|
|
|
|
|
|
];
|
|
|
|
|
|
|
|
var args = Array.prototype.slice.call(arguments);
|
|
|
|
|
|
|
|
detectByInference(inference, args);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**************************************************************************
|
|
|
|
/**************************************************************************
|
|
|
|
* 삭제 버튼 클릭 이벤트탐지 및 실행
|
|
|
|
* 새 정보 입력화면 호출 버튼 클릭 이벤트탐지 및 실행
|
|
|
|
**************************************************************************/
|
|
|
|
**************************************************************************/
|
|
|
|
function detectRemove(){
|
|
|
|
static openNew(){
|
|
|
|
let inference = [
|
|
|
|
let inference = [
|
|
|
|
"remove", //DatasetControl
|
|
|
|
"newInfo", "getInfo", //DatasetControl
|
|
|
|
"fnDelete", "fnRemove"
|
|
|
|
"fnCreate"
|
|
|
|
];
|
|
|
|
];
|
|
|
|
var args = Array.prototype.slice.call(arguments);
|
|
|
|
var args = Array.prototype.slice.call(arguments);
|
|
|
|
detectByInference(inference, args);
|
|
|
|
Detect.byInference(inference, args);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**************************************************************************
|
|
|
|
|
|
|
|
* 저장 버튼 클릭 이벤트탐지 및 실행
|
|
|
|
|
|
|
|
**************************************************************************/
|
|
|
|
|
|
|
|
static save(){
|
|
|
|
|
|
|
|
let inference = [
|
|
|
|
|
|
|
|
"save", //DatasetControl
|
|
|
|
|
|
|
|
"fnSave"
|
|
|
|
|
|
|
|
];
|
|
|
|
|
|
|
|
var args = Array.prototype.slice.call(arguments);
|
|
|
|
|
|
|
|
Detect.byInference(inference, args);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**************************************************************************
|
|
|
|
/**************************************************************************
|
|
|
|
* 이벤트 추론
|
|
|
|
* 삭제 버튼 클릭 이벤트탐지 및 실행
|
|
|
|
**************************************************************************/
|
|
|
|
**************************************************************************/
|
|
|
|
function detectByInference(inference, args){
|
|
|
|
static remove(){
|
|
|
|
|
|
|
|
let inference = [
|
|
|
|
let element = event.target;
|
|
|
|
"remove", //DatasetControl
|
|
|
|
|
|
|
|
"fnDelete", "fnRemove"
|
|
|
|
let doctx;
|
|
|
|
];
|
|
|
|
if(element.hasAttribute("data-ref-doctx")){
|
|
|
|
var args = Array.prototype.slice.call(arguments);
|
|
|
|
doctx = element.getAttribute("data-ref-doctx");
|
|
|
|
Detect.byInference(inference, args);
|
|
|
|
} else {
|
|
|
|
|
|
|
|
doctx = element.detectDoctx();
|
|
|
|
|
|
|
|
element.setAttribute("data-ref-doctx", doctx);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//pageObject 전역객체가 있고, pageObject 내부에 doctx를 키로 갖는 객체가 있으면
|
|
|
|
/**************************************************************************
|
|
|
|
if((window.pageObject !== undefined) && (pageObject[doctx] !== undefined)){
|
|
|
|
* 이벤트 추론
|
|
|
|
let curPO = pageObject[doctx];
|
|
|
|
**************************************************************************/
|
|
|
|
|
|
|
|
static byInference(inference, args){
|
|
|
|
|
|
|
|
|
|
|
|
//STEP 1 : "pageObject전역객체.doctx명"에서 찾는다.
|
|
|
|
let element = event.target;
|
|
|
|
for(let keyword of inference){
|
|
|
|
|
|
|
|
if(curPO.hasOwnProperty(keyword)){
|
|
|
|
let doctx;
|
|
|
|
if(curPO[keyword] instanceof Function){
|
|
|
|
if(element.hasAttribute("data-ref-doctx")){
|
|
|
|
curPO[keyword].apply(curPO, args);
|
|
|
|
doctx = element.getAttribute("data-ref-doctx");
|
|
|
|
return;
|
|
|
|
} else {
|
|
|
|
|
|
|
|
doctx = element.detectDoctx();
|
|
|
|
|
|
|
|
element.setAttribute("data-ref-doctx", doctx);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//pageObject 전역객체가 있고, pageObject 내부에 doctx를 키로 갖는 객체가 있으면
|
|
|
|
|
|
|
|
if((window.pageObject !== undefined) && (pageObject[doctx] !== undefined)){
|
|
|
|
|
|
|
|
let curPO = pageObject[doctx];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//STEP 1 : "pageObject전역객체.doctx명"에서 찾는다.
|
|
|
|
|
|
|
|
for(let keyword of inference){
|
|
|
|
|
|
|
|
if(curPO.hasOwnProperty(keyword)){
|
|
|
|
|
|
|
|
if(curPO[keyword] instanceof Function){
|
|
|
|
|
|
|
|
curPO[keyword].apply(curPO, args);
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//STEP 2 : "pageObject전역객체.doctx명.ctrl또는control"에서 찾는다.
|
|
|
|
|
|
|
|
let findedCtrl = null;
|
|
|
|
|
|
|
|
if(curPO["ctrl"] !== undefined){
|
|
|
|
|
|
|
|
findedCtrl = curPO["ctrl"];
|
|
|
|
|
|
|
|
} else if(curPO["control"] !== undefined){
|
|
|
|
|
|
|
|
findedCtrl = curPO["control"];
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if(findedCtrl != null){
|
|
|
|
|
|
|
|
for(let keyword of inference){
|
|
|
|
|
|
|
|
if(findedCtrl[keyword] !== undefined && findedCtrl[keyword] instanceof Function){
|
|
|
|
|
|
|
|
findedCtrl[keyword].apply(findedCtrl, args);
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//STEP 2 : "pageObject전역객체.doctx명.ctrl또는control"에서 찾는다.
|
|
|
|
//STEP 3 : doctx를 갖는 DatasetControl 전역객체에서 찾는다.
|
|
|
|
let findedCtrl = null;
|
|
|
|
let findedCtrl = null;
|
|
|
|
if(curPO["ctrl"] !== undefined){
|
|
|
|
for(var member in window){
|
|
|
|
findedCtrl = curPO["ctrl"];
|
|
|
|
if(window[member] instanceof DatasetControl){
|
|
|
|
} else if(curPO["control"] !== undefined){
|
|
|
|
if(window[member].doctx == "[data-doctx='"+doctx+"']"){
|
|
|
|
findedCtrl = curPO["control"];
|
|
|
|
findedCtrl = window[member];
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if(findedCtrl != null){
|
|
|
|
if(findedCtrl != null){
|
|
|
|
for(let keyword of inference){
|
|
|
|
for(let keyword of inference){
|
|
|
@ -247,26 +283,8 @@ function detectByInference(inference, args){
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
console.log('메소드를 찾을 수 없습니다.');
|
|
|
|
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
//STEP 3 : doctx를 갖는 DatasetControl 전역객체에서 찾는다.
|
|
|
|
|
|
|
|
let findedCtrl = null;
|
|
|
|
|
|
|
|
for(var member in window){
|
|
|
|
|
|
|
|
if(window[member] instanceof DatasetControl){
|
|
|
|
|
|
|
|
if(window[member].doctx == "[data-doctx='"+doctx+"']"){
|
|
|
|
|
|
|
|
findedCtrl = window[member];
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if(findedCtrl != null){
|
|
|
|
|
|
|
|
for(let keyword of inference){
|
|
|
|
|
|
|
|
if(findedCtrl[keyword] !== undefined && findedCtrl[keyword] instanceof Function){
|
|
|
|
|
|
|
|
findedCtrl[keyword].apply(findedCtrl, args);
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
console.log('메소드를 찾을 수 없습니다.');
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|