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.
Difference between revisions of "Papyrus/Papyrus User Guide"
(→Papyrus Zoo of UML Models) |
(→Create a Papyrus Package diagram from a EMF ECore UML model) |
||
Line 311: | Line 311: | ||
Ensure that the filter for the additional resources is not checked on your model explorer view : [[Image:PapyrusFilterAdditionalResources.PNG]] | Ensure that the filter for the additional resources is not checked on your model explorer view : [[Image:PapyrusFilterAdditionalResources.PNG]] | ||
− | |||
− | |||
− | |||
====Table Documentation==== | ====Table Documentation==== |
Revision as of 09:37, 7 April 2016
Contents
- 1 Using modeling editors
- 1.1 UML modeling
- 1.1.1 Getting Started
- 1.1.2 Tutorials on UML modeling with Papyrus
- 1.1.3 Papyrus stereotype display
- 1.1.3.1 Display applied stereotype name
- 1.1.3.2 Display stereotype properties
- 1.1.3.3 As "brace"
- 1.1.3.4 As "compartment"
- 1.1.3.5 As "Comment"
- 1.1.3.6 Choose properties to display
- 1.1.3.7 Choose QN depth
- 1.1.3.8 Remove display of stereotype properties
- 1.1.3.9 Update the display of applied stereotype properties
- 1.1.3.10 Table Documentation
- 1.1.4 Constraints in Papyrus
- 1.1.5 Working with Profiles
- 1.2 SysML Modeling
- 1.3 MARTE Modeling
- 1.4 fUML and Alf Modeling
- 1.1 UML modeling
- 2 Developing custom DSL based editor with Papyrus
- 3 Additional Utilities of Papyrus
- 4 General Feature
- 5 Embedded Editors
- 6 Property View
Using modeling editors
UML modeling
Getting Started
Papyrus Perspective
The Papyrus perspective contains :
- Model Explorer view
- Outline view
- Multi diagram editor view
- Properties view
- Toolbar
Model Explorer View
The model explorer is used to navigate to the all model's elements and the diagrams.
This action link the model explorer with the active diagram selection. This action works bidirectionally.
This action allow to add new semantic element.
This action allow to add new diagram in current selection.
All actions are available on diagram item.
The model explorer used Common Navigator Framework and provide facilities to customize view.
To customize the content of treeViewer:
To filter the content of treeViewer:
Outline View
The Outline offers a thumbnail of the graphical representation and the list of semantic elements used in current diagram.
Tutorials on UML modeling with Papyrus
Model/Diagram creation wizard
Create a new Model.
Choose the model file name and the first diagram to create.
Create a diagram from an existing uml file
From your uml file, select the "Initialize Papyrus diagram" to access the creation wizard of Papyrus. Your Papyrus diagram will be linked with your existing model.
Papyrus stereotype display
Display applied stereotype name
Display applied stereotype name
- traces to Apply a stereotype, Drop from the model explorer, Display the name of the stereotype , Display each applied stereotype name differently, Display stereotype name
The diagram contains a shape. When you applied a stereotype on the element, the applied stereotype name is displayed on the shape below the name of the element.
When an element is dropped form the model explorer to the diagram, the applied stereotype named is displayed on the shape.
This is the same behavior for links.
How to
Inside papyrus, it is possible to display the name of applied stereotype. To do that:
1. Apply the profile that contains the stereotype on your model. 2. Apply the wanted stereotype on the element.
Apply a profile
Apply the stereotype
Resulted applied stereotype
Display stereotype properties
Display stereotype properties
- traces to Stereotype application properties dipslay
It is possible to display properties of stereotypes as "comment", as "compartment", as "brace"
As "brace"
As "brace"
- traces to Display Requirement as a "brace"
Properties of applied stereotype can be displayed as "brace". This is label that is set below the name, and contains a sequence of properties name with their values.
How to
To do that:
1. Select your Element 2. Select the Appearance Tab in the property view 3. Select "In braces" for the line of your applied stereotype
Sequence of actions to display in brace
Properties of stereotypes displayed in brace
As "compartment"
As "compartment"
- traces to Display Requirement as a "compartment"
Properties of applied stereotype can be displayed as a compartment. This compartment contains all labels that are properties of the applied stereotype.
How to
To do that:
1. Select your Element 2. Select the Appearance Tab in the property view 3. Select "In Compartment" for the line of your applied stereotype
Sequence of actions to display in compartment
Properties of stereotypes displayed in compartment
As "Comment"
As "Comment"
- traces to Display Requirement as a "comment"
Properties of applied stereotype can be displayed as a comment. This comment representation that contains all labels that are properties of the applied stereotype.
To do that:
1. Select your Element 2. Select the Appearance Tab in the property view 3. Select "In Comment" for the line of your applied stereotype
Sequence of actions to display in comment
Properties of stereotype displayed in comment
Choose properties to display
Choose properties to display
- traces to Use CSS file, Use property view, Choice on Stereotype properties to display
The list of properties of stereotypes can be chosen by the user by using the property view or by writing a css.
This choice runs for the 3 representations of applied stereotypes: brace, compartment, comment.
How to
By using the property view, it is possible to select the list of property of stereotype. To do that:
1. Select your element. 2. Check that the applied stereotype has been displayed as brace, compartment or comment 3. Select lines that correspond to wanted properties of stereotype.
Select properties by using the property view
By using CSS file:
Compartment[type=StereotypeCompartment]{ visible:true; } Compartment[type=StereotypeCompartment]>[property="derived"]{ visible:false; } Compartment[type=StereotypeCompartment]>[property="derivedFrom"]{ visible:false; }
The compartment is displayed and the property derived and derivedFrom are not displayed
Result by using the selection by CSS
The following CSS rules are implemented by default for all the Diagrams:
Shape[type=StereotypeComment]{ visible:false; } StereotypeComment Compartment[type=StereotypeBrace]{ visible:false; } Compartment[type=StereotypeCompartment]{ visible:false; } Compartment[type=StereotypeBrace]{ visible:false; } Label[type=StereotypeLabel]{ depth:"none"; } Here is some example of CSS to display the Stereotype: /* To modify the depth */ Label[type=StereotypeLabel]{ depth:"-1"; } /* To make the properties visible into compartment */ Compartment[type=StereotypeCompartment]{ visible:true; } /* Hide the property "allocatedTo" into the compartment */ Compartment[type=StereotypeCompartment]>[property="allocatedTo"]{ visible:false; } /* Hide all the properties into the Compartment of the stereotype Block */ Compartment[stereotype="SysML::Blocks::Block"]{ visible:false; } /* Display the Comment shape */ StereotypeComment{ visible:true; } /* Display the properties in Brace into the Comment*/ StereotypeComment Compartment[type=StereotypeBrace]{ visible:true; }
Choose QN depth
Choose QN depth
- traces to Qualified name depth
The stereotype name can be displayed by choosing the depth. I consists on choosing the size of the qualified name of the stereotype.
full = all the qualified name
0= only the name of stereotype
-1= the name of its parent + the name of the stereotype
-2=the name of its great-parent+ the name of its parent + the name of the stereotype
Using Css:
Label[type=StereotypeLabel]{ depth:"-1"; }
By using the property view:
1. Select the element. 2. Select the appearance Tab 3. Select the name depth and choose the size
Select the depth the applied stereotype name
Remove display of stereotype properties
Remove display of stereotype properties
- traces to Remove display of applied stereotype
The display of stereotype can be removed by selection or by unapply stereotype or profile container
Update the display of applied stereotype properties
Update the display of applied stereotype properties
- traces to Update display
When the value associated to the property of stereotype has been modified, the display must be modified.
It is possible to edit value of stereotype property by double click on the property in the diagram.
Important: the property must be writable and Real are not yet editable.
Property of applied stereotype edition
How to
It is possible to edit property of applied stereotype by using the property view:
1. Select your element 2. Select the Profile tab 3. Expand the stereotype 4. Select the property 5. Edit at right the property of the stereotype
Property edition for applied stereotypes in the property view
Load an additionnal resource
Show additional resources in your model explorer view
Ensure that the filter for the additional resources is not checked on your model explorer view :
Table Documentation
See http://wiki.eclipse.org/Papyrus_User_Guide/Table_Documentation
Constraints in Papyrus
Create and edit constraints
Validate OCL Constraints of a Profile
Working with Profiles
Externalized Profile Applications
Managing profile applications separately from the applying models
SysML Modeling
Tutorials on SysML modeling with Papyrus
Papyrus Zoo of SysML Models
MARTE Modeling
Tutorials on MARTE modeling with Papyrus
Papyrus Zoo of MARTE Models
fUML and Alf Modeling
Using fUML and Alf to produce executable models
Developing custom DSL based editor with Papyrus
UML Profile Modeling
MetaModel Modeling
Additional Editor Integration (this section is for the Backone)
Diagram Editors Customizations
Specific Diagram Editors Creation
Diagram Editor Palette Customization
Here you can find the documentation describing palette customization: Doc
This document can also be found in Papyrus help section => User Guide => Palette customization
Property Editor Customization
Model Explorer Customization
Diagram Appearance Customization with CSS Stylesheets
Additional Utilities of Papyrus
Collaborative Work Support
Layer Support
See Layers Guide
Model Execution
Execute your fUML models with MOKA
Automatic Layout Support
Code Generation Support
Existing Code Generation Facilities
Currently, Papyrus supports code generation for the following programming languages:
Upcoming Code Generation Facilities
Papyrus is going to support code generation for the following programming languages, which are in the experimental phase now, soon:
- ADA code generation
- C code generation
Adding a New Code Generator
Apart from the aforementioned programming language, it is also possible to develop and integrate other code generators to Papyrus. To learn about how to add a new code generator to Papyrus, refer to the following wikipage.
Reverse Engineering
Java Reverse Engineering
Documentation Support
Documentation Modelling
Documentation Generation
Deploy your applications
Fragment a Model
See Submodel Guide
General Feature
Editors
Palette
The palette is available with any diagrams. But its content depends on the diagrams type.
The standard palette ( the top container of the palette in red in the here-after capture) contents a standard selection tool (the white arrow), a zoom in and zoom out tool, and marquee selection tools.
The standard palette is available for every diagram.
Properties
See Properties
Standard Selection tool
Zoom Tools
See Zoom Tools
Marquee Selection Tools
Toolbars
Papyrus has its own set of Toolbars. A Toolbar regroups a set of tools belonging to the same kind of activity.
The different Toolbars can be shown or hide depending on the perspectives.
The toolbars visibility can be customized from the menu Windows/Customize Perspectives.
Alignment
See Alignment
Text alignment
See Text alignment
--Céline Janssens [ALL4TEC] (talk) 12:06, 28 August 2014 (EDT)
Embedded Editors
Papyrus provides embedded editors to edit UML Elements. Of course these editors allows to edit the name of the elements, but they allow to edit much more than this.
UML ValueSpecification editor
This editor allows to edit UMLValueSpecification. ValueSpecifications are used to define the default value of a Property or to define the multiplicity of a MultiplicityElement (lower and upper values). Papyrus provides an Xtext Editor for UML ValueSpecification. This editor provides completion (CTRL+SPACE) to help the user to define the value to set crossing easily the model.
You can use this editors in Papyrus table or in papyrus Property View for example.
The developer documentation for this editors is available here.
Usage
The default grammar of the XText parser for the Value Specification is the following:
(visibility)? (name'=')? value
The values accepted for the differents attributes are the following:
Attribute | Required | Values accepted |
---|---|---|
visibility | No |
|
name | No | String representing an ID (i.e. XText grammar: '^'?('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')* )
|
value | Yes |
|
If the text filled is not compatible with the grammar of XText parser, an OpaqueExpression
will be created.
The XText parser for Value Specification is not restrictive with the text filled, i.e. the different features setted on an existing Value Specification will be kept if possible.
For example: If an existing Value Specification is a LiteralBoolean
named 'testBoolean' with the visibility 'public' and the value setted to true
, the text +testBoolean=false
and false
have the same result: the value of LiteralBoolean
existing will pass to false
(the name and the visilibity don't change).
The XText parser reacts differently instead of the type of the Value Specification's container:
Example: Without defined type on Value Specification's container
If the type of Value Specification's container is not defined, the default behaviour will be applied.
Here, some examples:
Text filled | Namely | Created ValueSpecification | |||
---|---|---|---|---|---|
Type | Visibility | Name | Value | ||
+testInstanceValue=InstanceSpec1 | 'InstanceSpec1' is an InstanceSpecification existing in the model
|
InstanceValue
|
public | testInstanceValue | 'instance' attribute of InstanceValue is a reference to the existing InstanceSpecification named 'InstanceSpec1'
|
No InstanceSpecification exist in the model
|
OpaqueExpression
|
public | +testInstanceValue=InstanceSpec1 | ||
+testBoolean=true | LiteralBoolean
|
public | testBoolean | true
| |
#testUnlimitedNatural=5 | LiteralUnlimitedNatural
|
protected | testUnlimitedNatural | 5 | |
~testInteger=-8 | LiteralInteger
|
package | testInteger | -8 | |
-testReal=12.34 | LiteralReal
|
private | testReal | 12.34 | |
~testNull=null | LiteralNull
|
package | testNull | null
| |
-testString="foo" | LiteralString
|
private | testString | foo | |
##testString="foo" | OpaqueExpression
|
public | ##testString="foo" |
Example: With defined type on Value Specification's container
If the type of Value Specification's container is setted, the same text filled will be have different behaviour depending to the type. In fact, the value filled must be consistent to the type, otherwise an OpaqueExpression
will be created.
The different types corresponding to LiteralSpecification
are the following:
LiteralSpecification | Types corresponding |
---|---|
LiteralBoolean
|
|
LiteralUnlimitedNatural
|
|
LiteralInteger
|
|
LiteralReal
|
|
LiteralString
|
|
Here, some examples:
Text filled | Value Specification's container type | Created ValueSpecification | |||
---|---|---|---|---|---|
Type | Visibility | Name | Value | ||
+testBoolean=true | PrimitiveTypes::Boolean | LiteralBoolean
|
public | testBoolean | true
|
PrimitiveTypes::Integer | OpaqueExpression
|
public | +testBoolean=true | ||
-testUnlimitedNatural=8 | PrimitiveTypes::UnlimitedNatural | LiteralUnlimitedNatural
|
private | testUnlimitedNatural | 8 |
PrimitiveTypes::Integer | LiteralInteger
|
private | testUnlimitedNatural | 8 | |
PrimitiveTypes::Real | LiteralReal
|
private | testUnlimitedNatural | 8.0 | |
PrimitiveTypes::Boolean | OpaqueExpression
|
public | -testUnlimitedNatural=8 | ||
#testInteger=-6 | PrimitiveTypes::UnlimitedNatural | OpaqueExpression
|
public | #testInteger=6 | |
PrimitiveTypes::Integer | LiteralInteger
|
protected | testInteger | 6 | |
PrimitiveTypes::Real | LiteralReal
|
protected | testInteger | 6.0 | |
PrimitiveTypes::Boolean | OpaqueExpression
|
public | #testInteger=6 | ||
-testReal=4.5 | PrimitiveTypes::Integer | OpaqueExpression
|
public | -testReal=4.5 | |
PrimitiveTypes::Real | LiteralReal
|
private | testReal | 4.5 |
Textual Editor For Named Element
Since Papyrus 1.1.0 (Eclipse Mars), Papyrus provides a new texutal editor to edit references to UML NamedElement. This editor works only for references which are not in containment. This editor has not been developed using XText. It use a custom string parser and provide a completion (CTRL+SPACE) to help the user to find the named elements to reference in the model.
You can use this editor in Property View or in Papyrus table for example. Developer documentation is available here.
Usage
- This editors allows to find named element typing its name.
- In case of several elements to found, the separator to use is the comma </code>'</code>
- If the name of the element contains a comma, you should prefix and suffix its name by a quote
'
. - The value will not be set if the element can't be found is the model
Example
If you have 3 Classes in your model, named Class1
, Class2
and Clas,s3
.
typed text | completion proposal | explanation |
---|---|---|
empty string | <Undefined>, ... | we look for nothing, so we provide the <Undefined> value and ... to ask to the user to write more text
|
Clas | <Undefined>,Class1,Class2,Clas,s3 | 3 classes matches the string, <Undefined> is always proposed
|
Class | <Undefined>,Class1,Class2 | 3 classes matches the string, <Undefined>is always proposed |
'Clas | <Undefined>, Clas,s3 | the string starts with a quote and Clas,s3 contains a comma, so we propose Clas,s3 ; <Undefined> is always proposed
|
Clas, | <Undefined>,... | interpreted as a list of value, the first value is </code>Clas</code>, and we have no information for the second one, for the completion it is an empty string |
Property View
Appearence Tab
Shape Customization
To be defined
Stereotype Display
See Stereotype Display via Property View
Multiplicity Editor
Description
The multiplicity editor contains two modes of edition:
- The simple mode which allows to edit the lower and the upper values from a unique editor
- The advanced mode which allows to edit the lower and the upper values from two editors of ValueSpecification.
Usage
Simple mode
The simple mode is represented as the following:
This editor must be filled by the following pattern:
Value filled | Lower value | Upper value |
---|---|---|
1 | null (default value is 1)
|
null (default value is 1)
|
x..y | LiteralInteger with value x
|
LiteralUnlimitedNatural with value y
|
x..* | LiteralInteger with value x
|
LiteralUnlimitedNatural with value -1 (interpreted as * )
|
x | LiteralInteger with value x
|
LiteralUnlimitedNatural with value x
|
The values set as lower and upper are always positive (except the *
for the upper which is valued as -1).
This editor is usable only when the lower ValueSpecification is a LiteralInteger
or null
and when the upper ValueSpecification is a LiteralUnlimitedNatural
or null
.
On the other hand, this editor will be displayed like the following:
Advanced mode
Simple ValueSpecification editor
The advanced mode with simple ValueSpecificatiton editors is represented as the following:
The lower and the upper ValueSpecification can be created/edited/deleted by the buttons:
XText ValueSpecification editor
The advanced mode with XText ValueSpecification editors is represented as the following:
This editor use the XText ValueSpecification editors (explain here) with some specificities depending on lower or upper value edition.
The specificity of the lower ValueSpecification edition is when the value filled is an integer, this one will be handled as LiteralInteger
instead of LiteralUnlimitedNatural
or LiteralInteger
(the *
value will create an OpaqueExpression
).
The specificity of the upper ValueSpecification edition is when the value filled is an integer or *
:
- if the integer is positive or -1, a
LiteralUnlimitedNatural
will be created - if the integer is negative, an
OpaqueExpression
will be created instead ofLiteralInteger
Switch modes
This is possible to switch between the two modes by two ways:
- The button in the multiplicity editor:
- The multiplicity editor preferences in the property views preferences:
Regarless of the way used to switch modes, the mode used is saved in the preferences and will be used for each multiplicity in Papyrus.