mirror of
https://github.com/nasa/openmct.git
synced 2025-02-20 17:33:23 +00:00
The entanglement bundle defines move, copy, and link actions, and exposes them as context menu actions. * The Move action moves an object from it's current parent to a new parent object. * The Copy action deep-copies an object to a new parent object. * The Link action links an object to a new parent object. These actions are implemented by three new services: moveService, copyService, and linkService. Mocks are provided for each service for easy testing of components that depend on them. Additionally, this bundle provides a DomainObjectFactory that simplifies the construction of mockDomainObjects for tests. These actions are exposed to the user as context menu options.
Entanglement
Entanglement is the process of moving, copying, and linking domain objects in such a way that their relationships are impossible to discern.
This bundle provides move, copy, and link functionality. Acheiving a state of entanglement is left up to the end user.
Services implement logic
Each method (move, copy, link) is implemented as a service, and each service
provides two functions: validate
and perform
.
validate(object, parentCandidate)
returns true if the object
can be
move/copy/linked into the parentCandidate
's composition.
perform(object, parentObject)
move/copy/links the object
into the
parentObject
's composition.
Actions implement user interactions
Actions are used to expose move/copy/link to the user. They prompt for input where necessary, and complete the actions.