탭 아이템을 추가함과 동시에 탭 아이템에 화면을 로드하는 API이다.
Parameters | Type | Description |
---|---|---|
strText | STRING | 탭 제목 |
nAlign | short | 탭 제목 정렬상수 (*Remark 참조) |
nItemSize | short | 탭 아이템 크기 |
strScreenURL | STRING | 탭에 링크시킬 화면 경로 |
bVisible | BOOL | [옵션] 화면에 보여줄지 말지 여부 (기본값: true) |
extra_data | INSTANCE | [옵션] 탭 화면에 전달할 부가 데이터 (기본값: null) |
bChildScreenEventLock | BOOL | [옵션] 탭 화면의 이벤트 잠금 여부 |
bFocusItem | BOOL | [옵션] 탭 아이템 포커스 처리 여부 (기본값: true) |
bInnerFocus | BOOL | [옵션] 탭 화면에 포커스 전달 여부 (기본값: true) |
strScreenXML | STRING | [옵션] 탭에 표시할 화면의 XML |
strScreenJS | STRING | [옵션] 탭에 표시할 화면의 스크립트 |
nLinkLoadType | short | [옵션] 탭 링크화면 로딩타입 (기본값: 0) |
Type | Description |
---|---|
short | 추가된 탭 아이템의 인덱스 |
async/await 문법을 사용하여 addtab을 동기 방식으로 처리하는 함수이며, IE 브라우저는 지원하지 않는다.
strScreenURL 파라미터에 공백 문자열을 지정한 경우, 화면이 링크되지 않은 빈 탭 아이템이 생성된다.
추가된 탭은 마지막에 위치하게 되고 자동으로 추가된 탭에 포커스가 가게되어 해당 화면 임베딩한 탭이 활성화 되게 된다.
bChildScreenEventLock 파라미터를 true로 지정하는 경우, 링크된 화면의 이벤트 잠금 처리를 수행한다. 지정하지 않은 경우, 탭 컴포넌트에 지정된 이벤트 Lock 상태가 반영된다.
오류시 리턴값
nAlign 파라미터
nItemSize 파라미터는 tabitem_position속성에 따라 너비 또는 높이가 된다.
bVisible 파라미터는 옵션 파라미터로 값을 지정하지 않으면 기본은 true이다.
bFocusItem 파라미터는 옵션 파라미터로 값을 지정하지 않으면 기본은 true이다. bVisible 파라미터값이 false인 경우, bFocusItem 파라미터 값은 무시된다.
nLinkLoadType 파라미터는 탭아이템의 link_loadtype속성(0:static, 1:activate)과 동일한 기능을 하는 파라미터이다.
extra_data 파라미터는 탭에 링크된 화면에게 전달될 데이터를 지정한다. 링크된 화면에서는 화면 객체(screen)의 getextradata 함수를 통해서 전달된 데이터를 받아올 수 있다. extra_data 파라미터 값으로는 일반 문자열 이외에도 객체 오브젝트도 지정이 가능하다.
addtabsync 함수를 통해 화면을 로드하는 경우, addtabsync 함수 호출 이후 시점은 탭 아이템에 화면 로드가 완료된 상태이다. 화면 로드 완료시 탭 컴포넌트의 on_itemcreate 이벤트도 발생한다.
// 일반 화면을 동기식 방식으로 로딩 버튼 이벤트 처리
async function btn_addtab_sync_screen_on_mouseup(objInst)
{
var tab_index, link_screen, ret;
factory.consoleprint("addtab_sync> start");
factory.consoleprint("addtab_sync> before call addtabsync");
// 화면을 SYNC 방식으로 로드를 시작함.
// addtabsync API가 리턴시 화면 로드가 완료된 것을 의미함
// 화면 로드 완료시, 탭 컴포넌트 on_itemcreate 이벤트가 발생함.
// extra_data 옵션 파라미터를 통해서 화면으로 값을 전달할 수 있음.
// (화면에서는 screen.getextradata API 호출을 통해서 전달된 값을 얻을 수 있음)
// await의 동기화 처리는 async 함수내에서만 수행된다.
tab_index = await tab_link.addtabsync("SYNC_SCREEN", 1, 100, "/target_screen_url", true, "EXTRA_DATA");
factory.consoleprint("addtab_sync> 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("addtab_sync> tab_link.getchildscreeninstance return object");
}
else {
factory.consoleprint("addtab_sync> tab_link.getchildscreeninstance return null");
}
}
factory.consoleprint("addtab_sync> end");
}