eclipse-sirius / sirius-web

Sirius Web: open-source low-code platform to define custom web applications supporting your specific visual languages
https://eclipse.dev/sirius/sirius-web.html
Eclipse Public License 2.0
79 stars 52 forks source link

Issue with relation based edge on sirius-web #1822

Open mt-empty opened 3 years ago

mt-empty commented 3 years ago

In my EMF I have a relation A----->B. In my odesign I specified(in edge creation tool) that users can connect A and B using a relational edge regardless of the order. Users can click first on A and then connect it to B or they can click first on B and then connect it to A and in both cases the same relation will be created. This works fine on Sirius desktop, but doesn't work at all on Sirius-web because the edge connection symbol doesn't show up in the palette(edit: it shows up for A and I can establish a relational edge but it doesn't show up for B) . Either my odesing is incorrect, or Sirius-web currently doesn't support this(current limitation).

I know that Sirius-web is in beta, I have come across issues just like this one where the issues feels like a current limitations rather than a bug and I'm not sure if I should be reporting them?

pcdavid commented 3 years ago

Hi. This is supposed to work, but actually in the Flow Designer we tend to use for testing I think there is no relation-based edge. It's possible something broke and we did not notice. I'll check and come back to you.

pcdavid commented 3 years ago

I just checked on a basic example, and both rendering and creation of relation-based edges seem to work.

In the screenshot below, on the right I have Sirius Desktop in which I created a very simple Ecore-based "modeler" which displays super-classes relations between EClasses, and a simple Edge Creation tool which creates such a new relation.

On the left I have the exact same odesign file deployed in Sirius Web, and the after uploading the sample.ecore I used in Sirius Desktop, I see the same relations correctly displayed. In both cases the edge creation tool correctly creates a new edge.

2021-03-17_15-59

One possible explanation is that your issue is not related to the relation-based edges themselves, but maybe some operation that you use in the implementation of the edge creation tool which is not supportedn or has a slightly different behavior in Sirius Web. In my case the tool simply changes context to the source element and then uses the Set model operation to add the target value (the semantic element at the end of the new edge) into the source's eSuperTypes reference.

mt-empty commented 3 years ago

Thank you for the example

I think I didn't clarify my issue enough, the relation based edge works fine. I think the advanced section in edge creation tool is not supported currently. image

In Sirius-Desktop I'm using Extra source mapping and Extra target mapping along with if conditions to allow users to click first on A and then connect it to B or they can click first on B and then connect it to A and in both cases the same relation(A--->B) will be created.

The problem is on Sirius-web, the edge connection symbol shows up for A and I can establish a relational edge but it doesn't show up for B.

I added an edit to my original post.

pcdavid commented 3 years ago

I see. This is indeed a current limitation of sirius-web (technically, sirius-components).