[Time Conductor] Use timeService from control

This commit is contained in:
Victor Woeltjen 2015-10-22 15:51:12 -07:00
parent 1e71df5ce9
commit a154c9c870
5 changed files with 36 additions and 14 deletions

View File

@ -26,6 +26,7 @@
"platform/policy",
"platform/entanglement",
"platform/search",
"platform/time",
"example/imagery",
"example/eventGenerator",

View File

@ -44,11 +44,11 @@ define([
};
SinewaveTimeSystem.prototype.now = function () {
return new SinewaveTelemetrySeries().getPointCount();
return new SinewaveTelemetrySeries({}).getPointCount();
};
SinewaveTimeSystem.prototype.increment = function (scale) {
return Math.pow(10, (scale || 0) + 1);
return Math.max(Math.pow(10, (scale || 0) + 1), 1);
};
return SinewaveTimeSystem;

View File

@ -66,7 +66,7 @@
{
"key": "TimeRangeController",
"implementation": "controllers/TimeRangeController.js",
"depends": [ "$scope", "dateService", "now" ]
"depends": [ "$scope", "timeService", "now" ]
},
{
"key": "DateTimePickerController",

View File

@ -102,7 +102,7 @@
<div class="l-time-range-ticks-holder">
<div class="l-time-range-ticks">
<div
ng-repeat="tick in ticks"
ng-repeat="tick in ticks track by $index"
ng-style="{ left: $index * (100 / (ticks.length - 1)) + '%' }"
class="tick tick-x"
>

View File

@ -34,24 +34,20 @@ define(
* @memberof platform/commonUI/general
* @constructor
*/
function TimeRangeController($scope, dateService, now) {
function TimeRangeController($scope, timeService, now) {
var tickCount = 2,
innerMinimumSpan = 1000, // 1 second
outerMinimumSpan = 1000 * 60 * 60, // 1 hour
initialDragValue;
function timeSystemKey() {
return ($scope.parameters || {}).system;
}
initialDragValue,
timeSystem = timeService.system(); // Start with default
function formatTimestamp(ts) {
return dateService.format(ts, timeSystemKey());
return timeSystem.format(ts);
}
function parseTimestamp(text) {
var key = timeSystemKey();
if (dateService.validate(text, key)) {
return dateService.parse(text, key);
if (timeSystem.validate(text)) {
return timeSystem.parse(text);
} else {
throw new Error("Could not parse " + text);
}
@ -270,6 +266,30 @@ define(
}
}
function reinitializeBounds(now, increment) {
var end = Math.ceil(now / increment) * increment,
start = end - increment;
$scope.ngModel.outer.start = start;
$scope.ngModel.outer.end = end;
$scope.ngModel.inner.start = start;
$scope.ngModel.inner.end = end;
$scope.boundsModel = {};
updateViewFromModel();
}
function updateTimeSystem(key) {
timeSystem = timeService.system(key) || timeService.system();
// One second / one hour in UTC; should be
// similarly useful in other time systems.
innerMinimumSpan = timeSystem.increment(-3);
outerMinimumSpan = timeSystem.increment(-1);
reinitializeBounds(
timeSystem.now(),
timeSystem.increment()
);
}
function updateStartFromPicker(value) {
updateOuterStart(value);
updateBoundsText($scope.ngModel);
@ -300,6 +320,7 @@ define(
$scope.$watch("ngModel.outer.end", updateEndFromPicker);
$scope.$watch("boundsModel.start", updateStartFromText);
$scope.$watch("boundsModel.end", updateEndFromText);
$scope.$watch("parameters.system", updateTimeSystem);
}
return TimeRangeController;