Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable figures of nodes, port, and labels to cover edges. #151

Open
sailingKieler opened this issue Dec 22, 2022 · 0 comments
Open

Enable figures of nodes, port, and labels to cover edges. #151

sailingKieler opened this issue Dec 22, 2022 · 0 comments

Comments

@sailingKieler
Copy link
Member

sailingKieler commented Dec 22, 2022

In some projects there's the need for node figures to cover edges, i.e. to be drawn on top of edges.
This can already be achieved globally via the EDGES_FIRST configuration property

/**
* Property for globally determining whether edges should be drawn before nodes, leading to
* the effect of overpainting edges by nodes with background color.
*/
public static final IProperty<Boolean> EDGES_FIRST = new Property<Boolean>(
"klighd.edgesFirst", false);

This issue demands for a more fine-grained solution allowing to configure this property per KGraphElement or even KRendering.

Current options:

  • Classic approach (default): Edges are drawn on top of nodes (some with oversized highlighting figures)
    edgesAboveNodes
  • Alternative setup: Edges are drawn first, nodes are drawn second on top of the edges;
    this does not work for diagrams with edges crossing hierarchy boundaries
    Problem: oversized highlighting figures cover edges
    edgesUnderneathNodes
  • Requested setup: A parent node's children can be independently tagged to be drawn underneath or on top of the edges
    edgesUnderneathNodesWithBGFigures
sailingKieler added a commit that referenced this issue Jan 5, 2023
…ND_FIGURE' to 'KlighdProperties', refactored handling of nodes and node figures to solve #151

* added corresponding convenience methods to 'DiagramSyntheses'
* added distinguished layers for regular nodes and foreground nodes in 'KChildAreaNode'
* refined 'fullPaint()' procedures for 'KChildAreaNode' and 'KNodeNode'
* refined figure filtering in 'KlighdFigureNode'
* added required state to 'KlighdPaintContext'
* added corresponding tests to 'klighd.piccolo.test' powered by the svg generator
* minor refinement in 'SemanticSVGGraphics2D' (generated white space)
sailingKieler added a commit that referenced this issue Jan 5, 2023
…ND_FIGURE' to 'KlighdProperties', refactored handling of nodes and node figures to solve #151

* added corresponding convenience methods to 'DiagramSyntheses'
* added distinguished layers for regular nodes and foreground nodes in 'KChildAreaNode'
* refined 'fullPaint()' procedures for 'KChildAreaNode' and 'KNodeNode'
* refined figure filtering in 'KlighdFigureNode'
* added required state to 'KlighdPaintContext'
* added corresponding tests to 'klighd.piccolo.test' powered by the svg generator
* minor refinement in 'SemanticSVGGraphics2D' (generated white space)
sailingKieler added a commit that referenced this issue Jan 6, 2023
…ND_FIGURE' to 'KlighdProperties', refactored handling of nodes and node figures to solve #151

* added corresponding convenience methods to 'DiagramSyntheses'
* added distinguished layers for regular nodes and foreground nodes in 'KChildAreaNode'
* refined 'fullPaint()' procedures for 'KChildAreaNode' and 'KNodeNode'
* refined figure filtering in 'KlighdFigureNode'
* added required state to 'KlighdPaintContext'
* added corresponding tests to 'klighd.piccolo.test' powered by the svg generator
* minor refinement in 'SemanticSVGGraphics2D' (generated white space)
sailingKieler added a commit that referenced this issue Jan 9, 2023
…ND_FIGURE' to 'KlighdProperties', refactored handling of nodes and node figures to solve #151

* added corresponding convenience methods to 'DiagramSyntheses'
* added distinguished layers for regular nodes and foreground nodes in 'KChildAreaNode'
* refined 'fullPaint()' procedures for 'KChildAreaNode' and 'KNodeNode'
* refined figure filtering in 'KlighdFigureNode'
* added required state to 'KlighdPaintContext'
* added corresponding tests to 'klighd.piccolo.test' powered by the svg generator
* minor refinement in 'SemanticSVGGraphics2D' (generated white space)
sailingKieler added a commit that referenced this issue Jan 9, 2023
…ND_FIGURE' to 'KlighdProperties', refactored handling of nodes and node figures to solve #151

* added corresponding convenience methods to 'DiagramSyntheses'
* added distinguished layers for regular nodes and foreground nodes in 'KChildAreaNode'
* refined 'fullPaint()' procedures for 'KChildAreaNode' and 'KNodeNode'
* refined figure filtering in 'KlighdFigureNode'
* added required state to 'KlighdPaintContext'
* added corresponding tests to 'klighd.piccolo.test' powered by the svg generator
* minor refinement in 'SemanticSVGGraphics2D' (generated white space)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant