squash merge open933 into integration-1089, resolve merge conflicts.

This commit is contained in:
Pete Richards
2016-10-12 13:47:56 -07:00
parent 7b218c7f02
commit 65043d0ff3
76 changed files with 4955 additions and 358 deletions

View File

@@ -229,13 +229,19 @@ define(
}
// Respond to a display bounds change (requery for data)
function changeDisplayBounds(event, bounds) {
var domainAxis = $scope.axes[0];
function changeDisplayBounds(event, bounds, follow) {
//'hack' for follow mode
if (follow === true) {
setBasePanZoom(bounds);
} else {
var domainAxis = $scope.axes[0];
domainAxis.chooseOption(bounds.domain);
updateDomainFormat();
setBasePanZoom(bounds);
requery();
domainAxis.chooseOption(bounds.domain);
updateDomainFormat();
setBasePanZoom(bounds);
requery();
}
self.setUnsynchedStatus($scope.domainObject, follow && self.isZoomed());
}
this.modeOptions = new PlotModeOptions([], subPlotFactory);
@@ -368,6 +374,12 @@ define(
return this.pending;
};
PlotController.prototype.setUnsynchedStatus = function (domainObject, status) {
if (domainObject.hasCapability('status')) {
domainObject.getCapability('status').set('timeconductor-unsynced', status);
}
};
/**
* Export the plot to PNG
*/

View File

@@ -39,6 +39,7 @@ define(
mockHandle,
mockDomainObject,
mockSeries,
mockStatusCapability,
controller;
function bind(method, thisObj) {
@@ -80,7 +81,7 @@ define(
);
mockDomainObject = jasmine.createSpyObj(
"domainObject",
["getId", "getModel", "getCapability"]
["getId", "getModel", "getCapability", "hasCapability"]
);
mockHandler = jasmine.createSpyObj(
"telemetrySubscriber",
@@ -104,6 +105,11 @@ define(
['getPointCount', 'getDomainValue', 'getRangeValue']
);
mockStatusCapability = jasmine.createSpyObj(
"statusCapability",
["set"]
);
mockHandler.handle.andReturn(mockHandle);
mockThrottle.andCallFake(function (fn) {
return fn;
@@ -241,6 +247,34 @@ define(
expect(bind(controller.unzoom, controller)).not.toThrow();
});
it("sets status when plot becomes detached from time conductor", function () {
mockScope.$watch.mostRecentCall.args[1](mockDomainObject);
function boundsEvent() {
fireEvent("telemetry:display:bounds", [
{},
{ start: 10, end: 100 },
true
]);
}
mockDomainObject.hasCapability.andCallFake(function (name) {
return name === "status";
});
mockDomainObject.getCapability.andReturn(mockStatusCapability);
spyOn(controller, "isZoomed");
//Mock zoomed in state
controller.isZoomed.andReturn(true);
boundsEvent();
expect(mockStatusCapability.set).toHaveBeenCalledWith("timeconductor-unsynced", true);
//"Reset" zoom
controller.isZoomed.andReturn(false);
boundsEvent();
expect(mockStatusCapability.set).toHaveBeenCalledWith("timeconductor-unsynced", false);
});
it("indicates if a request is pending", function () {
mockScope.$watch.mostRecentCall.args[1](mockDomainObject);
expect(controller.isRequestPending()).toBeTruthy();
@@ -297,7 +331,6 @@ define(
expect(mockHandle.request.calls.length).toEqual(2);
});
it("maintains externally-provided domain axis bounds after data is received", function () {
mockSeries.getPointCount.andReturn(3);
mockSeries.getRangeValue.andReturn(42);