Visualize interface implementation correctly

Issue #103 resolved
Matthias Schoettle created an issue

Recently, an interface property was added to ImplementationClasses (see issue #42). When a classes implements an interface, the interface is still added as a super type, but the inheritance relationship has to be visualized differently (dashed line).

To make a dashed line, a stipple can be set to the line MTLine.setLineStipple. For a dashed line this is 0x00FF (see CSSStyle.getBorderStylePattern).

This depends on issue #34.

Comments (11)

  1. Matthias Schoettle reporter
    • changed status to open

    Dashed lines are also needed for message views (reply messages). I am going to add the required behaviour to RelationshipView.

  2. Matthias Schoettle reporter

    References issue #103: Added the ability for different line styles to RelationshipView. InheritanceView uses dashed line in case the super class is an "interface implementation class".

    One issue remains: If there is more than one inheritance relationship on one side of a class, they are displayed together. However, extends and implements relationships should be distinguished.

    → <<cset 330f6b8f4ebe>>

  3. Matthias Schoettle reporter

    References issue #103: InheritanceView stores information whether it is extends or implements inheritance. The ClassifierView then only combines extends inheritances and the StructuralDiagramView sets that information when creating the inheritance view.

    → <<cset 365a7f0961cf>>

  4. Matthias Schoettle reporter

    References issue #103: Updated drawing of classifier relationships:

    Implements relationships are now also grouped together. The algorithm looks a bit complex and it might be a good idea to improve it.

    The algorithm first figures out the number of inheritance relationship kinds. This is then used to calculate the divider amount between all ends. Then, the correct position is set for each end depending on at what position in the list it occurs.

    → <<cset 5e56f0ee5498>>

  5. Log in to comment