탭 아이템에 포틀릿 화면을 추가시키는 API이다.
Parameters | Type | Description |
---|---|---|
strText | STRING | 탭 제목 |
nAlign | short | 탭 제목 정렬상수 (*Remark 참조) |
nItemSize | short | 탭 아이템 크기 |
strScreenURL | STRING | 탭에 링크시킬 포틀릿 화면 경로 |
strPortletName | STRING | 포틀릿 이름 |
bVisible | BOOL | [옵션] 화면에 보여줄지 말지 여부 (기본값: true) |
extra_data | INSTANCE | [옵션] 탭 화면에 전달할 부가 데이터 |
bChildScreenEventLock | BOOL | [옵션] 탭 화면의 이벤트 잠금 여부 |
bFocusItem | BOOL | [옵션] 탭 아이템 포커스 처리 여부 (기본값: true) |
bInnerFocus | BOOL | [옵션] 탭 화면에 포커스 전달 여부 (기본값: true) |
strScreenXML | STRING | [옵션] 탭에 표시할 화면의 XML |
strScreenJS | STRING | [옵션] 탭에 표시할 화면의 스크립트 |
nLinkLoadType | short | [옵션] 탭 링크화면 로딩타입 (기본값: 0) |
Type | Description |
---|---|
short | 추가된 탭 아이템의 인덱스, 오류 발생시 -1 |
async/await 문법을 사용하여 addportlettab을 동기 방식으로 처리하는 함수이며, IE 브라우저는 지원하지 않는다.
포틀릿을 로드한 부모 화면에 strPortletName 파라미터 값의 변수명으로 포틀릿 화면의 멤버가 지정되기 때문에, 일반 변수 형태의 문자열(숫자만으로 구성된 문자열은 유효하지 않음) 또는 공백 문자열로 설정해야 한다. (공백 문자열 설정시 엔진 내부에서 포틀릿 이름을 자동 생성한다.)
strPortletName 파라미터는 포틀릿 화면 로드 완료시, 로드된 포틀릿 화면의 멤버가 할당된 strPortletName 파라미터 이름으로 탭이 포함된 화면에 동적으로 변수가 정의되기 때문에, 탭이 포함된 화면의 컴포넌트 이름이나 변수 이름과 중복된 값을 사용하는 경우에 기존 값이 오바라이트되고, 팝업이 닫힌 경우, undefined 값으로 지정된다.
추가된 탭은 마지막에 위치하게 되고 자동으로 추가된 탭에 포커스가 가게되어 해당 화면 임베딩한 탭이 활성화 되게 된다.
bChildScreenEventLock 파라미터를 true로 지정하는 경우, 링크된 화면의 이벤트 잠금 처리를 수행한다. 지정하지 않은 경우, 탭 컴포넌트에 지정된 이벤트 Lock 상태가 반영된다.
오류시 리턴값
nAlign 파라미터
nItemSize 파라미터는 tabitem_position속성에 따라 너비 또는 높이가 된다.
bVisible 파라미터는 옵션 파라미터로 값을 지정하지 않으면 기본은 true이다.
bFocusItem 파라미터는 옵션 파라미터로 값을 지정하지 않으면 기본은 true이다. bVisible 파라미터값이 false인 경우, bFocusItem 파라미터 값은 무시된다.
nLinkLoadType 파라미터는 탭아이템의 link_loadtype속성(0:static, 1:activate)과 동일한 기능을 하는 파라미터이다.
addportlettabsync 함수를 통해 화면을 로드하는 경우, addportlettabsync 함수 호출 이후 시점은 탭 아이템에 화면 로드가 완료된 상태이다. 화면 로드 완료시 탭 컴포넌트의 on_itemcreate 이벤트도 발생한다.
// 일반 화면을 동기식 방식으로 로딩 버튼 이벤트 처리
async function btn_addportlettabsync_screen_on_mouseup(objInst)
{
var tab_index, link_screen, ret;
factory.consoleprint("addportlettabsync> start");
factory.consoleprint("addportlettabsync> before call addtabsync");
// 화면을 SYNC 방식으로 로드를 시작함.
// addtabsync API가 리턴시 화면 로드가 완료된 것을 의미함
// 화면 로드 완료시, 탭 컴포넌트 on_itemcreate 이벤트가 발생함.
// extra_data 옵션 파라미터를 통해서 화면으로 값을 전달할 수 있음.
// (화면에서는 screen.getextradata API 호출을 통해서 전달된 값을 얻을 수 있음)
// await의 동기화 처리는 async 함수내에서만 수행된다.
tab_index = await tab_link.addportlettabsync("SYNC_PORTLET", 1, 100, "/target_portlet_url", "syncload_portlet_name", true, "EXTRA_DATA");
factory.consoleprint("addportlettabsync> after call addtabsync, addtabsync return = " + tab_index);
if (tab_index >= 0) {
// addtabsync API로 화면을 로드했기 때문에, addtabsync 함수가 리턴되는 시점에는
// 화면의 로드가 완료된 시점이기 때문에, 화면의 오브젝트 인스턴스를 구할 수 있다.
link_screen = tab_link.getchildscreeninstance(tab_index);
if (factory.isobject(link_screen) == true) {
factory.consoleprint("addportlettabsync> tab_link.getchildscreeninstance return object");
}
else {
factory.consoleprint("addportlettabsync> tab_link.getchildscreeninstance return null");
}
}
factory.consoleprint("addportlettabsync> end");
}