본문으로 건너뛰기

Add

적용 버전: VIZWide3D 3.0

Dock 패널 추가

Parameters​

NameTypeDescription
idString- 패널 id (등록 후 Show/Hide/리본 panelToggle 에서 사용)
optsObject- 패널 옵션
[opts.icon='article']String- 탭 아이콘(Material Symbols 이름)
[opts.label=id]String- 패널 라벨(탭 툴팁/패널 목록에 표시)
[opts.content]Function- 콘텐츠 생성 콜백 — 패널에 들어갈 element 를 인자(el)에 추가
[opts.dock]String- 기본 dock 위치('left'/'right'/'bottom') — Show(id, true) 시 사용
[opts.floating]Boolean- true 면 Show() 시 dock 대신 플로팅으로 열기

Returns​

TypeDescription
UIDockPanel메서드 체이닝용 this

Example​

import VIZCore3DModule from "./VIZCore3D/VIZCore3D.js";

let main = document.createElement('div');
main.className = "VIZWeb_Main";

let view = document.createElement('div');
view.id = "view";
view.className = "VIZCore3D";
main.appendChild(view);

document.body.appendChild(main);
const vizcore = new VIZCore3DModule(view);

let onInitialize = function () {
const fileKey = "example";
const url = "./model/toycar/vizw/toycar_wh.vizw";

let onload = (e) => {
//해당파일 다운로드 성공
console.log("onload::", e);
};

let onerror = function () {
//해당파일 다운로드 실패
console.log("onerror");
};

//모델 열기
vizcore.Model.OpenFile(fileKey, url, onload, onerror);

let ui = vizcore.UIElement;
let dockPanel = ui.DockPanel;
let ribbonbar = ui.GetRibbonbar();

// 1) 패널 등록 — content 는 패널 안에 들어갈 element 를 el 에 채워 넣는 콜백.
// (vizcore.Tree 같은 기존 컴포넌트를 재사용해도 되고, 아래처럼 순수 DOM element 를
// 직접 만들어 넣어도 된다 — 가장 간단한 형태.)
dockPanel.Add('MyPanel', {
icon: 'account_tree',
label: 'My Panel',
content: function (el) {
let myElement = document.createElement('div');
myElement.textContent = 'Hello, MyPanel!';
el.appendChild(myElement);
}
});

// 2) 리본 버튼에 연결 — 버튼 클릭 시 자동으로 열기/닫기 토글(document 레벨 핸들러가 처리)
ribbonbar.AddButton('Home', 'Home_Panel', {
id: 'MyPanelButton', text: 'My Panel',
icon: { normal: 'account_tree' },
style: { type: 1 }, // CHECK — 열림 상태를 버튼 체크로 표시
status: { visible: true, enable: true, check: false },
panelToggle: 'MyPanel', panelDock: 'left', // 'left' | 'right'
});

// 3) 코드로 직접 열기/닫기(panelToggle 을 지원하지 않는 툴바 버튼 등에서 수동으로 쓸 때)
// let DOCK_POS = ui.Layout.Enum.DOCK_POS;
// dockPanel.Show('MyPanel', DOCK_POS.LEFT); // DOCK_POS.LEFT/RIGHT/BOTTOM
// dockPanel.Hide('MyPanel');
};

let vizcoreParam = {
event: {
onInit: onInitialize,
}
};

vizcore.Init(vizcoreParam);