Removed contextualization warning. Removed now redundant Contextualize service. Fixes #1498

This commit is contained in:
Henry
2017-03-31 15:16:20 -07:00
parent 4d6a0d4931
commit a867cd6be0
11 changed files with 30 additions and 266 deletions

View File

@ -24,7 +24,8 @@
* Module defining CompositionCapability. Created by vwoeltje on 11/7/14.
*/
define(
function () {
['./ContextualDomainObject'],
function (ContextualDomainObject) {
/**
* Composition capability. A domain object's composition is the set of
@ -38,13 +39,12 @@ define(
* @constructor
* @implements {Capability}
*/
function CompositionCapability($injector, contextualize, domainObject) {
function CompositionCapability($injector, domainObject) {
// Get a reference to the object service from $injector
this.injectObjectService = function () {
this.objectService = $injector.get("objectService");
};
this.contextualize = contextualize;
this.domainObject = domainObject;
}
@ -115,7 +115,6 @@ define(
CompositionCapability.prototype.invoke = function () {
var domainObject = this.domainObject,
model = domainObject.getModel(),
contextualize = this.contextualize,
ids;
// Then filter out non-existent objects,
@ -125,7 +124,7 @@ define(
return ids.filter(function (id) {
return objects[id];
}).map(function (id) {
return contextualize(objects[id], domainObject);
return new ContextualDomainObject(objects[id], domainObject);
});
}

View File

@ -21,8 +21,8 @@
*****************************************************************************/
define(
[],
function () {
['./ContextualDomainObject'],
function (ContextualDomainObject) {
/**
* Implements the `instantiation` capability. This allows new domain
@ -70,11 +70,7 @@ define(
var newObject = this.instantiateFn(model, id);
this.contextualizeFn = this.contextualizeFn ||
this.$injector.get("contextualize");
return this.contextualizeFn(newObject, this.domainObject);
return new ContextualDomainObject(newObject, this.domainObject);
};
/**

View File

@ -1,82 +0,0 @@
/*****************************************************************************
* 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(
['../capabilities/ContextualDomainObject'],
function (ContextualDomainObject) {
/**
* Wrap a domain object such that it has a `context` capability
* referring to a specific parent.
*
* Usage:
*
* contextualize(domainObject, parentObject)
*
* Attempting to contextualize an object with a parent that does
* not include that object in its composition may have
* unpredictable results; a warning will be logged if this occurs.
*
* @returns {Function}
* @memberof platform/core
*/
function Contextualize($log) {
function validate(id, parentObject) {
var model = parentObject && parentObject.getModel(),
composition = (model || {}).composition || [];
if (composition.indexOf(id) === -1) {
$log.warn([
"Attempted to contextualize",
id,
"in",
parentObject && parentObject.getId(),
"but that object does not contain",
id,
"in its composition.",
"Unexpected behavior may follow."
].join(" "));
}
}
/**
* Contextualize this domain object.
* @param {DomainObject} domainObject the domain object
* to wrap with a context
* @param {DomainObject} parentObject the domain object
* which should appear as the contextual parent
*/
return function (domainObject, parentObject) {
// Don't validate while editing; consistency is not
// necessarily expected due to unsaved changes.
var editor = domainObject.getCapability('editor');
if (!editor || !editor.inEditContext()) {
validate(domainObject.getId(), parentObject);
}
return new ContextualDomainObject(domainObject, parentObject);
};
}
return Contextualize;
}
);