Package com.nomagic.magicdraw.annotation
Class AnnotationManager
- java.lang.Object
-
- com.dassault_systemes.modeler.foundation.project.service.ModelElementProjectService<Project>
-
- com.nomagic.magicdraw.core.project.service.ProjectService
-
- com.nomagic.magicdraw.annotation.AnnotationManager
-
- All Implemented Interfaces:
com.dassault_systemes.modeler.foundation.project.service.DisposableService
,ProjectProvider
@OpenApiAll public final class AnnotationManager extends com.nomagic.magicdraw.core.project.service.ProjectService implements ProjectProvider
Handles annotations visualization on diagrams and other UI components. It takes care of drawing decorations around symbols with annotations and provides annotation actions for manipulators. Users are responsible for adding annotations and removing added annotations afterwards. Users is responsible to call update() method when some annotation is added or removed.
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
add(Annotation annotation)
Add single annotation.boolean
add(Annotation annotation, AnnotationCategory category)
Add single annotation.static void
addAnnotationParentTargetProvider(AnnotationTargetParentProvider provider)
void
addListener(AnnotationManagerListener listener)
void
disposeService()
Designed to be overridden in derived classesjava.util.Collection<BaseElement>
getAnnotatedElements()
Returns a collection of annotated elementsjava.util.Collection<BaseElement>
getAnnotatedElements(AnnotationSubset subset)
Returns a collection of annotated elementsjava.util.Set<java.lang.Object>
getAnnotatedTargets(AnnotationSubset subset)
Returns targets of the registered annotations.java.util.List<Annotation>
getAnnotations(BaseElement element)
Get all annotations for particular element.java.util.List<Annotation>
getAnnotations(BaseElement element, AnnotationSubset subset)
java.util.List<Annotation>
getAnnotations(java.lang.Object target)
java.util.List<Annotation>
getAnnotations(java.lang.Object target, AnnotationSubset subset)
java.util.List<Annotation>
getAnnotationsOfChildren(BaseElement element)
java.util.List<Annotation>
getAnnotationsOfChildren(BaseElement element, AnnotationSubset subset)
Get all annotations of children of given element.java.util.List<Annotation>
getAnnotationsOfHiddenChildren(PresentationElement view)
Get all annotations of closest hidden children(recursively) of given symbol.java.util.List<Annotation>
getAnnotationsOfHiddenChildren(PresentationElement view, AnnotationSubset subset)
Get all annotations of closest hidden children(recursively) of given symbol.static AnnotationManager
getInstance(Project project)
static AnnotationManager
getInstance(BaseElement element)
java.util.Iterator<BaseElement>
getIteratorOfAnnotatedElements(BaseElement owner)
Returns a collection of annotated elementsjava.util.Iterator<Annotation>
getIteratorOfAnnotationsOfChildren(BaseElement element)
java.util.Iterator<Annotation>
getIteratorOfAnnotationsOfChildren(BaseElement element, AnnotationSubset subset)
Project
getProject()
static Project
getProject(java.lang.Object annotationTarget)
Used to retrieve project from element or parent target providers if given object is not element.boolean
hasAnnotatedChildren(BaseElement element)
Test if given element has children (recursively) with some annotations.boolean
hasAnnotatedChildren(BaseElement element, AnnotationSubset subset)
Test if given element has children (recursively) with some annotations.boolean
hasAnnotations()
boolean
hasAnnotations(BaseElement element, AnnotationSubset subset)
boolean
hasAnnotations(java.lang.Object target, AnnotationSubset subset)
void
registerSubset(AnnotationSubset subset)
Register subset (part) of annotations.boolean
remove(Annotation annotation)
Remove single annotation.static void
removeAnnotationParentTargetProvider(AnnotationTargetParentProvider provider)
void
removeListener(AnnotationManagerListener listener)
void
unregisterSubset(AnnotationSubset subset)
void
update()
Repaint opened diagrams and active browser tree.void
update(boolean repaintBrowserTree)
Repaint opened diagrams and (optionally) active browser tree.void
update(java.util.Collection<? extends Annotation> removed, java.util.Collection<Annotation> added)
Updates annotation manager using specified data.void
update(java.util.Collection<? extends Annotation> removed, java.util.Collection<Annotation> added, AnnotationCategory category)
Updates annotation manager using specified data.
-
-
-
Method Detail
-
addAnnotationParentTargetProvider
public static void addAnnotationParentTargetProvider(AnnotationTargetParentProvider provider)
-
removeAnnotationParentTargetProvider
public static void removeAnnotationParentTargetProvider(AnnotationTargetParentProvider provider)
-
getInstance
public static AnnotationManager getInstance(BaseElement element)
-
getInstance
public static AnnotationManager getInstance(Project project)
-
add
public boolean add(Annotation annotation)
Add single annotation. Annotation may not be visible until theupdate()
method has been called.- Parameters:
annotation
- annotation to add- Returns:
- true if annotation was added, false if such annotation already exists
-
add
public boolean add(Annotation annotation, AnnotationCategory category)
Add single annotation. Annotation may not be visible until theupdate()
method has been called.- Parameters:
annotation
- annotation to addcategory
- category to which this annotation belongs. Each category can be part of various AnnotationSubsets- Returns:
- true if annotation was added, false if such annotation already exists
-
remove
public boolean remove(Annotation annotation)
Remove single annotation. Changes may not be visible until theupdate()
method has been called.- Parameters:
annotation
- annotation to remove- Returns:
- true if annotation was removed, false if such annotation was not added before
-
hasAnnotatedChildren
public boolean hasAnnotatedChildren(@CheckForNull BaseElement element)
Test if given element has children (recursively) with some annotations.- Parameters:
element
- given element- Returns:
- true if there are at least one annotated child of given element
-
hasAnnotatedChildren
public boolean hasAnnotatedChildren(@CheckForNull BaseElement element, AnnotationSubset subset)
Test if given element has children (recursively) with some annotations.- Parameters:
element
- given elementsubset
- subset (part) of all currently registered annotations to check.- Returns:
- true if there are at least one annotated child of given element
-
getAnnotationsOfChildren
public java.util.List<Annotation> getAnnotationsOfChildren(BaseElement element)
-
getAnnotationsOfChildren
public java.util.List<Annotation> getAnnotationsOfChildren(BaseElement element, AnnotationSubset subset)
Get all annotations of children of given element. Also includes informationFlows for given element.- Parameters:
element
- given elementsubset
- subset (part) of all currently registered children annotations to retrieve- Returns:
- list of annotations sorted by severity.
-
getAnnotationsOfHiddenChildren
public java.util.List<Annotation> getAnnotationsOfHiddenChildren(PresentationElement view)
Get all annotations of closest hidden children(recursively) of given symbol. Also includes InformationFlows of given element, that has conveyed Info.- Parameters:
view
- symbol of starting PE. dedicated to find closest hidden elements for diagrams.- Returns:
- list of annotations sorted by severity.
-
getAnnotationsOfHiddenChildren
public java.util.List<Annotation> getAnnotationsOfHiddenChildren(PresentationElement view, AnnotationSubset subset)
Get all annotations of closest hidden children(recursively) of given symbol. Also includes InformationFlows of given element, that has conveyed Info.- Parameters:
view
- symbol of starting PE. dedicated to find closest hidden elements for diagrams.subset
- subset (part) of all currently registered hidden children annotations to check.- Returns:
- list of annotations sorted by severity.
-
getAnnotations
public java.util.List<Annotation> getAnnotations(BaseElement element)
Get all annotations for particular element.- Parameters:
element
- element to get annotations for- Returns:
- unmodifiable list of annotations
-
getAnnotations
public java.util.List<Annotation> getAnnotations(BaseElement element, AnnotationSubset subset)
- Parameters:
element
- element to get annotations forsubset
- subset (part) of all currently registered annotations to retrieve.- Returns:
- unmodifiable subset of element's annotations
-
getAnnotations
public java.util.List<Annotation> getAnnotations(java.lang.Object target)
-
getAnnotations
public java.util.List<Annotation> getAnnotations(java.lang.Object target, AnnotationSubset subset)
-
hasAnnotations
public boolean hasAnnotations(BaseElement element, AnnotationSubset subset)
- Returns:
- true if there is one or more annotation added for the given element
-
hasAnnotations
public boolean hasAnnotations(java.lang.Object target, AnnotationSubset subset)
-
update
public void update()
Repaint opened diagrams and active browser tree. Fires updated event to registered listeners.
-
update
public void update(boolean repaintBrowserTree)
Repaint opened diagrams and (optionally) active browser tree. Fires updated event to registered listeners.- Parameters:
repaintBrowserTree
- true to repaint active browser tree (e.g. containment).
-
disposeService
public void disposeService()
Description copied from class:com.dassault_systemes.modeler.foundation.project.service.ModelElementProjectService
Designed to be overridden in derived classes- Specified by:
disposeService
in interfacecom.dassault_systemes.modeler.foundation.project.service.DisposableService
- Overrides:
disposeService
in classcom.dassault_systemes.modeler.foundation.project.service.ModelElementProjectService<Project>
-
getProject
public static Project getProject(java.lang.Object annotationTarget)
Used to retrieve project from element or parent target providers if given object is not element.- Parameters:
annotationTarget
- annotation target- Returns:
- project which annotation target exists in
-
getAnnotatedElements
public java.util.Collection<BaseElement> getAnnotatedElements()
Returns a collection of annotated elements- Returns:
- all annotated elements
-
getAnnotatedElements
public java.util.Collection<BaseElement> getAnnotatedElements(AnnotationSubset subset)
Returns a collection of annotated elements- Parameters:
subset
- subset (part) of all currently registered annotations to take into account.- Returns:
- elements that have registered annotations belonging to the given subset
-
getAnnotatedTargets
public java.util.Set<java.lang.Object> getAnnotatedTargets(AnnotationSubset subset)
Returns targets of the registered annotations.- Parameters:
subset
- subset (part) of all currently registered annotations to take into account.- Returns:
- all targets that have registered annotations belonging to the given subset
-
getIteratorOfAnnotatedElements
public java.util.Iterator<BaseElement> getIteratorOfAnnotatedElements(@CheckForNull BaseElement owner)
Returns a collection of annotated elements- Returns:
- all annotated elements
-
update
public void update(java.util.Collection<? extends Annotation> removed, java.util.Collection<Annotation> added)
Updates annotation manager using specified data. No need to call update() method.- Parameters:
removed
- collection of removed annotations.added
- collection of added annotations.
-
update
public void update(java.util.Collection<? extends Annotation> removed, java.util.Collection<Annotation> added, AnnotationCategory category)
Updates annotation manager using specified data. No need to call update() method.- Parameters:
removed
- collection of removed annotations.added
- collection of added annotations.category
- category to which annotations belongs
-
addListener
public void addListener(AnnotationManagerListener listener)
-
removeListener
public void removeListener(AnnotationManagerListener listener)
-
hasAnnotations
public boolean hasAnnotations()
-
getIteratorOfAnnotationsOfChildren
public java.util.Iterator<Annotation> getIteratorOfAnnotationsOfChildren(BaseElement element)
-
getIteratorOfAnnotationsOfChildren
public java.util.Iterator<Annotation> getIteratorOfAnnotationsOfChildren(BaseElement element, AnnotationSubset subset)
-
registerSubset
public void registerSubset(AnnotationSubset subset)
Register subset (part) of annotations. This enables caching annotations by all the containing subsets. Only subsets, registered using this method, should be be used when retrieving annotations from the manager.
-
unregisterSubset
public void unregisterSubset(AnnotationSubset subset)
-
getProject
public Project getProject()
- Specified by:
getProject
in interfaceProjectProvider
-
-