mirror of
https://github.com/nasa/openmct.git
synced 2025-06-26 11:09:22 +00:00
Compare commits
11 Commits
new-tutori
...
subobject-
Author | SHA1 | Date | |
---|---|---|---|
a41c54f711 | |||
995790d32d | |||
074548964a | |||
d6deb533dd | |||
8834b11b56 | |||
f2d588be4b | |||
f88da89b78 | |||
f4547d333e | |||
309ec07bc7 | |||
d9226568b7 | |||
936a668fe3 |
@ -32,6 +32,7 @@ define([
|
|||||||
'./policies/AdapterCompositionPolicy',
|
'./policies/AdapterCompositionPolicy',
|
||||||
'./policies/AdaptedViewPolicy',
|
'./policies/AdaptedViewPolicy',
|
||||||
'./runs/AlternateCompositionInitializer',
|
'./runs/AlternateCompositionInitializer',
|
||||||
|
'./runs/SelectingNavigationListener',
|
||||||
'text!./templates/adapted-view-template.html'
|
'text!./templates/adapted-view-template.html'
|
||||||
], function (
|
], function (
|
||||||
legacyRegistry,
|
legacyRegistry,
|
||||||
@ -45,6 +46,7 @@ define([
|
|||||||
AdapterCompositionPolicy,
|
AdapterCompositionPolicy,
|
||||||
AdaptedViewPolicy,
|
AdaptedViewPolicy,
|
||||||
AlternateCompositionInitializer,
|
AlternateCompositionInitializer,
|
||||||
|
SelectingNavigationListener,
|
||||||
adaptedViewTemplate
|
adaptedViewTemplate
|
||||||
) {
|
) {
|
||||||
legacyRegistry.register('src/adapter', {
|
legacyRegistry.register('src/adapter', {
|
||||||
@ -121,6 +123,10 @@ define([
|
|||||||
{
|
{
|
||||||
implementation: AlternateCompositionInitializer,
|
implementation: AlternateCompositionInitializer,
|
||||||
depends: ["openmct"]
|
depends: ["openmct"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
implementation: SelectingNavigationListener,
|
||||||
|
depends: ["navigationService", "openmct"]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
views: [
|
views: [
|
||||||
|
@ -29,8 +29,9 @@ define([], function () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var domainObject = legacyObject.useCapability('adapter');
|
var domainObject = legacyObject.useCapability('adapter');
|
||||||
var providers = openmct.mainViews.get(domainObject);
|
var context = { item: domainObject };
|
||||||
$scope.view = providers[0] && providers[0].view(domainObject);
|
var providers = openmct.mainViews.get(context);
|
||||||
|
$scope.view = providers[0] && providers[0].view(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
$scope.$watch('domainObject', refresh);
|
$scope.$watch('domainObject', refresh);
|
||||||
|
34
src/adapter/runs/SelectingNavigationListener.js
Normal file
34
src/adapter/runs/SelectingNavigationListener.js
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
/*****************************************************************************
|
||||||
|
* Open MCT, Copyright (c) 2014-2016, United States Government
|
||||||
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
|
* Administration. All rights reserved.
|
||||||
|
*
|
||||||
|
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
* License for the specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*
|
||||||
|
* Open MCT Web includes source code licensed under additional open source
|
||||||
|
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
|
* this source code distribution or the Licensing information page available
|
||||||
|
* at runtime from the About dialog for additional information.
|
||||||
|
*****************************************************************************/
|
||||||
|
|
||||||
|
define([], function () {
|
||||||
|
function SelectingNavigationListener(navigationService, openmct) {
|
||||||
|
var selection = openmct.selection;
|
||||||
|
navigationService.addListener(function (legacyObject) {
|
||||||
|
var domainObject = legacyObject.useCapability('adapter');
|
||||||
|
selection.clear();
|
||||||
|
selection.add({ item: domainObject });
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return SelectingNavigationListener;
|
||||||
|
});
|
53
src/inspection/InspectorController.js
Normal file
53
src/inspection/InspectorController.js
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
/*****************************************************************************
|
||||||
|
* Open MCT, Copyright (c) 2014-2016, United States Government
|
||||||
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
|
* Administration. All rights reserved.
|
||||||
|
*
|
||||||
|
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
* License for the specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*
|
||||||
|
* Open MCT includes source code licensed under additional open source
|
||||||
|
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
|
* this source code distribution or the Licensing information page available
|
||||||
|
* at runtime from the About dialog for additional information.
|
||||||
|
*****************************************************************************/
|
||||||
|
|
||||||
|
define(['./InspectorView'], function (InspectorView) {
|
||||||
|
function InspectorController(selection, region, registry) {
|
||||||
|
this.selection = selection;
|
||||||
|
this.region = region;
|
||||||
|
this.registry = registry;
|
||||||
|
this.active = false;
|
||||||
|
this.onChange = this.onChange.bind(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
InspectorController.prototype.onChange = function (context) {
|
||||||
|
var view = new InspectorView(this.registry, context)
|
||||||
|
this.region.show(view);
|
||||||
|
};
|
||||||
|
|
||||||
|
InspectorController.prototype.activate = function () {
|
||||||
|
if (!this.active) {
|
||||||
|
this.selection.on('change', this.onChange);
|
||||||
|
this.active = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
InspectorController.prototype.deactivate = function () {
|
||||||
|
if (this.active) {
|
||||||
|
this.selection.off('change', this.onChange);
|
||||||
|
this.active = false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
return InspectorController;
|
||||||
|
});
|
55
src/inspection/InspectorPanelView.js
Normal file
55
src/inspection/InspectorPanelView.js
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
/*****************************************************************************
|
||||||
|
* Open MCT, Copyright (c) 2014-2016, United States Government
|
||||||
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
|
* Administration. All rights reserved.
|
||||||
|
*
|
||||||
|
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
* License for the specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*
|
||||||
|
* Open MCT includes source code licensed under additional open source
|
||||||
|
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
|
* this source code distribution or the Licensing information page available
|
||||||
|
* at runtime from the About dialog for additional information.
|
||||||
|
*****************************************************************************/
|
||||||
|
|
||||||
|
define([
|
||||||
|
'text!./inspector-panel.html',
|
||||||
|
'zepto',
|
||||||
|
'lodash'
|
||||||
|
], function (inspectorTemplate, $, _) {
|
||||||
|
var TEMPLATE = _.template(inspectorTemplate);
|
||||||
|
|
||||||
|
function InspectorPanelView(provider, context) {
|
||||||
|
this.provider = provider;
|
||||||
|
this.context = context;
|
||||||
|
}
|
||||||
|
|
||||||
|
InspectorPanelView.prototype.show = function (element) {
|
||||||
|
var html = TEMPLATE(this.provider.metadata(this.context));
|
||||||
|
var $elements = $(html);
|
||||||
|
var innerRegion = $elements.find('.inner-region')[0];
|
||||||
|
|
||||||
|
$(element).append($elements);
|
||||||
|
|
||||||
|
this.destroy();
|
||||||
|
this.view = this.provider.view(this.context);
|
||||||
|
this.view.show(innerRegion);
|
||||||
|
};
|
||||||
|
|
||||||
|
InspectorPanelView.prototype.destroy = function () {
|
||||||
|
if (this.view) {
|
||||||
|
this.view.destroy();
|
||||||
|
this.view = undefined;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
return InspectorPanelView;
|
||||||
|
});
|
55
src/inspection/InspectorView.js
Normal file
55
src/inspection/InspectorView.js
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
/*****************************************************************************
|
||||||
|
* Open MCT, Copyright (c) 2014-2016, United States Government
|
||||||
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
|
* Administration. All rights reserved.
|
||||||
|
*
|
||||||
|
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
* License for the specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*
|
||||||
|
* Open MCT includes source code licensed under additional open source
|
||||||
|
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||||
|
* this source code distribution or the Licensing information page available
|
||||||
|
* at runtime from the About dialog for additional information.
|
||||||
|
*****************************************************************************/
|
||||||
|
|
||||||
|
define(['zepto', './InspectorPanelView'], function ($, InspectorPanelView) {
|
||||||
|
function InspectorView(registry, context) {
|
||||||
|
this.registry = registry;
|
||||||
|
this.context = context;
|
||||||
|
this.views = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
InspectorView.prototype.show = function (element) {
|
||||||
|
var providers = this.registry.get(this.context);
|
||||||
|
var $ul = $('<ul></ul>');
|
||||||
|
|
||||||
|
this.destroy();
|
||||||
|
|
||||||
|
this.views = providers.map(function (provider) {
|
||||||
|
return new InspectorPanelView(provider, this.context);
|
||||||
|
}.bind(this));
|
||||||
|
|
||||||
|
$(element).append($ul);
|
||||||
|
|
||||||
|
this.views.foreEach(function (view) {
|
||||||
|
view.show($ul[0]);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
InspectorView.prototype.destroy = function () {
|
||||||
|
this.views.forEach(function (view) {
|
||||||
|
view.destroy();
|
||||||
|
});
|
||||||
|
this.views = [];
|
||||||
|
};
|
||||||
|
|
||||||
|
return InspectorView;
|
||||||
|
});
|
4
src/inspection/inspector-panel.html
Normal file
4
src/inspection/inspector-panel.html
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<li>
|
||||||
|
<em class="t-inspector-part-header"><%- name %></em>
|
||||||
|
<div class="inner-region"></div>
|
||||||
|
</li>
|
@ -30,7 +30,7 @@ define(['zepto'], function ($) {
|
|||||||
var $element = $(htmlElement);
|
var $element = $(htmlElement);
|
||||||
var contextManager = this.contextManager;
|
var contextManager = this.contextManager;
|
||||||
var selection = this.selection;
|
var selection = this.selection;
|
||||||
var path = contextManager.path(item, htmlElement);
|
var context = contextManager.context(item, htmlElement);
|
||||||
|
|
||||||
function select() {
|
function select() {
|
||||||
selection.add(path);
|
selection.add(path);
|
||||||
@ -40,7 +40,7 @@ define(['zepto'], function ($) {
|
|||||||
var selected = selection.primary();
|
var selected = selection.primary();
|
||||||
$element.toggleClass(
|
$element.toggleClass(
|
||||||
'selected',
|
'selected',
|
||||||
selected && path.matches(selected)
|
!!selected && (selected.element === htmlElement)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -34,13 +34,14 @@ define([], function () {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @private for platform-internal use
|
* @private for platform-internal use
|
||||||
* @param {*} item the object to be viewed
|
* @param {module:openmct.Context} context the view's context,
|
||||||
|
* which includes the item being viewed
|
||||||
* @returns {module:openmct.ViewProvider[]} any providers
|
* @returns {module:openmct.ViewProvider[]} any providers
|
||||||
* which can provide views of this object
|
* which can provide views of this object
|
||||||
*/
|
*/
|
||||||
ViewRegistry.prototype.get = function (item) {
|
ViewRegistry.prototype.get = function (context) {
|
||||||
return this.providers.filter(function (provider) {
|
return this.providers.filter(function (provider) {
|
||||||
return provider.canView(item);
|
return provider.canView(context);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -105,8 +106,8 @@ define([], function () {
|
|||||||
*
|
*
|
||||||
* @method canView
|
* @method canView
|
||||||
* @memberof module:openmct.ViewProvider#
|
* @memberof module:openmct.ViewProvider#
|
||||||
* @param {module:openmct.DomainObject} domainObject the domain object
|
* @param {module:openmct.Context} context the view's context,
|
||||||
* to be viewed
|
* which includes the item being viewed
|
||||||
* @returns {boolean} true if this domain object can be viewed using
|
* @returns {boolean} true if this domain object can be viewed using
|
||||||
* this provider
|
* this provider
|
||||||
*/
|
*/
|
||||||
@ -122,7 +123,8 @@ define([], function () {
|
|||||||
*
|
*
|
||||||
* @method view
|
* @method view
|
||||||
* @memberof module:openmct.ViewProvider#
|
* @memberof module:openmct.ViewProvider#
|
||||||
* @param {*} object the object to be viewed
|
* @param {module:openmct.Context} context the view's context,
|
||||||
|
* which includes the item being viewed
|
||||||
* @returns {module:openmct.View} a view of this domain object
|
* @returns {module:openmct.View} a view of this domain object
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user