Bug 512169 - [Tooling] Only entry/exit points with public visibility shall be shown on the outside of a composite state
Summary: [Tooling] Only entry/exit points with public visibility shall be shown on the...
Status: NEW
Alias: None
Product: Papyrus-rt
Classification: Modeling
Component: tool (show other bugs)
Version: 0.8.0   Edit
Hardware: PC Windows 7
: P3 normal
Target Milestone: 1.0.2   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-02-14 06:42 EST by Peter Cigehn CLA
Modified: 2017-10-17 14:35 EDT (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Peter Cigehn CLA 2017-02-14 06:42:29 EST
A mechanism for selectively displaying entry/exit points on the outside of a composite states must be introduced. The main purpose is to be able to reduce clutter and to not display entry/exit points that does not makes sense to connect on the outside, e.g. entry/exit points of local self-transitions. 

To align with legacy tooling, and the import of legacy models, this shall be controlled by visibility. Only entry/exit points with visibility=public (which in practice also means unset visibility since the default value of visibility is public) shall be displayed on the outside. Entry/exit points with visibility=protected shall not be shown on the outside.

As discussed with Bran in an off-line mail discussion, the fact that visibility is used to control this shall be hidden/abstracted away, since the semantic of visibility is more related to name-space semantics, by exposing a simple check-box with the label "Show outside". The check-box is then mapped to visibility, i.e. the checked <-> visibility=public and unchecked <-> visibility=protected.

This also means that for two of transitions cases identified in Bug 494284 Comment 0, the automatically created entry/exit points shall be created with visibility=protected to not show the entry/exit points on the outside of the composite state, i.e. case 6 (local self-transition) and case 8 (deep history transition drawn on inside that target composite state itself). If the user actually wants to connect case 8 on the outside (and not return to deep history), then the user can toggle the check-box "Show outside" to make the exit point shown, and connect it on the outside.

To summarize the scope of this bug:

* Introduce a mechanism to only show entry/exit points with visibility=public, i.e. including unset visibility, in the corresponding way as isService=true controls showing ports on capsule parts.

* Introduce a UML-RT tab in the properties view for entry and exit points with one check-box property "Show outside", the should be checked for the case when visibility=public (or unset), and be unchecked for all other cases (to include if visibility incorrectly is set to private). When the user toggles the state of this check-box it shall unset visibility when the user checks, and set visibility to protected when the user unchecks. The diagram shall automatically refresh to either show or hide the entry/exit point directly as an effect of toggling the check-box.

* The automatic creation of entry/exit points according to Bug 494284 shall by default create entry/exit points with visibility=public, i.e. visibility shall be left unset. For case 6 and 8, the created entry/exit points shall be created with visibility explicitly set to protected.
Comment 1 Charles Rivet CLA 2017-02-23 11:09:08 EST
Assigned to 1.0.1 for now. Needs discussion.
Comment 2 Ernesto Posse CLA 2017-10-17 14:35:42 EDT
Mass changing all 1.0.1 bugs to target milestone 1.0.2, because Bug 520039 depends on Bug 526168 which depends on Bug 526167 which modifies plugin MANIFEST files and therefore requires a new service version number in accordance to the guidelines at https://wiki.eclipse.org/Version_Numbering#When_to_change_the_service_segment. Hence the solution to these bugs must be merged as a new version (1.0.1) and therefore all old 1.0.1 bugs should become 1.0.2.