diff --git a/Projects/Education/UI/Spaces/Tutorial-Space/TutorialSpace.js b/Projects/Education/UI/Spaces/Tutorial-Space/TutorialSpace.js index dc7b974c9..c6d05730c 100644 --- a/Projects/Education/UI/Spaces/Tutorial-Space/TutorialSpace.js +++ b/Projects/Education/UI/Spaces/Tutorial-Space/TutorialSpace.js @@ -363,7 +363,7 @@ function newEducationTutorialSpace() { This forces the tutorial to close the workspaces panel and to keep it closed. */ if (workspacesCounter === 5) { - UI.projects.foundations.spaces.sideSpace.sidePanelTab.close() + UI.projects.foundations.spaces.workspaceSpace.sidePanelTab.close() } return } @@ -372,7 +372,7 @@ function newEducationTutorialSpace() { This forces the tutorial to open the workspaces panel and to keep it closed. */ if (workspacesCounter === 5) { - UI.projects.foundations.spaces.sideSpace.sidePanelTab.open() + UI.projects.foundations.spaces.workspaceSpace.sidePanelTab.open() } return } diff --git a/Projects/Foundations/UI/Spaces/Design-Space/Workspace.js b/Projects/Foundations/UI/Spaces/Design-Space/Workspace.js index 16a8f958d..2905940b6 100644 --- a/Projects/Foundations/UI/Spaces/Design-Space/Workspace.js +++ b/Projects/Foundations/UI/Spaces/Design-Space/Workspace.js @@ -311,7 +311,7 @@ function newWorkspace() { workingAtTask = 0 UI.projects.education.spaces.docsSpace.sidePanelTab.close() - UI.projects.foundations.spaces.sideSpace.sidePanelTab.close() + UI.projects.foundations.spaces.workspaceSpace.sidePanelTab.close() UI.projects.foundations.spaces.floatingSpace.inMapMode = true workingAtTask = 2 break diff --git a/Projects/Foundations/UI/Spaces/Side-Space/SideSpace.js b/Projects/Foundations/UI/Spaces/Side-Space/SideSpace.js index 7912addc1..191e925db 100644 --- a/Projects/Foundations/UI/Spaces/Side-Space/SideSpace.js +++ b/Projects/Foundations/UI/Spaces/Side-Space/SideSpace.js @@ -12,16 +12,19 @@ function newFoundationsSideSpace() { finalize: finalize } + let existingTabs = new Map() + return thisObject function initialize() { - leftTabs = [] - rightTabs = [] + thisObject.leftTabs = [] + thisObject.rightTabs = [] } function finalize() { - leftTabs = undefined - rightTabs = undefined + thisObject.leftTabs = undefined + thisObject.rightTabs = undefined + existingTabs = undefined } function createSidePanelTab(container, porject, iconName, label, side) { @@ -34,15 +37,22 @@ function newFoundationsSideSpace() { sidePanel.tabLabel = label sidePanel.initialize(side) + let key = porject + '-' + iconName + '-' + label + '-' + side + if (existingTabs.get(key) !== undefined) { return existingTabs.get(key) } + switch (side) { case 'left': { - leftTabs.push(sidePanel) - sidePanel.index = leftTabs.length + thisObject.leftTabs.push(sidePanel) + sidePanel.index = thisObject.leftTabs.length + + existingTabs.set(key, sidePanel) break } case 'right': { - rightTabs.push(sidePanel) - sidePanel.index = rightTabs.length + thisObject.rightTabs.push(sidePanel) + sidePanel.index = thisObject.rightTabs.length + + existingTabs.set(key, sidePanel) break } } @@ -55,23 +65,23 @@ function newFoundationsSideSpace() { } function physics() { - for (let i = 0; i < leftTabs.length; i++) { - let sideTab = leftTabs[i] + for (let i = 0; i < thisObject.leftTabs.length; i++) { + let sideTab = thisObject.leftTabs[i] sideTab.physics() } - for (let i = 0; i < rightTabs.length; i++) { - let sideTab = rightTabs[i] + for (let i = 0; i < thisObject.rightTabs.length; i++) { + let sideTab = thisObject.rightTabs[i] sideTab.physics() } } function draw() { - for (let i = 0; i < leftTabs.length; i++) { - let sideTab = leftTabs[i] + for (let i = 0; i < thisObject.leftTabs.length; i++) { + let sideTab = thisObject.leftTabs[i] sideTab.draw() } - for (let i = 0; i < rightTabs.length; i++) { - let sideTab = rightTabs[i] + for (let i = 0; i < thisObject.rightTabs.length; i++) { + let sideTab = thisObject.rightTabs[i] sideTab.draw() } }