Skip to main content

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.

Jump to: navigation, search

Papyrus/Mars Work Description/Improvments/Stereotype support/StateOfArt

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.


Sto GUI EAnnotation.jpg

  1. What information should be displayed (Text, icon, image, text and Icon)
  2. How the stereotypes should be aligned (Horizontal or vertical )
  3. Location of the stereotype information to be displayed (in a specific compartment, as a comment, or between bracket )
  4. The selection tree of the applied stereotypes with their properties
  5. 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.

Global Macro EAnnotation.JPG

Here is the class diagram of the Stereotype EAnnotation concept:

EAnnotation Class Diagram Stereotype.JPG

Observations

Several observations can be done from this conception:

  1. 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.
  2. EAnnotation is not well designed for a CSS compatibility. It is then difficult to have a good customization.
  3. The user interface into the “Appearance” Tab is not clear. The two buttons to display qualified name and short name are ambiguous.
  4. 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.

Back to the top