[Telemetry] Use telemetryFormatter in scrolling list

Use the injected telemetryFormatter in scrolling
list views, instead of replicating this functionality.
WTD-599.
This commit is contained in:
Victor Woeltjen 2014-12-24 11:23:59 -08:00
parent 74f2af1011
commit 44b16f9dd9
4 changed files with 19 additions and 19 deletions

View File

@ -16,7 +16,7 @@
{
"key": "ScrollingListController",
"implementation": "ScrollingListController.js",
"depends": [ "$scope" ]
"depends": [ "$scope", "telemetryFormatter" ]
}
]
}

View File

@ -4,14 +4,10 @@
* Module defining DomainColumn. Created by vwoeltje on 11/18/14.
*/
define(
["../../plot/lib/moment.min"],
[],
function () {
"use strict";
// Date format to use for domain values; in particular,
// use day-of-year instead of month/day
var DATE_FORMAT = "YYYY-DDD HH:mm:ss";
/**
* A column which will report telemetry domain values
* (typically, timestamps.) Used by the ScrollingListController.
@ -20,8 +16,10 @@ define(
* @param domainMetadata an object with the machine- and human-
* readable names for this domain (in `key` and `name`
* fields, respectively.)
* @param {TelemetryFormatter} telemetryFormatter the telemetry
* formatting service, for making values human-readable.
*/
function DomainColumn(domainMetadata) {
function DomainColumn(domainMetadata, telemetryFormatter) {
return {
/**
* Get the title to display in this column's header.
@ -36,10 +34,9 @@ define(
* @returns {string} the text to display
*/
getValue: function (domainObject, data, index) {
return moment.utc(data.getDomainValue(
index,
domainMetadata.key
)).format(DATE_FORMAT);
return telemetryFormatter.formatDomainValue(
data.getDomainValue(index, domainMetadata.key)
);
}
};
}

View File

@ -16,8 +16,10 @@ define(
* @param rangeMetadata an object with the machine- and human-
* readable names for this range (in `key` and `name`
* fields, respectively.)
* @param {TelemetryFormatter} telemetryFormatter the telemetry
* formatting service, for making values human-readable.
*/
function RangeColumn(rangeMetadata) {
function RangeColumn(rangeMetadata, telemetryFormatter) {
return {
/**
* Get the title to display in this column's header.
@ -32,8 +34,9 @@ define(
* @returns {string} the text to display
*/
getValue: function (domainObject, data, index) {
var value = data.getRangeValue(index, rangeMetadata.key);
return value && value.toFixed(3);
return telemetryFormatter.formatRangeValue(
data.getRangeValue(index, rangeMetadata.key)
);
}
};
}

View File

@ -15,7 +15,7 @@ define(
* the contents of the scrolling list view.
* @constructor
*/
function ScrollingListController($scope) {
function ScrollingListController($scope, formatter) {
var populator;
@ -49,7 +49,7 @@ define(
var key = domain.key;
if (key && !domainKeys[key]) {
domainKeys[key] = true;
columns.push(new DomainColumn(domain));
columns.push(new DomainColumn(domain, formatter));
}
}
@ -59,7 +59,7 @@ define(
var key = range.key;
if (key && !rangeKeys[key]) {
rangeKeys[key] = true;
columns.push(new RangeColumn(range));
columns.push(new RangeColumn(range, formatter));
}
}
@ -86,10 +86,10 @@ define(
// Add default domain, range columns if none
// were described in metadata.
if (Object.keys(domainKeys).length < 1) {
columns.push(new DomainColumn({ name: "Time" }));
columns.push(new DomainColumn({name: "Time"}, formatter));
}
if (Object.keys(rangeKeys).length < 1) {
columns.push(new RangeColumn({ name: "Value" }));
columns.push(new RangeColumn({name: "Value"}, formatter));
}
// We have all columns now; use them to initializer