Detail
#27640
Model Editor: Superclass arrow is displayed although superclass is not drawn
If the TLObject class is hidden in the diagram, an inheritance arrow appears in the void when a new class is created.
Hiding TLObjet is a clumsy solution anyway. You hardly ever want to see this class, it only leads to diagrams looking as confusing as possible. However, there is no way to hide it permanently - it reappears with every relayout.
There are currently options to display technical names and "table interfaces".
The second option no longer has any function at all, as there have been no table interfaces for a long time. (Option should be removed).
None of the options show whether they are selected or not. (The icon should indicate whether the option is selected).
There should be an option "Show technical superclasses" - off by default. TLObject should only be drawn in a (third-party) diagram if this is checked.
If you hide classes via the eye, this should be retained beyond a relayout.
If you currently create a new association, the diagram jumps to it and moves the association to the center. This is unexpected, as neither a relay layout nor an automatic position change should take place when a new association is created.
If you drag a waypoint on the diagram, the edge disappears during the dragging process:
Implementation
Hidden diagram elements are displayed with a transparency of 30% if the option is set to show hidden elements.
Each element can be hidden and shown. Only those elements are shown that are necessary to display the original element. If an element is hidden, all dependent elements are hidden.
Migration
If tl-engine has been checked out in the Eclipse workspace, in particular the module com.top_logic.graph.diagramjs.client, then this should be recompiled with GWT in order to obtain the latest version locally.
Test
The model editor should be intuitive to use, in particular the new functionality of showing and hiding elements should be tested.
The toggle buttons in the burger menu of the model editor should work as expected. Their icon should reflect the status of the underlying boolean flag.
When a new edge is created, the view of the diagram should not move.
After a relayout, hidden elements should continue to be hidden. The set of hidden elements should only be "emptied" when the module is changed.
Assuming that hidden elements are displayed in the diagram, the model editor should behave as follows:
- If a type with attributes is hidden, then all attributes are also hidden.
- If a type with edges is hidden, its edges are also hidden.
- If an attribute is shown in a hidden type, then only its type should be shown. Attached edges and other attributes of the type should remain hidden.
- If a type with several edges is hidden and then one of its hidden edges is shown, the hidden type should be shown and all other edges should remain hidden.