Bug 494291 - [Tooling] UML-RT Transitions should have a customized properties view
Summary: [Tooling] UML-RT Transitions should have a customized properties view
Status: CLOSED FIXED
Alias: None
Product: Papyrus-rt
Classification: Modeling
Component: tool (show other bugs)
Version: 0.7.2   Edit
Hardware: PC Windows 7
: P3 normal
Target Milestone: 0.9.0   Edit
Assignee: Young-Soo Roh CLA
QA Contact:
URL:
Whiteboard:
Keywords: test
Depends on:
Blocks:
 
Reported: 2016-05-23 07:19 EDT by Peter Cigehn CLA
Modified: 2016-12-06 10:34 EST (History)
4 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 2016-05-23 07:19:46 EDT
Transitions should have a customized properties view showing only the relevant properties for UML-RT. The most relevant properties are name, kind (external, internal, local) and triggers.

The kind property should preferably be shown as radio buttons. Each of the radio buttons (external, internal and local) should only be enabled and possible to select only when relevant, e.g. it does not make sense to change a self-transition (ether external or internal) into a local transition. It can also be questioned whether an external (non-self) transition should be possible to make into an internal transition.

The effect and guard code is best shown in the separate code snippet view, see Bug 494288.

The table with triggers should be improved to have more details for each trigger. One proposal is to make it into a table, one row for each trigger, with columns for ports, protocol message, and guard. Compare with the table added in the scope of Bug 476984.

When selecting a specific trigger in this table, the code snippet view (see Bug 494288) should be updated to show the guard code for that specific trigger.

Triggers should be possible to be created directly from this table, bringing up the trigger creation dialog as described in Bug 477811. Editing a trigger via this table should bring an edit version of the same dialog as in Bug 477811.
Comment 1 Charles Rivet CLA 2016-08-29 14:52:18 EDT
Properties observed in Papyrus-RT version 0.7.2.201608261452 seem to address this.

Please verify and determine if this can/should be closed or enhanced.
Comment 2 Peter Cigehn CLA 2016-08-30 07:34:51 EDT
(In reply to Charles Rivet from comment #1)
> Please verify and determine if this can/should be closed or enhanced.

The enhancements proposed here has not been considered. The proposed table for triggers (comparable to how it looks like in the legacy tooling) I still see. The current list of triggers only shows the name of the trigger, not any details about its ports, protocol message or guard.

So personally I would still like to see a customized UML-RT tab, with the proposed improvements, i.e. changing kind into radio buttons, changing the simple list of trigger into a propert table (similar to the parameter table for protocol messages) and the "removal" of guard and effect (or actually "move" of this information into the code snippet view according to Bug 494288 for easier viewing and editing).

So I see this Bugzilla equally applicable as when it originally was written.
Comment 3 Charles Rivet CLA 2016-08-30 09:40:23 EDT
(In reply to Peter Cigehn from comment #2)
> (In reply to Charles Rivet from comment #1)
> > Please verify and determine if this can/should be closed or enhanced.
> 
> The enhancements proposed here has not been considered. The proposed table
> for triggers (comparable to how it looks like in the legacy tooling) I still
> see. The current list of triggers only shows the name of the trigger, not
> any details about its ports, protocol message or guard.
> 
> So personally I would still like to see a customized UML-RT tab, with the
> proposed improvements, i.e. changing kind into radio buttons, changing the
> simple list of trigger into a propert table (similar to the parameter table
> for protocol messages) and the "removal" of guard and effect (or actually
> "move" of this information into the code snippet view according to Bug
> 494288 for easier viewing and editing).
> 
> So I see this Bugzilla equally applicable as when it originally was written.

Thanks Peter,

So there here is a significant UX point of view for anyone moving from legacy tooling - an important factor, as well as a usability issue.

I'm marking it as new. This is part of 0.0/MVP2 (a feature-boxed release tentatively scheduled for end of November).
Comment 4 Eclipse Genie CLA 2016-11-02 13:05:32 EDT
New Gerrit change created: https://git.eclipse.org/r/84365
Comment 7 Young-Soo Roh CLA 2016-11-21 09:54:26 EST
Fix merged but tests to be added
Comment 8 Eclipse Genie CLA 2016-11-21 15:27:55 EST
New Gerrit change created: https://git.eclipse.org/r/85433
Comment 10 Peter Cigehn CLA 2016-11-22 10:09:08 EST
I have tested this a bit in the latest Papyrus-RT build. The relevant properties, name, kind and the table trigger (with a ports, protocol message and guard column) are now included on the UML-RT tab.

There are a few issues though:

1) The enabling/disabling of the kind radio buttons is not working as expected. When creating a transition from a state inside a composite state to an exit point on the composite state, then this is an external transition. But the external radio button is disabled and the local is enabled, making it possbible to change to a local transition which does not make sense. Unfortunately there is a cut-and-paste fault in Bug 494284 Comment 0 which is clarified in Bug 494284 Comment 2 for this specific case.

2) In general it maybe should be possible to change transitions to internal transitions in several more situations (the legacy tooling supports this). Not sure how useful it is, but it should be considered.

3) Related to both issue 1) and 2). How shall we handle the enable/disable of the kind radio buttons, before we actually support that refactoring correctly? When are planning on supporting changing an external self transition into a local self transition (or an internal transition)? The radio button is enabled, but these cases does not really work as expected. I have a feeling that it might be better to disable the toggling of the kind radio buttons, until we actually have tested and implemented the toggling in a correct way. This about which refactoring cases to support was also brought up in Bug 506808.

