mirror of
https://github.com/nasa/openmct.git
synced 2024-12-20 13:43:09 +00:00
[Telemetry] Refactor plot to use TelemetryFormatter
Refactor plot view to use an injected telemetry formatter, instead of explicitly including moment. WTD-599.
This commit is contained in:
parent
b080f90f64
commit
fc0376296d
@ -20,7 +20,7 @@
|
||||
{
|
||||
"key": "PlotController",
|
||||
"implementation": "PlotController.js",
|
||||
"depends": [ "$scope" ]
|
||||
"depends": [ "$scope", "telemetryFormatter" ]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -8,9 +8,10 @@ define(
|
||||
"./elements/PlotPreparer",
|
||||
"./elements/PlotPalette",
|
||||
"./elements/PlotAxis",
|
||||
"./modes/PlotModeOptions"
|
||||
"./modes/PlotModeOptions",
|
||||
"./SubPlotFactory"
|
||||
],
|
||||
function (PlotPreparer, PlotPalette, PlotAxis, PlotModeOptions) {
|
||||
function (PlotPreparer, PlotPalette, PlotAxis, PlotModeOptions, SubPlotFactory) {
|
||||
"use strict";
|
||||
|
||||
var AXIS_DEFAULTS = [
|
||||
@ -29,8 +30,9 @@ define(
|
||||
*
|
||||
* @constructor
|
||||
*/
|
||||
function PlotController($scope) {
|
||||
var modeOptions = new PlotModeOptions([]),
|
||||
function PlotController($scope, telemetryFormatter) {
|
||||
var subPlotFactory = new SubPlotFactory(telemetryFormatter),
|
||||
modeOptions = new PlotModeOptions([], subPlotFactory),
|
||||
subplots = [],
|
||||
domainOffset;
|
||||
|
||||
|
@ -22,14 +22,14 @@ define(
|
||||
* @param {PlotPanZoomStack} panZoomStack the stack of pan-zoom
|
||||
* states which is applicable to this sub-plot
|
||||
*/
|
||||
function SubPlot(telemetryObjects, panZoomStack) {
|
||||
function SubPlot(telemetryObjects, panZoomStack, telemetryFormatter) {
|
||||
// We are used from a template often, so maintain
|
||||
// state in local variables to allow for fast look-up,
|
||||
// as is normal for controllers.
|
||||
var draw = {},
|
||||
rangeTicks = [],
|
||||
domainTicks = [],
|
||||
formatter = new PlotFormatter(),
|
||||
formatter = telemetryFormatter,
|
||||
domainOffset,
|
||||
mousePosition,
|
||||
marqueeStart,
|
||||
|
40
platform/features/plot/src/SubPlotFactory.js
Normal file
40
platform/features/plot/src/SubPlotFactory.js
Normal file
@ -0,0 +1,40 @@
|
||||
/*global define*/
|
||||
|
||||
define(
|
||||
["./SubPlot"],
|
||||
function (SubPlot) {
|
||||
"use strict";
|
||||
|
||||
/**
|
||||
* Utility factory; wraps the SubPlot constructor and adds
|
||||
* in a reference to the telemetryFormatter, which will be
|
||||
* used to represent telemetry values (timestamps or data
|
||||
* values) as human-readable strings.
|
||||
* @constructor
|
||||
*/
|
||||
function SubPlotFactory(telemetryFormatter) {
|
||||
return {
|
||||
/**
|
||||
* Instantiate a new sub-plot.
|
||||
* @param {DomainObject[]} telemetryObjects the domain objects
|
||||
* which will be plotted in this sub-plot
|
||||
* @param {PlotPanZoomStack} panZoomStack the stack of pan-zoom
|
||||
* states which is applicable to this sub-plot
|
||||
* @returns {SubPlot} the instantiated sub-plot
|
||||
* @method
|
||||
* @memberof SubPlotFactory
|
||||
*/
|
||||
createSubPlot: function (telemetryObjects, panZoomStack) {
|
||||
return new SubPlot(
|
||||
telemetryObjects,
|
||||
panZoomStack,
|
||||
telemetryFormatter
|
||||
);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
return SubPlotFactory;
|
||||
|
||||
}
|
||||
);
|
@ -13,7 +13,7 @@ define(
|
||||
* @constructor
|
||||
* @param {PlotPanZoomStack} panZoomStack the pan-zoom stack for
|
||||
* this plot, used to determine plot boundaries
|
||||
* @param {PlotFormatter} formatter used to format (for display)
|
||||
* @param {TelemetryFormatter} formatter used to format (for display)
|
||||
* domain and range values.
|
||||
*/
|
||||
function PlotTickGenerator(panZoomStack, formatter) {
|
||||
|
@ -27,7 +27,7 @@ define(
|
||||
* @param {DomainObject[]} the telemetry objects being
|
||||
* represented in this plot view
|
||||
*/
|
||||
function PlotModeOptions(telemetryObjects) {
|
||||
function PlotModeOptions(telemetryObjects, subPlotFactory) {
|
||||
var options = telemetryObjects.length > 1 ?
|
||||
[ OVERLAID, STACKED ] : [ OVERLAID ],
|
||||
mode = options[0], // Initial selection (overlaid)
|
||||
@ -44,7 +44,10 @@ define(
|
||||
getModeHandler: function () {
|
||||
// Lazily initialize
|
||||
if (!modeHandler) {
|
||||
modeHandler = mode.factory(telemetryObjects);
|
||||
modeHandler = mode.factory(
|
||||
telemetryObjects,
|
||||
subPlotFactory
|
||||
);
|
||||
}
|
||||
return modeHandler;
|
||||
},
|
||||
|
@ -11,10 +11,13 @@ define(
|
||||
* @constructor
|
||||
* @param {DomainObject[]} the domain objects to be plotted
|
||||
*/
|
||||
function PlotOverlayMode(telemetryObjects) {
|
||||
function PlotOverlayMode(telemetryObjects, subPlotFactory) {
|
||||
var domainOffset,
|
||||
panZoomStack = new PlotPanZoomStack([], []),
|
||||
subplot = new SubPlot(telemetryObjects, panZoomStack),
|
||||
subplot = subPlotFactory.createSubPlot(
|
||||
telemetryObjects,
|
||||
panZoomStack
|
||||
),
|
||||
subplots = [ subplot ];
|
||||
|
||||
function plotTelemetry(prepared) {
|
||||
|
@ -11,12 +11,12 @@ define(
|
||||
* @constructor
|
||||
* @param {DomainObject[]} the domain objects to be plotted
|
||||
*/
|
||||
function PlotStackMode(telemetryObjects) {
|
||||
function PlotStackMode(telemetryObjects, subPlotFactory) {
|
||||
var domainOffset,
|
||||
panZoomStackGroup =
|
||||
new PlotPanZoomStackGroup(telemetryObjects.length),
|
||||
subplots = telemetryObjects.map(function (telemetryObject, i) {
|
||||
return new SubPlot(
|
||||
return subPlotFactory.createSubPlot(
|
||||
[telemetryObject],
|
||||
panZoomStackGroup.getPanZoomStack(i)
|
||||
);
|
||||
|
Loading…
Reference in New Issue
Block a user