ModelHandle/website/o3dv/sidebar.js
2021-07-10 18:48:59 +02:00

74 lines
1.5 KiB
JavaScript

OV.Sidebar = class
{
constructor (parentDiv)
{
this.parentDiv = parentDiv;
this.visible = true;
this.titleDiv = null;
this.contentDiv = null;
this.panels = [];
}
AddPanel (panel)
{
this.panels.push (panel);
return this.panels.length - 1;
}
GetPanel (id)
{
return this.panels[id];
}
Init (callbacks)
{
for (let id = 0; id < this.panels.length; id++) {
this.panels[id].Init (callbacks);
}
}
Show (panelId)
{
if (panelId !== null) {
this.visible = true;
this.parentDiv.show ();
for (let id = 0; id < this.panels.length; id++) {
let panel = this.panels[id];
if (id === panelId) {
panel.Show (true);
} else {
panel.Show (false);
}
}
} else {
this.visible = false;
this.parentDiv.hide ();
}
}
IsVisible ()
{
return this.visible;
}
GetVisiblePanelId ()
{
if (!this.visible) {
return null;
}
for (let id = 0; id < this.panels.length; id++) {
if (this.panels[id].IsVisible ()) {
return id;
}
}
return null;
}
Resize ()
{
for (let id = 0; id < this.panels.length; id++) {
this.panels[id].Resize ();
}
}
};