Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Papyrus/Mars Work Description/Improvments/Stereotype support"

(Property View)
(Commit and Reviews)
 
(146 intermediate revisions by the same user not shown)
Line 1: Line 1:
==Enhancement of the support for the stereotypes in Papyrus ==
+
=Enhancement of the support for the stereotypes in Papyrus =
  
 
This page presents the improvments that will be pushed in the Mars version of Papyrus regarding the stereotypes support in the tool.
 
This page presents the improvments that will be pushed in the Mars version of Papyrus regarding the stereotypes support in the tool.
Line 10: Line 10:
 
*The third point is the user interface to display the Stereotype that doesn’t fulfil the user expectation in terms of intuitiveness.  
 
*The third point is the user interface to display the Stereotype that doesn’t fulfil the user expectation in terms of intuitiveness.  
  
== State of art ==
 
  
=== Concepts in place ===
+
==[https://wiki.eclipse.org/Papyrus/Mars_Work_Description/Improvments/Stereotype_support/StateOfArt State of Art]==
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 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:
+
 
+
{| class="wikitable"
+
!colspan="1"| KEY (String)
+
!colspan="1"| VALUE (String)
+
!colspan="1"| Description
+
|-
+
|rowspan="5"|Stereotype_Presentation_Kind
+
|TextIconStereotype
+
|rowspan="5"|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
+
|-
+
|rowspan="3"|StereotypePropertyLocation
+
|Compartment
+
|rowspan="3"|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.
+
 
+
 
+
[[File:Sto GUI EAnnotation.jpg|860px]]
+
 
+
# 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.
+
 
+
[[File:Global Macro EAnnotation.JPG|1024px]]
+
 
+
Here is the class diagram of the Stereotype EAnnotation concept:
+
 
+
[[File:EAnnotation Class Diagram Stereotype.JPG|1024px]]
+
 
+
=== 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.
+
  
 
== Requirements ( Draft ) ==
 
== Requirements ( Draft ) ==
Line 116: Line 22:
 
|STO_01 || Default display||The stereotypes are display by default (during the creation, when DnD, when applied).
 
|STO_01 || Default display||The stereotypes are display by default (during the creation, when DnD, when applied).
 
|-
 
|-
|STO_02 || New Stereotype ||The stereotypes displayed should be automatically updated when applied stereotypes list changes.
+
|STO_02 || New Stereotype ||The stereotypes displayed should be automatically updated when applied stereotypes list changes or property value changes.
 
|-
 
|-
 
|STO_03 || Qualified Name ||Each Stereotype can be either displayed with a short name or with the Qualified Name.
 
|STO_03 || Qualified Name ||Each Stereotype can be either displayed with a short name or with the Qualified Name.
Line 122: Line 28:
 
|STO_04 || Qualified Name ||The displayed qualified name depth can be defined for each stereotype.
 
|STO_04 || Qualified Name ||The displayed qualified name depth can be defined for each stereotype.
 
|-
 
|-
|STO_05 || Location ||Properties can be either displayed in a compartment, in a comment, or between braces.
+
|STO_05 || Location ||Properties can be displayed in a compartment, in a comment and/or between braces.
 
|-
 
|-
 
|STO_06 || Location ||The user should be able to choose the location of each stereotype's property (In compartment, in braces, as a comment).
 
|STO_06 || Location ||The user should be able to choose the location of each stereotype's property (In compartment, in braces, as a comment).
Line 131: Line 37:
 
|-
 
|-
 
|STO_09 || CSS || A CSS file can be added for each Stereotype to manage its display.
 
|STO_09 || CSS || A CSS file can be added for each Stereotype to manage its display.
 +
|-
 +
|STO_10 || Qualified Name || The user must be able to chose the depth of the QN to be displayed
 +
|-
 +
|STO_11 || Qualified Name || The user should be able to chose if the Qualified Name depth is calculated automatically.
 +
|-
 +
|STO_12 || Qualified Name || The user should be able to chose if the Qualified Name is fully displayed or not at all.
 +
|-
 +
|STO_14 || UML || When update stereotype Application through the UML view, the Diagrams must be updated accordingly.
 +
|-
 +
|STO_15 || UML || When a profile is modified (I:e: Add a property), the stereotype display must be updated accordingly.
 +
|-
 +
|STO_16 || Profile Application|| Stereotype display must be updated when a new profile is applied.
 
|-
 
|-
 
|}
 
|}
  
 +
