diff --git a/CanvasApp/ChartsSpace/TimeMachine.js b/CanvasApp/ChartsSpace/TimeMachine.js index 0713d6d5d..16c1b5cf6 100644 --- a/CanvasApp/ChartsSpace/TimeMachine.js +++ b/CanvasApp/ChartsSpace/TimeMachine.js @@ -391,10 +391,12 @@ function newTimeMachine () { } function panelPhysics () { - if (thisObject.container.frame.isInViewPort() && canvas.chartSpace.viewport.zoomTargetLevel > 10) { + if (thisObject.container.frame.isInViewPort() && canvas.chartSpace.viewport.zoomTargetLevel > ZOOM_OUT_THRESHOLD_FOR_HIDDING_PANELS) { canvas.panelsSpace.makeVisible(thisObject.payload.node.id, 'Layers Panel') + canvas.panelsSpace.makeVisible(thisObject.payload.node.id, 'Plotter Panel') } else { canvas.panelsSpace.makeInvisible(thisObject.payload.node.id, 'Layers Panel') + canvas.panelsSpace.makeInvisible(thisObject.payload.node.id, 'Plotter Panel') } } diff --git a/CanvasApp/ChartsSpace/Viewport.js b/CanvasApp/ChartsSpace/Viewport.js index 680508668..354c43747 100644 --- a/CanvasApp/ChartsSpace/Viewport.js +++ b/CanvasApp/ChartsSpace/Viewport.js @@ -213,7 +213,7 @@ function newViewport () { } else { newEvent.type = 'Zoom Out' } - console.log(thisObject.zoomTargetLevel) + thisObject.eventHandler.raiseEvent('Zoom Changed', newEvent) return true } diff --git a/CanvasApp/Globals.js b/CanvasApp/Globals.js index 22a3d5d2d..74e3acce9 100644 --- a/CanvasApp/Globals.js +++ b/CanvasApp/Globals.js @@ -41,6 +41,9 @@ UI_FONT = { SECONDARY: "Source Code Pro" }; +const ZOOM_OUT_THRESHOLD_FOR_HIDDING_PANELS = 10 // This regulates some behavious changes that happens when the user zoom out below this level. +const ZOOM_OUT_THRESHOLD_FOR_CHANGING_TIME_FRAME = 5 // This help regulate when to change the Time Frame base on the level of zoom out. + let FONT_ASPECT_RATIO = 0.32; diff --git a/CanvasApp/Scales/TimeFrameScale.js b/CanvasApp/Scales/TimeFrameScale.js index 0f684274f..3a2b3fd97 100644 --- a/CanvasApp/Scales/TimeFrameScale.js +++ b/CanvasApp/Scales/TimeFrameScale.js @@ -21,7 +21,8 @@ function newTimeFrameScale () { const TIME_PERIOD_DEFAULT_VALUE = 0 const MIN_HEIGHT = 50 - let visible = true + let previousIsVisible = true + let greyOutCoverLayer = false let isMouseOver let filePeriodIndex = FILES_PERIOD_DEFAULT_VALUE @@ -88,12 +89,12 @@ function newTimeFrameScale () { function onMouseOverSomeTimeMachineContainer (event) { if (event.containerId === undefined) { /* This happens when the mouse over was not at the instance of a certain scale, but anywhere else. */ - visible = true + greyOutCoverLayer = false } else { if (event.containerId === thisObject.container.id) { - visible = true + greyOutCoverLayer = false } else { - visible = false + greyOutCoverLayer = true turnOnCounter = 0 } } @@ -118,6 +119,22 @@ function newTimeFrameScale () { function physics () { readObjectState() positioningPhysics() + zoomOutPhysics() + } + + function zoomOutPhysics () { + if ((thisObject.isVisible === true && previousIsVisible === false) && (canvas.chartSpace.viewport.zoomTargetLevel >= ZOOM_OUT_THRESHOLD_FOR_CHANGING_TIME_FRAME)) { + let event = {} + event.timeFrame = thisObject.timeFrame + thisObject.container.eventHandler.raiseEvent('Time Frame Value Changed', event) + previousIsVisible = true + } + if ((thisObject.isVisible === false && previousIsVisible === true) || (canvas.chartSpace.viewport.zoomTargetLevel < ZOOM_OUT_THRESHOLD_FOR_CHANGING_TIME_FRAME)) { + let event = {} + event.timeFrame = ONE_DAY_IN_MILISECONDS + thisObject.container.eventHandler.raiseEvent('Time Frame Value Changed', event) + previousIsVisible = false + } } function positioningPhysics () { @@ -303,7 +320,7 @@ function newTimeFrameScale () { function draw () { drawScaleBox() - if (visible === false) { + if (greyOutCoverLayer === true) { drawScaleDisplayCover(thisObject.container) } }