[Plot] Update stacked plots immediately

When changes to pan-zoom bounds are made in one
subplot, this will effect the pan-zoom bounds of
other subplots. Ensure this occurs immediately.
WTD-625.
This commit is contained in:
Victor Woeltjen 2014-12-11 19:33:09 -08:00
parent 9c1d72f917
commit 188e98a78b
4 changed files with 18 additions and 10 deletions

View File

@ -63,7 +63,7 @@
<mct-chart draw="subplot.getDrawingObject()"
ng-mousemove="subplot.hover($event)"
ng-mousedown="subplot.startMarquee($event)"
ng-mouseup="subplot.endMarquee($event)">
ng-mouseup="subplot.endMarquee($event); plot.update()">
</mct-chart>
<!-- TODO: Move into correct position; make part of group; infer from set of actions -->

View File

@ -90,6 +90,10 @@ define(
modeOptions.getModeHandler().plotTelemetry(prepared);
}
function updateSubplot(subplot) {
subplot.update();
}
function setupModes(telemetryObjects) {
modeOptions = new PlotModeOptions(telemetryObjects || []);
}
@ -159,6 +163,14 @@ define(
*/
getSubPlots: function () {
return modeOptions.getModeHandler().getSubPlots();
},
/**
* Explicitly update all plots.
*/
update: function () {
modeOptions.getModeHandler()
.getSubPlots()
.forEach(updateSubplot);
}
};

View File

@ -63,15 +63,13 @@ define(
return {
popPanZoom: popPanZoom,
clearPanZoom: clearPanZoom,
setBasePanZoom: setBasePanZoom,
getDepth: function () {
return stacks.length > 0 ?
stacks[0].getDepth() : 0;
},
getPanZoomStack: function (index) {
return decoratedStacks[index];
},
getPanZoomStacks: function () {
return decoratedStacks;
}
};

View File

@ -37,12 +37,10 @@ define(
function plotTelemetry(prepared) {
// Fit to the boundaries of the data, but don't
// override any user-initiated pan-zoom changes.
panZoomStackGroup.getPanZoomStacks().forEach(function (stack) {
stack.setBasePanZoom(
prepared.getOrigin(),
prepared.getDimensions()
);
});
panZoomStackGroup.setBasePanZoom(
prepared.getOrigin(),
prepared.getDimensions()
);
subplots.forEach(function (subplot, index) {
plotTelemetryTo(subplot, prepared, index);