== [https://wiki.eclipse.org/Papyrus/Mars_Work_Description/Improvments/Stereotype_support/Solutions Solutions]==
 +
 +
== [https://wiki.eclipse.org/index.php?title=Papyrus/Mars_Work_Description/Improvments/Stereotype_support/Solution_Implementation Solution Implementation and Intermediate Objectives] ==
 +
 +
==[https://wiki.eclipse.org/index.php?title=Papyrus/Mars_Work_Description/Improvments/Stereotype_support/task_bugs Tasks and Bugs] ==
 +
 +
== Commit and Reviews ==
 +
* Change 1 : [https://git.eclipse.org/r/#/c/41903 41903]
 +
** Reviewed Internally: <span style="color: green;"> Done</span>
 +
** Merged with Sub-Branch: <span style="color: green;"> Done </span>
 +
** Reviewed Externally: None
 +
** Merged with Master: None
 +
 +
* Change 2 : [https://git.eclipse.org/r/#/c/42108 42108]
 +
** Reviewed Internally: <span style="color: green;"> Done</span>
 +
** Merged with Sub-Branch: <span style="color: green;"> Done </span>
 +
** Reviewed Externally: None
 +
** Merged with Master: None
 +
 +
* Change 3 : [https://git.eclipse.org/r/#/c/43177 43177]
 +
** Reviewed Internally: <span style="color: green;"> Done</span>
 +
** Merged with Sub-Branch: <span style="color: green;"> Done </span>
 +
** Reviewed Externally: None
 +
** Merged with Master: None
 +
 +
* Change 4 : [https://git.eclipse.org/r/#/c/43940 43940]
 +
** Reviewed Internally: <span style="color: green;"> Done</span>
 +
** Merged with Sub-Branch: <span style="color: green;"> Done</span>
 +
** Reviewed Externally: None
 +
** Merged with Master: None
  
== Solutions ==
+
* Change 5 : [https://git.eclipse.org/r/#/c/44382 44382]
 +
** Reviewed Internally: <span style="color: green;"> Done</span>
 +
** Merged with Sub-Branch: <span style="color: green;"> Done</span>
 +
** Reviewed Externally: None
 +
** Merged with Master: None
  
=== Named Styles ===
+
* Change 6 : [https://git.eclipse.org/r/#/c/45134 45134]
to be edited
+
** Reviewed Internally: <span style="color: green;"> Done</span>
=== Label for Each Stereotype ===
+
** Merged with Sub-Branch: <span style="color: green;"> Done</span>
to be edited
+
** Reviewed Externally: None
 +
** Merged with Master: None
  
== Tasks and bugs==
+
* Change 7 : [https://git.eclipse.org/r/#/c/45228 45228]
===Bugzilla===
+
** Reviewed Internally: <span style="color: green;"> Done</span>
 +
** Merged with Sub-Branch: <span style="color: green;"> Done</span>
 +
** Reviewed Externally: None
 +
** Merged with Master: None
  
The bugzilla items tracking progress of this improvments are:
+
* Change 8 : [https://git.eclipse.org/r/#/c/45228 45968]
* [https://bugs.eclipse.org/bugs/show_bug.cgi?id=457024 Bug 457024]
+
** Reviewed Internally: <span style="color: orange;"> In Progress</span>
 +
** Merged with Sub-Branch: <span style="color: red;"> not done</span>
 +
** Reviewed Externally: None
 +
** Merged with Master: None

Latest revision as of 11:10, 17 April 2015

Enhancement of the support for the stereotypes in Papyrus

This page presents the improvments that will be pushed in the Mars version of Papyrus regarding the stereotypes support in the tool.

Introduction

The starting point of this study is due to concomitant issues around the stereotype display:

  • The first whished improvement is to display the stereotypes when dragged and dropped from the model explorer.
  • The second whish would be to use the Named Styles instead of EAnnotation in order to be aligned with the Papyrus point of view and be based on GMF layer.
  • The third point is the user interface to display the Stereotype that doesn’t fulfil the user expectation in terms of intuitiveness.


State of Art

Requirements ( Draft )

Req ID Category Description
STO_01 Default display The stereotypes are display by default (during the creation, when DnD, when applied).
STO_02 New Stereotype The stereotypes displayed should be automatically updated when applied stereotypes list changes or property value changes.
STO_03 Qualified Name Each Stereotype can be either displayed with a short name or with the Qualified Name.
STO_04 Qualified Name The displayed qualified name depth can be defined for each stereotype.
STO_05 Location Properties can be displayed in a compartment, in a comment and/or between braces.
STO_06 Location The user should be able to choose the location of each stereotype's property (In compartment, in braces, as a comment).
STO_07 Hide Each stereotype and property can be displayed or hidden independantly.
STO_08 CSS Visibility, qualified name depth and location can be defined by CSS.
STO_09 CSS A CSS file can be added for each Stereotype to manage its display.
STO_10 Qualified Name The user must be able to chose the depth of the QN to be displayed
STO_11 Qualified Name The user should be able to chose if the Qualified Name depth is calculated automatically.
STO_12 Qualified Name The user should be able to chose if the Qualified Name is fully displayed or not at all.
STO_14 UML When update stereotype Application through the UML view, the Diagrams must be updated accordingly.
STO_15 UML When a profile is modified (I:e: Add a property), the stereotype display must be updated accordingly.
STO_16 Profile Application Stereotype display must be updated when a new profile is applied.

Solutions

Solution Implementation and Intermediate Objectives

Tasks and Bugs

Commit and Reviews

  • Change 1 : 41903
    • Reviewed Internally: Done
    • Merged with Sub-Branch: Done
    • Reviewed Externally: None
    • Merged with Master: None
  • Change 2 : 42108
    • Reviewed Internally: Done
    • Merged with Sub-Branch: Done
    • Reviewed Externally: None
    • Merged with Master: None
  • Change 3 : 43177
    • Reviewed Internally: Done
    • Merged with Sub-Branch: Done
    • Reviewed Externally: None
    • Merged with Master: None
  • Change 4 : 43940
    • Reviewed Internally: Done
    • Merged with Sub-Branch: Done
    • Reviewed Externally: None
    • Merged with Master: None
  • Change 5 : 44382
    • Reviewed Internally: Done
    • Merged with Sub-Branch: Done
    • Reviewed Externally: None
    • Merged with Master: None
  • Change 6 : 45134
    • Reviewed Internally: Done
    • Merged with Sub-Branch: Done
    • Reviewed Externally: None
    • Merged with Master: None
  • Change 7 : 45228
    • Reviewed Internally: Done
    • Merged with Sub-Branch: Done
    • Reviewed Externally: None
    • Merged with Master: None
  • Change 8 : 45968
    • Reviewed Internally: In Progress
    • Merged with Sub-Branch: not done
    • Reviewed Externally: None
    • Merged with Master: None

Back to the top