Implement a tree description to customize the explorer view
Specification Customization Explorer
Table of Contents
Some rules are to be applied and contributed, while others are only to be demonstrated during a presentation.
Definition of the Tree to Contribute in Papyrus
The structure, labels, and icons of the tree will follow the rules described in the "Edit" part of UML, with the following exceptions.
Elements to Hide
The following elements should not be displayed:
- Stereotype application
- EAnnotation
Label Customization
Stereotypes applied to UML elements must be displayed using quotes (« »).
Label Style Customization
Read only
Read-only elements should be displayed in gray.
The concept of read-only is not clearly defined in Papyrus Web. For now, we have decided that all elements contained in a resource using the pathmap protocol (i.e., all external elements to the project) should be considered read-only:
- Standard libraries
- Profiles (static and dynamic)
Abstract
All elements with a property named "abstract" of type boolean, containing the value true, must be displayed in italics.
Static
All elements with a property named "static" of type boolean, containing the value true, must be underlined.
Stereotype
The name of stereotypes applied to an element should be displayed in gray (choose a different gray than for the Read Only mode).
Tree Structure Modification
PackageImport and ElementImport elements must add, in addition to existing children, the imported element to allow its containment tree to be expanded (following the tree rules described in this document).
Overlay
It is worth noting that the current version of Papyrus Web already displays overlays to indicate when element visibility is not public.
This feature must continue to work in the new tree.
Demonstration Tree Definition
This tree will not be contributed to Papyrus Web, it is only used to demonstrate the customization capabilities of the Explorer section.
Overlay
Properties without a type must display an overlay.
Virtual Node
In a Structured Classifier, elements in the ownedAttribute property must be grouped by their type (Property#getType()).
Elements without a type will be grouped in another virtual node.

