eclipselabs/passerelle

Change open action for composites to separate editor instead of new tab

Closed this issue · 3 comments

In the Passerelle workbench, when double-clicking on a composite actor a new 
tab is opened in the workflow editor which contains the sub workflow. This 
works well if the same composite is not used in a different workflow and edited 
in this workflow editor as well. The problem is that there will be two 
different editors opened for the same workflow. It is also possible to open a 
composite workflow in a separate editor...

I suggest that we instead always open a sub workflow in a separate editor. The 
behaviour will then be the same, regardless from which workflow the composite 
editor has been opened, or opened from the palette.

Matthew has already implemented this behaviour in the DAWN 'fork', I have 
attached the corresponding file.

Original issue reported on code.google.com by s.olof.svensson@gmail.com on 5 Dec 2012 at 12:29

Attachments:

When you include a sub-flow in a parent workflow, Passerelle indeed puts a 
reference to the original sub-flow definition. Technically speaking this is a 
reference to a Ptolemy-based actor-oriented class, which is then instantiated 
as a sub-flow.

So when using a same reusable sub-model in different parent models, and then 
changing the definition of that sub-model, the goal is indeed to make sure that 
the change is "seen"/"used" in all these parent models.

However, Ptolemy (and thus also Passerelle) allows to "customize" submodels per 
instance as well. E.g. in Ptolemy you could change an actor parameter's value 
or even add extra actors and links etc, inside a submodel. Such changes should 
only apply to the concrete instance, i.e. should not impact other models that 
are using the same submodel. 

To make a clear distinction between :
1. changing the definition of the reusable submodel
2. customizing/overriding a concrete usage/instance in a specific parent model
I think it's better to keep the standard editor-navigation-with-tab when you 
edit a submodel inside a parent model.

If you need to edit the submodel definition itself, it's better to just make 
them visible in your project explorer and edit them in the same way as any 
"regular" model!?

Original comment by erwin...@gmail.com on 9 Dec 2012 at 1:53

  • Added labels: Type-Enhancement
  • Removed labels: Type-Defect
Thanks for these clarifications Erwin! The DAWN master now builds again so I 
could test the Passerelle composite behaviour. The composites work indeed as 
you said - I trusted your words however I needed to experiment with the 
composites in order to fully understand how they work. My feelings are a bit 
mixed with the way Passerelle deals today with composites:

* On one hand I find this really cool: one can develop 'generic' composites 
that then can be customized in different workflows.

* On the other hand I find it very confusing that opening a composite actor in 
a workflow (i.e. in a separate tab) has a completely different meaning than 
editing the composite from the pallette. When working with composites within a 
workflow it's much more natural to double-click on the composite to open and 
edit it. However, in Passerelle this automatically means making the composite 
private to the workflow in question.

I would like to suggest the following:

* There should be a special action for making a composite local to a workflow.

* Double-clicking on the composite in the workflow should by default edit the 
'global' composite unless the composite has been converted to be a 'local' 
composite.

* A 'global' composite would be edited in a separate editor, a 'local' 
composite would be edited in the workflow editor - as it's implemented today.

Original comment by s.olof.svensson@gmail.com on 11 Dec 2012 at 8:29

based on adding preferences to be able to switch

Original comment by erwin...@gmail.com on 26 Feb 2013 at 6:36

  • Changed state: Fixed