mirror of
https://github.com/nasa/openmct.git
synced 2025-06-21 00:23:01 +00:00
[API] Support distinct region registration
This commit is contained in:
28
src/MCT.js
28
src/MCT.js
@ -31,18 +31,24 @@ define([
|
|||||||
|
|
||||||
MCT.prototype.view = function (region, factory) {
|
MCT.prototype.view = function (region, factory) {
|
||||||
var viewKey = region + uuid();
|
var viewKey = region + uuid();
|
||||||
var adaptedViewKey = "adapted-view-" + viewKey;
|
var adaptedViewKey = "adapted-view-" + region;
|
||||||
|
|
||||||
this.legacyExtension('views', {
|
this.legacyExtension(
|
||||||
name: "A view",
|
region === this.regions.main ? 'views' : 'representations',
|
||||||
key: adaptedViewKey,
|
{
|
||||||
editable: true,
|
name: "A view",
|
||||||
template: '<mct-view key="\'' +
|
key: adaptedViewKey,
|
||||||
viewKey +
|
editable: true,
|
||||||
'\'" ' +
|
template: '<mct-view region="\'' +
|
||||||
'mct-object="domainObject">' +
|
region +
|
||||||
'</mct-view>'
|
'\'" ' +
|
||||||
});
|
'key="\'' +
|
||||||
|
viewKey +
|
||||||
|
'\'" ' +
|
||||||
|
'mct-object="domainObject">' +
|
||||||
|
'</mct-view>'
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
this.legacyExtension('policies', {
|
this.legacyExtension('policies', {
|
||||||
category: "view",
|
category: "view",
|
||||||
|
@ -3,24 +3,21 @@ define(['angular'], function (angular) {
|
|||||||
var factories = {};
|
var factories = {};
|
||||||
|
|
||||||
newViews.forEach(function (newView) {
|
newViews.forEach(function (newView) {
|
||||||
factories[newView.key] = newView.factory;
|
factories[newView.region] = factories[newView.region] || {};
|
||||||
|
factories[newView.region][newView.key] = newView.factory;
|
||||||
});
|
});
|
||||||
|
|
||||||
return {
|
return {
|
||||||
restrict: 'E',
|
restrict: 'E',
|
||||||
link: function (scope, element, attrs) {
|
link: function (scope, element, attrs) {
|
||||||
var key = undefined;
|
var key, mctObject, region;
|
||||||
var mctObject = undefined;
|
|
||||||
|
|
||||||
function maybeShow() {
|
function maybeShow() {
|
||||||
if (!factories[key]) {
|
if (!factories[region] || !factories[region][key] || !mctObject) {
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (!mctObject) {
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var view = factories[key](mctObject);
|
var view = factories[region][key](mctObject);
|
||||||
view.show(element[0]);
|
view.show(element[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -34,12 +31,19 @@ define(['angular'], function (angular) {
|
|||||||
maybeShow();
|
maybeShow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function setRegion(r) {
|
||||||
|
region = r;
|
||||||
|
maybeShow();
|
||||||
|
}
|
||||||
|
|
||||||
scope.$watch('key', setKey);
|
scope.$watch('key', setKey);
|
||||||
|
scope.$watch('region', setRegion);
|
||||||
scope.$watch('mctObject', setObject);
|
scope.$watch('mctObject', setObject);
|
||||||
|
|
||||||
},
|
},
|
||||||
scope: {
|
scope: {
|
||||||
key: "=",
|
key: "=",
|
||||||
|
region: "=",
|
||||||
mctObject: "="
|
mctObject: "="
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -27,7 +27,9 @@
|
|||||||
<div class="holder l-flex-col flex-elem grows l-object-wrapper-inner">
|
<div class="holder l-flex-col flex-elem grows l-object-wrapper-inner">
|
||||||
<!-- Toolbar and Save/Cancel buttons -->
|
<!-- Toolbar and Save/Cancel buttons -->
|
||||||
<div class="l-edit-controls flex-elem l-flex-row flex-align-end">
|
<div class="l-edit-controls flex-elem l-flex-row flex-align-end">
|
||||||
<span>This is where a toolbar will go.</span>
|
<mct-representation key="adapted-view-TOOLBAR"
|
||||||
|
mct-object="domainObject">
|
||||||
|
</mct-representation>
|
||||||
<mct-representation key="'edit-action-buttons'"
|
<mct-representation key="'edit-action-buttons'"
|
||||||
mct-object="domainObject"
|
mct-object="domainObject"
|
||||||
class='flex-elem conclude-editing'>
|
class='flex-elem conclude-editing'>
|
||||||
|
Reference in New Issue
Block a user