diff --git a/ChartsSpace/TimelineChart.js b/ChartsSpace/TimelineChart.js index 41423dda7..be4e435e7 100644 --- a/ChartsSpace/TimelineChart.js +++ b/ChartsSpace/TimelineChart.js @@ -46,6 +46,11 @@ function newTimelineChart () { let productsPanelHandle let timeFrameScale + let onOffsetChangedEventSuscriptionId + let onZoomChangedEventSuscriptionId + let onMouseOverEventSuscriptionId + let timeFrameScaleEventSuscriptionId + setupContainer() return thisObject @@ -56,6 +61,11 @@ function newTimelineChart () { } function finalize () { + viewPort.eventHandler.stopListening(onOffsetChangedEventSuscriptionId) + viewPort.eventHandler.stopListening(onZoomChangedEventSuscriptionId) + thisObject.container.eventHandler.stopListening(onMouseOverEventSuscriptionId) + timeFrameScale.container.eventHandler.stopListening(timeFrameScaleEventSuscriptionId) + plotterManager.finalize() plotterManager = undefined timeFrameScale.finalize() @@ -74,7 +84,7 @@ function newTimelineChart () { market = pMarket timeLineCoordinateSystem = pTimeLineCoordinateSystem - thisObject.container.eventHandler.listenToEvent('onMouseOver', function (event) { + onMouseOverEventSuscriptionId = thisObject.container.eventHandler.listenToEvent('onMouseOver', function (event) { saveUserPosition(thisObject.container, timeLineCoordinateSystem, event) }) @@ -123,8 +133,8 @@ function newTimelineChart () { /* Event Subscriptions - we need this events to be fired first here and then in active Plotters. */ - viewPort.eventHandler.listenToEvent('Offset Changed', onOffsetChanged) - viewPort.eventHandler.listenToEvent('Zoom Changed', onZoomChanged) + onOffsetChangedEventSuscriptionId = viewPort.eventHandler.listenToEvent('Offset Changed', onOffsetChanged) + onZoomChangedEventSuscriptionId = viewPort.eventHandler.listenToEvent('Zoom Changed', onZoomChanged) /* Initialize the Plotter Manager */ @@ -149,7 +159,7 @@ function newTimelineChart () { timeFrameScale = newTimeFrameScale() timeFrameScale.container.connectToParent(thisObject.container, false, false, false, true, true, true) - timeFrameScale.container.eventHandler.listenToEvent('Time Frame Changed', function (event) { + timeFrameScaleEventSuscriptionId = timeFrameScale.container.eventHandler.listenToEvent('Time Frame Changed', function (event) { let currentTimeFrame = timeFrame timeFrame = event.timeFrame if (timeFrame !== currentTimeFrame) { diff --git a/Scales/TimeFrameScale.js b/Scales/TimeFrameScale.js index df39d022d..a34e3df91 100644 --- a/Scales/TimeFrameScale.js +++ b/Scales/TimeFrameScale.js @@ -50,7 +50,7 @@ function newTimeFrameScale () { thisObject.container.eventHandler.stopListening(onMouseWheelEventSubscriptionId) thisObject.container.eventHandler.stopListening(onMouseOverEventSubscriptionId) thisObject.container.eventHandler.stopListening(onMouseNotOverEventSubscriptionId) - thisObject.container.eventHandler.stopListening(onZoomChangedEventSubscriptionId) + viewPort.eventHandler.stopListening(onZoomChangedEventSubscriptionId) timeLineCoordinateSystem = undefined objectStorage = undefined @@ -75,7 +75,7 @@ function newTimeFrameScale () { visible = true }) - onMouseWheelEventSubscriptionId = thisObject.container.eventHandler.listenToEvent('onMouseNotOver', function (event) { + onMouseNotOverEventSubscriptionId = thisObject.container.eventHandler.listenToEvent('onMouseNotOver', function (event) { visible = false })