Author Topic: Virtual Connector Ends –Deleting the arc (to hide it) will remove the VCE  (Read 6391 times)

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8597
  • Karma: +256/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
This has already been reported, but there is now a workaround!

When you create a Virtual Connector End (VCE) the Doppelganger if you try to hide the arc by pressing the delete key, the VCE will also be removed from the diagram (even though it is not selected)! Since one of the principal use cases (at least in our view) is to have multiple instances of an item visually embedded in a number of encompassing elements, this causes problems!  Interestingly, you can hide the connector itself by using the Set Visible Relations [Ctrl+Shift+I] and hiding the arc using that dialog.  Consequently, why can't we do it with just the delete key?

These types of problems could be overcome by having REAL t_diagramobjects marked as Doppelgangers.

Reported,
Paolo
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!

skiwi

  • EA Expert
  • ****
  • Posts: 2080
  • Karma: +46/-82
    • View Profile
Your can also hide the arc by changing its line style indirectly thru apply line style on diagram,
which resets the arc to the original,
then hiding the original arc!
Orthogonality rules
Using EA16.1 (1627) on Windows 11 Enterprise/64 bit. Repositories in SQLServer2019 DB Schema 1558.
WebEA on Pro Cloud Server 4.2.64

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8597
  • Karma: +256/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
These types of problems could be overcome by having REAL t_diagramobjects marked as Doppelgangers.
We did investigate that first, it had sufficient problems that it's not the solution we went with.

All you're describing here is a bug, that Set Visible Relations does not remove the virtual connector end.
No, Eve, the reverse!  Set Visible relations is the ONLY way to keep the VCE on the diagram and hide the arc!  The BUG is that deleting the arc using [delete] WILL remove the VCE.  If I wanted to delete BOTH, I would just delete the VCE which would remove both from the diagram.

Paolo
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!

Eve

  • EA Administrator
  • EA Guru
  • *****
  • Posts: 8063
  • Karma: +118/-20
    • View Profile
No, Eve, the reverse!  Set Visible relations is the ONLY way to keep the VCE on the diagram and hide the arc!  The BUG is that deleting the arc using [delete] WILL remove the VCE.  If I wanted to delete BOTH, I would just delete the VCE which would remove both from the diagram.
I realize that you thought it was a good thing.

I'm saying, that it shouldn't be possible. It's a bug that you can show the endpoint of the connector without the connector.

PS. I deleted my reply when I realized I was replying to the part of the thread from 2017 instead of the current one. If skiwi has another way that a virtual connector end can show without the connector, that is still a bug.

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8597
  • Karma: +256/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
No, Eve, the reverse!  Set Visible relations is the ONLY way to keep the VCE on the diagram and hide the arc!  The BUG is that deleting the arc using [delete] WILL remove the VCE.  If I wanted to delete BOTH, I would just delete the VCE which would remove both from the diagram.
I realize that you thought it was a good thing.

I'm saying, that it shouldn't be possible. It's a bug that you can show the endpoint of the connector without the connector.

PS. I deleted my reply when I realized I was replying to the part of the thread from 2017 instead of the current one. If skiwi has another way that a virtual connector end can show without the connector, that is still a bug.
Why?  What is the rationale?  For all other connectors and endpoints, the two are connected but distinct (pun intended).  As I said, I can hide the connector and leave the endpoint.  Removing the endpoint, of necessity has to hide the connector.
As you know, I agree with the concept of the Virtual Connector End as a solution to the multiple instances on one diagram problem.  The implementation just leaves me (and by the sound of it skiwi - and I suspect as more users start to use it, them as well) flabbergasted!

Paolo
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!

Eve

  • EA Administrator
  • EA Guru
  • *****
  • Posts: 8063
  • Karma: +118/-20
    • View Profile
Virtual Connector Ends solves one problem. That showing all connectors to the exact same shape can end up complicating the diagram unnecessarily. Instead, the element is being represented by a second shape allows you to simplify one or more lines.

It's not a general attempt to represent an element multiple times. If you want to have an unconnected element shown on the diagram, drop a diagram containing that element and hide the frame.

Because they exist only to to simplify the layout of the relationships, it doesn't make sense for them to ever be displayed without those relationships. So, any method that results in the shape being drawn without the line (or disconnected from the line) is the problem.

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8597
  • Karma: +256/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Virtual Connector Ends solves one problem. That showing all connectors to the exact same shape can end up complicating the diagram unnecessarily. Instead, the element is being represented by a second shape allows you to simplify one or more lines.

It's not a general attempt to represent an element multiple times. If you want to have an unconnected element shown on the diagram, drop a diagram containing that element and hide the frame.

Because they exist only to simplify the layout of the relationships, it doesn't make sense for them to ever be displayed without those relationships. So, any method that results in the shape being drawn without the line (or disconnected from the line) is the problem.
But as skiwi (and others including myself) have observed, the VCE shape can't be made to look like the original shape.  Notwithstanding the original intent, the outcome is that there are multiple copies of the same element on the diagram.  The consequences of that were not (apparently) thought out properly.  Given that it is currently possible by two separate methods to create an unattached duplicate shape, it is further proof that the design is inherently flawed.  I accept that others might say that Sparx can't write code that works, but in my view, this is a case of bad design.
Further, I'd submit that if you actually asked the users, they might agree that we would see not being able to create the unattached by one of the three common methods by which connectors can be suppressed as the bug.

As I've said many times, I'm using EA in spite of EA, NOT because of it!

A slightly different design and implementation could have solved not just these problems, but many others.  In the other thread, you mentioned Sparx considered creating additional diagram objects, suitably identified as VCEs, but it was rejected because of the problems it caused.  I still debate that, it seems such a straightforward thing to do  (and indeed, for my part, when I created my first VCE I went looking in t_diagramobjects looking for it).  Could it be that another flawed design makes such a straightforward solution impractical?

Paolo
« Last Edit: April 12, 2022, 09:43:58 pm by Paolo F Cantoni »
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 13282
  • Karma: +556/-33
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
I agree with that last statement.

The database design actually supports having multiple representations of the same object on a diagram.
I'm guessing the reason it's not done in this obvious way is because of some underlying logic in the code of EA that is hard to change.

Regardless, the current "solution" (virtualized connector ends) remains a half-assed workaround that I personally can't recommend anyone to use.

Geert

qwerty

  • EA Guru
  • *****
  • Posts: 13584
  • Karma: +396/-301
  • I'm no guru at all
    • View Profile
+1 what Geert said

q.