Skip to content
This repository has been archived by the owner on Dec 14, 2021. It is now read-only.

Add inheritance edges even if nodes are no direct decendants #167

Closed
HarryDC opened this issue Aug 25, 2016 · 4 comments
Closed

Add inheritance edges even if nodes are no direct decendants #167

HarryDC opened this issue Aug 25, 2016 · 4 comments
Assignees
Labels

Comments

@HarryDC
Copy link

HarryDC commented Aug 25, 2016

It looks like all classes that are not direct subclasses are presented as 'referencing symbols' rather than 'derived symbols' which is a little bit confusing, if I am looking at classes that are labeled as 'referencing' i would not expect to see things that actually have an 'is-a' relationship, but rather composition or containment. Although I can see that exposing all classes that are not direct subclasses in a flat manner is a good thing, i had at first problems finding these classes, my first tries where all to dig into the hierarchy.

In the screenshot all Representation classes are descendents of Component but only direct descendants can be found in the 'Derived Symbols' bubble. Maybe different coloring, different sorting, different labeling or grouping could help

image

@egraether
Copy link
Contributor

Yes, I agree, derived classes should be bundled with the derived symbols.

Should there also be an edge between the "Component" class and the "*Representation" classes showing the "is-a" relationship?

@HarryDC
Copy link
Author

HarryDC commented Sep 6, 2016

Sorry for the delayed response, I was on vacation. I am not sure about adding any more edges, looking at how derived symbols are connected to the super class there are already two edges in most cases.

image

In writing this I clicked on the link that signifies use for the first time, I had not used this before. But with the above structure that would add more visual clutter. But I was wondering if the Derived symbols bundle could be extended to let the user fold out all derived symbols as an alternative to the direct descendants. So either all descendants or just the direct ones. If these come up in the same manner as the Referencing Symbols (completely folded) then it would not use up too much space.

What is the information that is in the Symbols as they come up in the Derived Symbols, I only see the parent class constructor call is there anything else that can show up by default ?

@egraether
Copy link
Contributor

When a class is active then you see all type_use edges to that class by default. That's the reason the Derived Symbol constructors are connected to the Base Symbol, because they make use of the Base Symbols type.

I think we will need to add some kind of edge to signify that non-direct descendants are derived from the base class. Otherwise you might wonder, why this symbol is placed below with the direct descendants.

@egraether egraether changed the title Referencing Symbol instead of Derived Add inheritance edges even if nodes are no direct decendants Jul 14, 2017
@egraether egraether self-assigned this Jul 14, 2017
@egraether
Copy link
Contributor

Implemented with 2017.2.26
Inheritance relationships are now always respected in layouting and inheritance edges are always shown between the parent of the active symbol and other visible symbols.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

2 participants