mirror of
https://github.com/nasa/openmct.git
synced 2025-06-12 20:28:14 +00:00
[Plot] Add JSDoc for stack plots
Add JSDoc for new classes introduced (and revised interfaces exposed by existing classes) to support stacked plots, WTD-625.
This commit is contained in:
@ -18,29 +18,66 @@ define(
|
||||
factory: PlotOverlayMode
|
||||
};
|
||||
|
||||
/**
|
||||
* Determines which plotting modes (stacked/overlaid)
|
||||
* are applicable in a given plot view, maintains current
|
||||
* selection state thereof, and provides handlers for the
|
||||
* different behaviors associated with these modes.
|
||||
* @constructor
|
||||
* @param {DomainObject[]} the telemetry objects being
|
||||
* represented in this plot view
|
||||
*/
|
||||
function PlotModeOptions(telemetryObjects) {
|
||||
var options = telemetryObjects.length > 1 ?
|
||||
[ OVERLAID, STACKED ] : [ OVERLAID ],
|
||||
mode = options[0],
|
||||
mode = options[0], // Initial selection (overlaid)
|
||||
modeHandler;
|
||||
|
||||
|
||||
return {
|
||||
/**
|
||||
* Get a handler for the current mode. This will handle
|
||||
* plotting telemetry, providing subplots for the template,
|
||||
* and view-level interactions with pan-zoom state.
|
||||
* @returns {PlotOverlayMode|PlotStackMode} a handler
|
||||
* for the current mode
|
||||
*/
|
||||
getModeHandler: function () {
|
||||
// Lazily initialize
|
||||
if (!modeHandler) {
|
||||
modeHandler = mode.factory(telemetryObjects);
|
||||
}
|
||||
return modeHandler;
|
||||
},
|
||||
/**
|
||||
* Get all mode options available for each plot. Each
|
||||
* mode contains a `name` and `glyph` field suitable
|
||||
* for display in a template.
|
||||
* @return {Array} the available modes
|
||||
*/
|
||||
getModeOptions: function () {
|
||||
return options;
|
||||
},
|
||||
/**
|
||||
* Get the plotting mode option currently in use.
|
||||
* This will be one of the elements returned from
|
||||
* `getModeOptions`.
|
||||
* @return {object} the current mode
|
||||
*/
|
||||
getMode: function () {
|
||||
return mode;
|
||||
},
|
||||
/**
|
||||
* Set the plotting mode option to use.
|
||||
* The passed argument must be one of the options
|
||||
* returned by `getModeOptions`.
|
||||
* @param {object} option one of the plot mode options
|
||||
* from `getModeOptions`
|
||||
*/
|
||||
setMode: function (option) {
|
||||
if (mode !== option) {
|
||||
mode = option;
|
||||
// Clear the existing mode handler, so it
|
||||
// can be instantiated next time it's needed.
|
||||
modeHandler = undefined;
|
||||
}
|
||||
}
|
||||
|
@ -5,6 +5,12 @@ define(
|
||||
function (SubPlot, PlotPalette, PlotPanZoomStack) {
|
||||
"use strict";
|
||||
|
||||
/**
|
||||
* Handles plotting in Overlaid mode. In overlaid mode, there
|
||||
* is one sub-plot which contains all plotted objects.
|
||||
* @constructor
|
||||
* @param {DomainObject[]} the domain objects to be plotted
|
||||
*/
|
||||
function PlotOverlayMode(telemetryObjects) {
|
||||
var domainOffset,
|
||||
panZoomStack = new PlotPanZoomStack([], []),
|
||||
@ -37,13 +43,32 @@ define(
|
||||
}
|
||||
|
||||
return {
|
||||
/**
|
||||
* Plot telemetry to the sub-plot(s) managed by this mode.
|
||||
* @param {PlotPreparer} prepared the prepared data to plot
|
||||
*/
|
||||
plotTelemetry: plotTelemetry,
|
||||
/**
|
||||
* Get all sub-plots to be displayed in this mode; used
|
||||
* to populate the plot template.
|
||||
* @return {SubPlot[]} all sub-plots to display in this mode
|
||||
*/
|
||||
getSubPlots: function () {
|
||||
return subplots;
|
||||
},
|
||||
/**
|
||||
* Check if we are not in our base pan-zoom state (that is,
|
||||
* there are some temporary user modifications to the
|
||||
* current pan-zoom state.)
|
||||
* @returns {boolean} true if not in the base pan-zoom state
|
||||
*/
|
||||
isZoomed: function () {
|
||||
return panZoomStack.getDepth() > 1;
|
||||
},
|
||||
/**
|
||||
* Undo the most recent pan/zoom change and restore
|
||||
* the prior state.
|
||||
*/
|
||||
stepBackPanZoom: function () {
|
||||
panZoomStack.popPanZoom();
|
||||
subplot.update();
|
||||
|
@ -5,6 +5,12 @@ define(
|
||||
function (SubPlot, PlotPalette, PlotPanZoomStackGroup) {
|
||||
"use strict";
|
||||
|
||||
/**
|
||||
* Handles plotting in Stacked mode. In stacked mode, there
|
||||
* is one sub-plot for each plotted object.
|
||||
* @constructor
|
||||
* @param {DomainObject[]} the domain objects to be plotted
|
||||
*/
|
||||
function PlotStackMode(telemetryObjects) {
|
||||
var domainOffset,
|
||||
panZoomStackGroup =
|
||||
@ -24,7 +30,8 @@ define(
|
||||
// floating point values for display.
|
||||
subplot.setDomainOffset(prepared.getDomainOffset());
|
||||
|
||||
// Draw the buffers. Always use the 0th color
|
||||
// Draw the buffers. Always use the 0th color, because there
|
||||
// is one line per plot.
|
||||
subplot.getDrawingObject().lines = [{
|
||||
buffer: buffer,
|
||||
color: PlotPalette.getFloatColor(0),
|
||||
@ -48,19 +55,41 @@ define(
|
||||
}
|
||||
|
||||
return {
|
||||
/**
|
||||
* Plot telemetry to the sub-plot(s) managed by this mode.
|
||||
* @param {PlotPreparer} prepared the prepared data to plot
|
||||
*/
|
||||
plotTelemetry: plotTelemetry,
|
||||
/**
|
||||
* Get all sub-plots to be displayed in this mode; used
|
||||
* to populate the plot template.
|
||||
* @return {SubPlot[]} all sub-plots to display in this mode
|
||||
*/
|
||||
getSubPlots: function () {
|
||||
return subplots;
|
||||
},
|
||||
/**
|
||||
* Check if we are not in our base pan-zoom state (that is,
|
||||
* there are some temporary user modifications to the
|
||||
* current pan-zoom state.)
|
||||
* @returns {boolean} true if not in the base pan-zoom state
|
||||
*/
|
||||
isZoomed: function () {
|
||||
return panZoomStackGroup.getDepth() > 1;
|
||||
},
|
||||
/**
|
||||
* Undo the most recent pan/zoom change and restore
|
||||
* the prior state.
|
||||
*/
|
||||
stepBackPanZoom: function () {
|
||||
panZoomStackGroup.popPanZoom();
|
||||
subplots.forEach(function (subplot) {
|
||||
subplot.update();
|
||||
});
|
||||
},
|
||||
/**
|
||||
* Undo all pan/zoom changes and restore the initial state.
|
||||
*/
|
||||
unzoom: function () {
|
||||
panZoomStackGroup.clearPanZoom();
|
||||
subplots.forEach(function (subplot) {
|
||||
|
Reference in New Issue
Block a user