diff --git a/platform/features/plot/src/elements/PlotPanZoomStackGroup.js b/platform/features/plot/src/elements/PlotPanZoomStackGroup.js index 17503d6605..1f37b8ef63 100644 --- a/platform/features/plot/src/elements/PlotPanZoomStackGroup.js +++ b/platform/features/plot/src/elements/PlotPanZoomStackGroup.js @@ -16,19 +16,13 @@ define( stack.pushPanZoom(origin, dimensions); } else { stack.pushPanZoom( - [ origin[0], stack.getOrigin[1] ], - [ dimensions[0], stack.getDimensions[1] ] + [ origin[0], stack.getOrigin()[1] ], + [ dimensions[0], stack.getDimensions()[1] ] ); } }); } - function setBasePanZoom(origin, dimensions, index) { - stacks.forEach(function (stack, i) { - stack.setBasePanZoom(origin, dimensions); - }); - } - function popPanZoom() { stacks.forEach(function (stack) { @@ -36,6 +30,12 @@ define( }); } + function setBasePanZoom(origin, dimensions) { + stacks.forEach(function (stack) { + stack.setBasePanZoom(origin, dimensions); + }); + } + function clearPanZoom() { stacks.forEach(function (stack) { stack.popPanZoom(); @@ -48,11 +48,11 @@ define( result.pushPanZoom = function (origin, dimensions) { pushPanZoom(origin, dimensions, index); }; - result.setBasePanZoom = function (origin, dimensions) { - - }; + result.setBasePanZoom = setBasePanZoom; result.popPanZoom = popPanZoom; result.clearPanZoom = clearPanZoom; + + return result; } for (i = 0; i < count; i += 1) { @@ -69,6 +69,9 @@ define( }, getPanZoomStack: function (index) { return decoratedStacks[index]; + }, + getPanZoomStacks: function () { + return decoratedStacks; } }; diff --git a/platform/features/plot/src/modes/PlotStackMode.js b/platform/features/plot/src/modes/PlotStackMode.js index 7e8a052127..78abc16d50 100644 --- a/platform/features/plot/src/modes/PlotStackMode.js +++ b/platform/features/plot/src/modes/PlotStackMode.js @@ -1,15 +1,19 @@ /*global define*/ define( - ["../SubPlot", "../elements/PlotPalette", "../elements/PlotPanZoomStack"], - function (SubPlot, PlotPalette, PlotPanZoomStack) { + ["../SubPlot", "../elements/PlotPalette", "../elements/PlotPanZoomStackGroup"], + function (SubPlot, PlotPalette, PlotPanZoomStackGroup) { "use strict"; function PlotStackMode(telemetryObjects) { var domainOffset, - panZoomStack = new PlotPanZoomStack([], []), - subplots = telemetryObjects.map(function (telemetryObject) { - return new SubPlot([telemetryObject], panZoomStack); + panZoomStackGroup = + new PlotPanZoomStackGroup(telemetryObjects.length), + subplots = telemetryObjects.map(function (telemetryObject, i) { + return new SubPlot( + [telemetryObject], + panZoomStackGroup.getPanZoomStack(i) + ); }); function plotTelemetryTo(subplot, prepared, index) { @@ -31,12 +35,14 @@ define( } function plotTelemetry(prepared) { - // Fit to the boundaries of the data, but don't + // Fit to the boundaries of the data, but don't // override any user-initiated pan-zoom changes. - panZoomStack.setBasePanZoom( - prepared.getOrigin(), - prepared.getDimensions() - ); + panZoomStackGroup.getPanZoomStacks().forEach(function (stack) { + stack.setBasePanZoom( + prepared.getOrigin(), + prepared.getDimensions() + ); + }); subplots.forEach(function (subplot, index) { plotTelemetryTo(subplot, prepared, index); @@ -49,16 +55,16 @@ define( return subplots; }, isZoomed: function () { - return panZoomStack.getDepth() > 1; + return panZoomStackGroup.getDepth() > 1; }, stepBackPanZoom: function () { - panZoomStack.pop(); + panZoomStackGroup.popPanZoom(); subplots.forEach(function (subplot) { subplot.update(); }); }, unzoom: function () { - panZoomStack.clearPanZoom(); + panZoomStackGroup.clearPanZoom(); subplots.forEach(function (subplot) { subplot.update(); });