mirror of
https://github.com/nasa/openmct.git
synced 2025-05-29 21:54:20 +00:00
[Windowing] Show title of navigated object
Show title of navigated object in window, WTD-1200.
This commit is contained in:
parent
4c6cad3e77
commit
a937a3193b
@ -121,6 +121,12 @@
|
|||||||
"depends": [ "typeService", "dialogService", "creationService", "policyService" ]
|
"depends": [ "typeService", "dialogService", "creationService", "policyService" ]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"runs": [
|
||||||
|
{
|
||||||
|
"implementation": "windowing/WindowTitler.js",
|
||||||
|
"depends": [ "navigationService", "$rootScope", "$document" ]
|
||||||
|
}
|
||||||
|
],
|
||||||
"licenses": [
|
"licenses": [
|
||||||
{
|
{
|
||||||
"name": "screenfull.js",
|
"name": "screenfull.js",
|
||||||
|
@ -25,6 +25,7 @@ define(
|
|||||||
function setNavigation(domainObject) {
|
function setNavigation(domainObject) {
|
||||||
$scope.navigatedObject = domainObject;
|
$scope.navigatedObject = domainObject;
|
||||||
$scope.treeModel.selectedObject = domainObject;
|
$scope.treeModel.selectedObject = domainObject;
|
||||||
|
navigationService.setNavigation(domainObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Load the root object, put it in the scope.
|
// Load the root object, put it in the scope.
|
||||||
|
@ -24,10 +24,12 @@ define(
|
|||||||
|
|
||||||
// Setter for navigation; invokes callbacks
|
// Setter for navigation; invokes callbacks
|
||||||
function setNavigation(value) {
|
function setNavigation(value) {
|
||||||
navigated = value;
|
if (navigated !== value) {
|
||||||
callbacks.forEach(function (callback) {
|
navigated = value;
|
||||||
callback(value);
|
callbacks.forEach(function (callback) {
|
||||||
});
|
callback(value);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Adds a callback
|
// Adds a callback
|
||||||
|
30
platform/commonUI/browse/src/windowing/WindowTitler.js
Normal file
30
platform/commonUI/browse/src/windowing/WindowTitler.js
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
/*global define,Promise*/
|
||||||
|
|
||||||
|
define(
|
||||||
|
[],
|
||||||
|
function () {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @constructor
|
||||||
|
*/
|
||||||
|
function WindowTitler(navigationService, $rootScope, $document) {
|
||||||
|
// Look up name of the navigated domain object...
|
||||||
|
function getNavigatedObjectName() {
|
||||||
|
var navigatedObject = navigationService.getNavigation();
|
||||||
|
return navigatedObject && navigatedObject.getModel().name;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set the window title...
|
||||||
|
function setTitle(name) {
|
||||||
|
$document[0].title = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Watch the former, and invoke the latter
|
||||||
|
$rootScope.$watch(getNavigatedObjectName, setTitle);
|
||||||
|
}
|
||||||
|
|
||||||
|
return WindowTitler;
|
||||||
|
}
|
||||||
|
);
|
@ -41,6 +41,16 @@ define(
|
|||||||
expect(callback).toHaveBeenCalledWith(testObject);
|
expect(callback).toHaveBeenCalledWith(testObject);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("does not notify listeners when no changes occur", function () {
|
||||||
|
var testObject = { someKey: 42 },
|
||||||
|
callback = jasmine.createSpy("callback");
|
||||||
|
|
||||||
|
navigationService.addListener(callback);
|
||||||
|
navigationService.setNavigation(testObject);
|
||||||
|
navigationService.setNavigation(testObject);
|
||||||
|
expect(callback.calls.length).toEqual(1);
|
||||||
|
});
|
||||||
|
|
||||||
it("stops notifying listeners after removal", function () {
|
it("stops notifying listeners after removal", function () {
|
||||||
var testObject = { someKey: 42 },
|
var testObject = { someKey: 42 },
|
||||||
callback = jasmine.createSpy("callback");
|
callback = jasmine.createSpy("callback");
|
||||||
|
@ -8,5 +8,6 @@
|
|||||||
"creation/LocatorController",
|
"creation/LocatorController",
|
||||||
"navigation/NavigateAction",
|
"navigation/NavigateAction",
|
||||||
"navigation/NavigationService",
|
"navigation/NavigationService",
|
||||||
"windowing/FullscreenAction"
|
"windowing/FullscreenAction",
|
||||||
|
"windowing/WindowTitler"
|
||||||
]
|
]
|
59
platform/commonUI/browse/test/windowing/WindowTitlerSpec.js
Normal file
59
platform/commonUI/browse/test/windowing/WindowTitlerSpec.js
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
/*global define,Promise,describe,it,expect,beforeEach,waitsFor,jasmine*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* WindowTitlerSpec. Created by vwoeltje on 11/6/14.
|
||||||
|
*/
|
||||||
|
define(
|
||||||
|
["../../src/windowing/WindowTitler"],
|
||||||
|
function (WindowTitler) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
describe("The window titler", function () {
|
||||||
|
var mockNavigationService,
|
||||||
|
mockRootScope,
|
||||||
|
mockDocument,
|
||||||
|
mockDomainObject,
|
||||||
|
titler;
|
||||||
|
|
||||||
|
beforeEach(function () {
|
||||||
|
mockNavigationService = jasmine.createSpyObj(
|
||||||
|
'navigationService',
|
||||||
|
[ 'getNavigation' ]
|
||||||
|
);
|
||||||
|
mockRootScope = jasmine.createSpyObj(
|
||||||
|
'$rootScope',
|
||||||
|
[ '$watch' ]
|
||||||
|
);
|
||||||
|
mockDomainObject = jasmine.createSpyObj(
|
||||||
|
'domainObject',
|
||||||
|
['getModel']
|
||||||
|
);
|
||||||
|
mockDocument = [{}];
|
||||||
|
|
||||||
|
mockDomainObject.getModel.andReturn({ name: 'Test name' });
|
||||||
|
mockNavigationService.getNavigation.andReturn(mockDomainObject);
|
||||||
|
|
||||||
|
titler = new WindowTitler(
|
||||||
|
mockNavigationService,
|
||||||
|
mockRootScope,
|
||||||
|
mockDocument
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("listens for changes to the name of the navigated object", function () {
|
||||||
|
expect(mockRootScope.$watch).toHaveBeenCalledWith(
|
||||||
|
jasmine.any(Function),
|
||||||
|
jasmine.any(Function)
|
||||||
|
);
|
||||||
|
expect(mockRootScope.$watch.mostRecentCall.args[0]())
|
||||||
|
.toEqual('Test name');
|
||||||
|
});
|
||||||
|
|
||||||
|
it("sets the title to the name of the navigated object", function () {
|
||||||
|
mockRootScope.$watch.mostRecentCall.args[1]("Some name");
|
||||||
|
expect(mockDocument[0].title).toEqual("Some name");
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
);
|
Loading…
x
Reference in New Issue
Block a user