mirror of
https://github.com/nasa/openmct.git
synced 2025-06-22 17:08:57 +00:00
[Limits] Use datum for limits in scrolling list view
Utilize 'datum' API when displaying limits in a scrolling list view, WTD-1223.
This commit is contained in:
@ -58,11 +58,10 @@ define(
|
|||||||
// Set up columns based on telemetry metadata. This will
|
// Set up columns based on telemetry metadata. This will
|
||||||
// include one column for each domain and range type, as
|
// include one column for each domain and range type, as
|
||||||
// well as a column for the domain object name.
|
// well as a column for the domain object name.
|
||||||
function setupColumns(telemetry) {
|
function setupColumns(metadatas) {
|
||||||
var domainKeys = {},
|
var domainKeys = {},
|
||||||
rangeKeys = {},
|
rangeKeys = {},
|
||||||
columns = [],
|
columns = [];
|
||||||
metadata;
|
|
||||||
|
|
||||||
// Add a domain to the set of columns, if a domain
|
// Add a domain to the set of columns, if a domain
|
||||||
// with the same key has not yet been inclued.
|
// with the same key has not yet been inclued.
|
||||||
@ -84,9 +83,9 @@ define(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// We cannot proceed if the telemetry controller
|
// We cannot proceed if metadata is not available;
|
||||||
// is not available; clear all rows/columns.
|
// clear all rows/columns.
|
||||||
if (!telemetry) {
|
if (!Array.isArray(metadatas)) {
|
||||||
columns = [];
|
columns = [];
|
||||||
$scope.rows = [];
|
$scope.rows = [];
|
||||||
$scope.headers = [];
|
$scope.headers = [];
|
||||||
@ -96,11 +95,10 @@ define(
|
|||||||
columns = [ new NameColumn() ];
|
columns = [ new NameColumn() ];
|
||||||
|
|
||||||
// Add domain, range columns
|
// Add domain, range columns
|
||||||
metadata = telemetry.getMetadata();
|
metadatas.forEach(function (metadata) {
|
||||||
(metadata || []).forEach(function (metadata) {
|
|
||||||
(metadata.domains || []).forEach(addDomain);
|
(metadata.domains || []).forEach(addDomain);
|
||||||
});
|
});
|
||||||
(metadata || []).forEach(function (metadata) {
|
metadatas.forEach(function (metadata) {
|
||||||
(metadata.ranges || []).forEach(addRange);
|
(metadata.ranges || []).forEach(addRange);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -126,7 +124,7 @@ define(
|
|||||||
}
|
}
|
||||||
|
|
||||||
$scope.$on("telemetryUpdate", updateRows);
|
$scope.$on("telemetryUpdate", updateRows);
|
||||||
$scope.$watch("telemetry", setupColumns);
|
$scope.$watch("telemetry.getMetadata()", setupColumns);
|
||||||
}
|
}
|
||||||
|
|
||||||
return ScrollingListController;
|
return ScrollingListController;
|
||||||
|
@ -111,6 +111,25 @@ define(
|
|||||||
return latest;
|
return latest;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// From a telemetry series, retrieve a single data point
|
||||||
|
// containing all fields for domains/ranges
|
||||||
|
function makeDatum(domainObject, series, index) {
|
||||||
|
var telemetry = domainObject.getCapability('telemetry'),
|
||||||
|
metadata = telemetry ? telemetry.getMetadata() : {},
|
||||||
|
result = {};
|
||||||
|
|
||||||
|
(metadata.domains || []).forEach(function (domain) {
|
||||||
|
result[domain.key] =
|
||||||
|
series.getDomainValue(index, domain.key);
|
||||||
|
});
|
||||||
|
|
||||||
|
(metadata.ranges || []).forEach(function (range) {
|
||||||
|
result[range.key] =
|
||||||
|
series.getRangeValue(index, range.key);
|
||||||
|
});
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
/**
|
/**
|
||||||
@ -141,12 +160,17 @@ define(
|
|||||||
// some value in each column (rendering by the
|
// some value in each column (rendering by the
|
||||||
// column object itself)
|
// column object itself)
|
||||||
return values.map(function (value) {
|
return values.map(function (value) {
|
||||||
return columns.map(function (column) {
|
var datum = makeDatum(
|
||||||
return column.getValue(
|
|
||||||
objects[value.objectIndex],
|
objects[value.objectIndex],
|
||||||
datas[value.objectIndex],
|
datas[value.objectIndex],
|
||||||
value.pointIndex
|
value.pointIndex
|
||||||
);
|
);
|
||||||
|
|
||||||
|
return columns.map(function (column) {
|
||||||
|
return column.getValue(
|
||||||
|
objects[value.objectIndex],
|
||||||
|
datum
|
||||||
|
);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user