Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Papyrus/Mars Work Description/Improvments/Stereotype support/StateOfArt
Contents
Stereotype Display: State of Art
Concepts in place
The Stereotype feature contains two types of display, which are more or less independent.
- The stereotype name label
- Can be displayed or hidden
- With a short name or a Qualified Name
- The stereotype properties
- Can be displayed or hidden
- Can be shown in a compartment, as a comment or in braces
On top of that, there are several actions taking part in the stereotype display:
- When displaying or hiding an item (stereotype Label or property label) from the appearance property view.
- When a new stereotype is applied or unapplied from the profile tab into the property view.
Those different cases should be part of the solution. But as there are quite independent, they can be treated as such.
Conception
In Papyrus, Stereotypes are stored into UML model. But the information related to the manner to display stereotypes is stored through the EAnnotation. EAnnotation is an EMF concept that is attached to an object of type EModelElement. The EAnnotation details is a Map of type EMap<String,String>. In the case of “Stereotype”, the EAnnotation name is “Stereotype_Annotation”, the related map contains the following list of properties and values:
KEY (String) | VALUE (String) | Description |
---|---|---|
Stereotype_Presentation_Kind | TextIconStereotype | The kind of presentation for stereotype |
IconStereotype | ||
ImageStereotype | ||
HorizontalStereo | ||
VerticalStereo | ||
StereotypeList | Block, Allocated | The list of stereotype to display |
StereotypeWithQualifiedNameList | SysML::Allocations::Allocated, SysML::Blocks::Block | The list of stereotype to display with Qualified Name |
PropStereoDisplay | SysML::Blocks::Block.isEncapsulated | List of properties to display |
StereotypePropertyLocation | Compartment | Location of Stereotype Properties |
In Brace | ||
Comment |
Property View
The profile and stereotypes applied are available under the tab “Profile” of the property view of the diagram or of the object. All the information about the display of those stereotypes is available under the “Appearance” tab.
- What information should be displayed (Text, icon, image, text and Icon)
- How the stereotypes should be aligned (Horizontal or vertical )
- Location of the stereotype information to be displayed (in a specific compartment, as a comment, or between bracket )
- The selection tree of the applied stereotypes with their properties
- Pair of buttons to display either short stereotype name, or the whole qualified name.
Architecture
Here is the general overview of the Stereotypes architecture with EAnnotation.
Here is the class diagram of the Stereotype EAnnotation concept:
Observations
Several observations can be done from this conception:
- EAnnotation is difficult to maintain, it is string based only, and a lot of classes, constants and methods are required to put EAnnotation in place.
- EAnnotation is not well designed for a CSS compatibility. It is then difficult to have a good customization.
- The user interface into the “Appearance” Tab is not clear. The two buttons to display qualified name and short name are ambiguous.
- The property view is directly in charge of creating Commands to manage the EAnnotation, instead of separated responsibilities between graphical interface, user actions, and command creations.
For those reasons, the entire Stereotype display mechanism must be improved.