[Time Conductor] Only update bounds when stable

This commit is contained in:
Victor Woeltjen 2015-10-02 16:28:37 -07:00
parent cd0c0f77cc
commit 431c74ca49

View File

@ -76,6 +76,7 @@ define(
var conductor = this.conductorService.getConductor(),
conductorScope = this.conductorScope(),
repScope = this.scope,
lastObservedBounds,
broadcastBounds;
// Combine start/end times into a single object
@ -86,14 +87,29 @@ define(
};
}
function boundsAreStable(newlyObservedBounds) {
return !lastObservedBounds ||
(lastObservedBounds.start === newlyObservedBounds.start &&
lastObservedBounds.end === newlyObservedBounds.end);
}
function updateConductorInner() {
conductor.displayStart(conductorScope.conductor.inner.start);
conductor.displayEnd(conductorScope.conductor.inner.end);
lastObservedBounds = lastObservedBounds || bounds();
broadcastBounds();
}
broadcastBounds = this.throttle(function () {
repScope.$broadcast('telemetry:display:bounds', bounds());
var newlyObservedBounds = bounds();
if (boundsAreStable(newlyObservedBounds)) {
repScope.$broadcast('telemetry:display:bounds', bounds());
lastObservedBounds = undefined;
} else {
lastObservedBounds = newlyObservedBounds;
broadcastBounds();
}
}, THROTTLE_MS);
conductorScope.conductor = { outer: bounds(), inner: bounds() };