From 787d806af47cccbda3b1cb1accbdf4eeccb2266d Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Sun, 19 Jan 2020 21:01:57 +0100 Subject: [PATCH] upstream changes in rate scale --- ChartsSpace/TimeMachine.js | 2 ++ ChartsSpace/TimelineChart.js | 13 +++++++------ Scales/RateScale.js | 19 +++++++++++++++++++ 3 files changed, 28 insertions(+), 6 deletions(-) diff --git a/ChartsSpace/TimeMachine.js b/ChartsSpace/TimeMachine.js index cfb8c4aa1..a182af623 100644 --- a/ChartsSpace/TimeMachine.js +++ b/ChartsSpace/TimeMachine.js @@ -212,6 +212,7 @@ function newTimeMachine () { moveToUserPosition(thisObject.container, timeMachineCoordinateSystem, true, false, event.mousePosition, true) } thisObject.container.eventHandler.raiseEvent('Dimmensions Changed', event) + thisObject.container.eventHandler.raiseEvent('Upstream Rate Scale Value Changed', event) } function rateScaleMouseOver (event) { thisObject.container.eventHandler.raiseEvent('onMouseOver', event) @@ -407,6 +408,7 @@ function newTimeMachine () { timelineChart.container.connectToParent(thisObject.container, true, true, false, true, true, true, false, false, true) timelineChart.container.fitFunction = thisObject.container.fitFunction timelineChart.fitFunction = thisObject.fitFunction + timelineChart.container.frame.width = thisObject.container.frame.width timelineChart.container.frame.height = thisObject.container.frame.height timelineChart.container.frame.position.x = 0 timelineChart.container.frame.position.y = 0 diff --git a/ChartsSpace/TimelineChart.js b/ChartsSpace/TimelineChart.js index cf15cc0ca..58d54bb5b 100644 --- a/ChartsSpace/TimelineChart.js +++ b/ChartsSpace/TimelineChart.js @@ -40,6 +40,7 @@ function newTimelineChart () { let onMouseOverEventSuscriptionId let onMouseNotOverEventSuscriptionId let rateScaleValueEventSuscriptionId + let rateScaleUpstreamEventSuscriptionId let rateScaleMouseOverEventSuscriptionId let rateScaleOffsetEventSuscriptionId let timeFrameScaleEventSuscriptionId @@ -60,9 +61,6 @@ function newTimelineChart () { thisObject.container = newContainer() thisObject.container.initialize(MODULE_NAME) thisObject.container.detectMouseOver = true - - thisObject.container.frame.width = TIME_MACHINE_WIDTH - thisObject.container.frame.height = TIME_MACHINE_HEIGHT } function finalize () { @@ -122,6 +120,7 @@ function newTimelineChart () { thisObject.rateScale.container.eventHandler.stopListening(rateScaleOffsetEventSuscriptionId) thisObject.rateScale.container.eventHandler.stopListening(rateScaleValueEventSuscriptionId) thisObject.rateScale.container.eventHandler.stopListening(rateScaleMouseOverEventSuscriptionId) + thisObject.container.parentContainer.eventHandler.stopListening(rateScaleUpstreamEventSuscriptionId) thisObject.rateScale.finalize() thisObject.rateScale = undefined @@ -177,8 +176,13 @@ function newTimelineChart () { rateScaleOffsetEventSuscriptionId = thisObject.rateScale.container.eventHandler.listenToEvent('Rate Scale Offset Changed', rateScaleOffsetChanged) rateScaleValueEventSuscriptionId = thisObject.rateScale.container.eventHandler.listenToEvent('Rate Scale Value Changed', rateScaleValueChanged) rateScaleMouseOverEventSuscriptionId = thisObject.rateScale.container.eventHandler.listenToEvent('onMouseOverScale', rateScaleMouseOver) + rateScaleUpstreamEventSuscriptionId = thisObject.container.parentContainer.eventHandler.listenToEvent('Upstream Rate Scale Value Changed', rateScaleUpstreamChanged) thisObject.rateScale.initialize(timelineChartCoordinateSystem, thisObject.container.parentContainer) + function rateScaleUpstreamChanged (event) { + thisObject.rateScale.setScale(event.scale) + } + function rateScaleOffsetChanged (event) { thisObject.container.frame.offset.y = event.offset } @@ -186,9 +190,6 @@ function newTimelineChart () { function rateScaleValueChanged (event) { thisObject.container.frame.height = TIME_MACHINE_HEIGHT * event.scale recalculateCoordinateSystem() - if (event.isUserAction === true) { - // moveToUserPosition(thisObject.container, timelineChartCoordinateSystem, true, false, event.mousePosition, true) - } thisObject.container.eventHandler.raiseEvent('Dimmensions Changed', event) } diff --git a/Scales/RateScale.js b/Scales/RateScale.js index f35940b90..585d62813 100644 --- a/Scales/RateScale.js +++ b/Scales/RateScale.js @@ -8,6 +8,7 @@ function newRateScale () { payload: undefined, scale: undefined, offset: undefined, + setScale: setScale, onMouseOverSomeTimeMachineContainer: onMouseOverSomeTimeMachineContainer, physics: physics, draw: draw, @@ -185,6 +186,24 @@ function newRateScale () { } } + function setScale (scale) { + thisObject.scale = scale + if ( + thisObject.scale <= DEFAULT_SCALE + SNAP_THRESHOLD_SCALE && + thisObject.scale >= DEFAULT_SCALE - SNAP_THRESHOLD_SCALE + ) { + event.scale = DEFAULT_SCALE + } else { + event.scale = thisObject.scale + } + event.isUserAction = true + thisObject.container.eventHandler.raiseEvent('Rate Scale Value Changed', event) + + saveObjectState() + offsetTimer = 0 + scaleTimer = 100 + } + function getContainer (point) { if (thisObject.container.frame.isThisPointHere(point, true) === true) { return thisObject.container