해당 화면을 modal로 변환시키는 API이다.
Type | Description |
---|---|
short | unloadpopup 시 넘긴 파라미터값 |
async/await 문법을 사용하여 동기 방식으로 처리하는 함수이며, IE 브라우저는 지원하지 않는다.
domodal API 호출시 on_popupdestroy 이벤트는 발생하지 않는다.
async function btn_loadportletpopup_sync_on_mouseup(objInst)
{
var fld_in_popup_screen, popup_screen, ret, popup_ret;
factory.consoleprint("btn_loadportletpopup_sync_on_mouseup> start");
factory.consoleprint("btn_loadportletpopup_sync_on_mouseup> before call loadportletpopupsync");
// 팝업 화면을 ASYNC 방식으로 로드를 시작함.
// factory.loadportletpopupsync API가 리턴시 포틀릿 팝업 화면 로드가 완료된 것을 의미함
// (팝업 화면 로드 완료시, screen_on_popupload 이벤트는 발생하지 않음)
// extra_data 옵션 파라미터를 통해서 팝업 화면으로 값을 전달할 수 있음.
// (포틀릿 팝업 화면에서는 this.screen.getextradata API 호출을 통해서 전달된 값을 얻을 수 있음)
// await의 동기화 처리는 async 함수내에서만 수행된다.
ret = await screen.loadportletpopupsync("SYNC_MODAL_PORTLET_POPUP", "/TEMPLATE/HTML5/ASYNC_AWAIT/portlet_sample", "SYNC PORTLET POPUP",
false, XFD_BORDER_RAISED, 0, 0, 200, 500, true, true, false, "VALUE_FROM_LOADSCREEN_EXTRADATA");
factory.consoleprint("btn_loadportletpopup_sync_on_mouseup> after call loadportletpopupsync, loadportletpopupsync return value = " + ret);
// 동기 방식으로 호출된 포틀릿 팝업 화면 인스턴스를 팝업 이름을 기준으로 찾음
popup_screen = screen.findportletpopup("SYNC_MODAL_PORTLET_POPUP");
if (factory.isobject(popup_screen)) {
// loadportletpopupsync API로 팝업을 로드했기 때문에, loadportletpopupsync 함수가 리턴되는 시점에는
// 포틀릿 팝업 화면의 로드가 완료된 시점이기 때문에, 포틀릿 팝업 화면의 오브젝트 인스턴스를 구할 수 있다.
fld_in_popup_screen = popup_screen.getinstancebyname("fld_value_from_parent_screen_settext");
if (factory.isobject(fld_in_popup_screen)) {
fld_in_popup_screen.settext("VALUE_FROM_PARENT_SCREEN_SETTEXT");
}
else {
factory.consoleprint("btn_loadportletpopup_sync_on_mouseup> getinstancebyname() return null");
}
// domodal 호출 여부 옵션 검사
if (chk_calldomodal.getcheck()) {
factory.consoleprint("btn_loadpopup_modal_sync_on_mouseup> before call domodal");
// 팝업 화면에 대해서 domodal API를 호출하여, 팝업 화면이 닫힐 때까지 대기한다.
// 즉, 팝업 화면에서 unloadpopup 함수 호출시 전달된 파라미터 값이 리턴되기를 동기방식으로 대기함.
// domodal API 호출시 on_popupdestroy 이벤트는 발생하지 않는다.
// (domodal API를 호출하지 않으면,
// 팝업 화면에서 unloadpopup 함수 호출시 전달된 파라미터 값은 on_popupdestroy 이벤트를 통해서 전달된다.)
// await의 동기화 처리는 async 함수내에서만 수행된다.
popup_ret = await popup_screen.domodal();
screen.alert("btn_loadportletpopup_sync_on_mouseup> after call domodal, domodal return value = " + popup_ret);
factory.consoleprint("btn_loadportletpopup_sync_on_mouseup> after call domodal, domodal return value = " + popup_ret);
}
}
else {
factory.consoleprint("btn_loadportletpopup_sync_on_mouseup> findportletpopup() return null");
}
factory.consoleprint("btn_loadportletpopup_sync_on_mouseup> end");
}