67 lines
1.3 KiB
JavaScript
67 lines
1.3 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];
|
|
}
|
|
|
|
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 ();
|
|
}
|
|
}
|
|
};
|