4) As already discussed in the Gerrit change, we should not have the guard and effect fields on the UML-RT tab (at least not in its current form). When we have the code snippet view in place, Bug 494288, I expect the effect and guard code for the transition to be edited using the code snippet view. We need to track the removal of these fields when we have a the code snippet view in place. I suggest that we write a separate bug for this.

Before putting this one into verified, or reopening it, I would like to understand what strategy we should have regarding the enabling/disabling of kind radio buttons. If we do not intend to fix all the different toggling scenarios, then I suggest that we simply disable them in the scope of this bug and track the introduction of toggling/refactoring in separate bug(s).
Comment 11 Young-Soo Roh CLA 2016-11-22 13:13:52 EST
See comments inline.

(In reply to Peter Cigehn from comment #10)
> I have tested this a bit in the latest Papyrus-RT build. The relevant
> properties, name, kind and the table trigger (with a ports, protocol message
> and guard column) are now included on the UML-RT tab.
> 
> There are a few issues though:
> 
> 1) The enabling/disabling of the kind radio buttons is not working as
> expected. When creating a transition from a state inside a composite state
> to an exit point on the composite state, then this is an external
> transition. But the external radio button is disabled and the local is
> enabled, making it possbible to change to a local transition which does not
> make sense. Unfortunately there is a cut-and-paste fault in Bug 494284
> Comment 0 which is clarified in Bug 494284 Comment 2 for this specific case.

This is bug and will put new gerrit once https://git.eclipse.org/r/#/c/85519/ is merged. Then we should not have inconsistency between core and tooling.

> 
> 2) In general it maybe should be possible to change transitions to internal
> transitions in several more situations (the legacy tooling supports this).
> Not sure how useful it is, but it should be considered.
> 

Agree to disable switch to internal transition until this is supported.

> 3) Related to both issue 1) and 2). How shall we handle the enable/disable
> of the kind radio buttons, before we actually support that refactoring
> correctly? When are planning on supporting changing an external self
> transition into a local self transition (or an internal transition)? The
> radio button is enabled, but these cases does not really work as expected. I
> have a feeling that it might be better to disable the toggling of the kind
> radio buttons, until we actually have tested and implemented the toggling in
> a correct way. This about which refactoring cases to support was also
> brought up in Bug 506808.
> 

Once internal transition is disabled then switching to other kind should not be possible after update.

> 4) As already discussed in the Gerrit change, we should not have the guard
> and effect fields on the UML-RT tab (at least not in its current form). When
> we have the code snippet view in place, Bug 494288, I expect the effect and
> guard code for the transition to be edited using the code snippet view. We
> need to track the removal of these fields when we have a the code snippet
> view in place. I suggest that we write a separate bug for this.
> 

Sure.

> Before putting this one into verified, or reopening it, I would like to
> understand what strategy we should have regarding the enabling/disabling of
> kind radio buttons. If we do not intend to fix all the different toggling
> scenarios, then I suggest that we simply disable them in the scope of this
> bug and track the introduction of toggling/refactoring in separate bug(s).
Comment 12 Peter Cigehn CLA 2016-11-23 03:49:00 EST
(In reply to Peter Cigehn from comment #10)
> 4) As already discussed in the Gerrit change, we should not have the guard
> and effect fields on the UML-RT tab (at least not in its current form). When
> we have the code snippet view in place, Bug 494288, I expect the effect and
> guard code for the transition to be edited using the code snippet view. We
> need to track the removal of these fields when we have a the code snippet
> view in place. I suggest that we write a separate bug for this.

I wrote Bug 507965 to track this aspect.
Comment 13 Eclipse Genie CLA 2016-11-23 10:10:20 EST
New Gerrit change created: https://git.eclipse.org/r/85593
Comment 15 Peter Cigehn CLA 2016-12-06 07:02:45 EST
I have tested this in the latest Papyrus-RT build and the updated behavior of the kind radio button, where only the selected radio button is enabled (and the others are disabled), is in the short term the most reasonable. Still there are some issues that the wrong kind is created from the beginning, but that should hopefully be covered by Bug 494284 (since there still are some issues left even when Bug 506810 was resolved, see Bug 506810 Comment 10). So I assume that whenever Bug 494284 have been resolved for all the cases of transitions are covered, then the correct kind will also be assigned already at creation, which leaves the behavior in the properties with not allowing to change the kind good for now. I will write a separate bug for the "refactoring" support to toggle the kind of transition, e.g. changing a local self-transition to an external and vice versa among. 

The aspect with the effect and guard fields are already tracked by Bug 507965.

With that, the reduced scope of this bug can be considered verified. I put this one into verified fixed.
Comment 16 Peter Cigehn CLA 2016-12-06 07:04:00 EST
Closing as verified fixed.
Comment 17 Peter Cigehn CLA 2016-12-06 10:34:14 EST
(In reply to Peter Cigehn from comment #15)
> I will write a separate
> bug for the "refactoring" support to toggle the kind of transition, e.g.
> changing a local self-transition to an external and vice versa among. 
> 

I wrote Bug 508754 regarding the support for toggling transition kind.