X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.g2d%2Fsrc%2Forg%2Fsimantics%2Fg2d%2Fdiagram%2Fparticipant%2FElementPainter.java;h=424bc348f7a2af81d07db645ac5bc47d3682d5e4;hp=6e9ff85b1f62c9fb75f4552e346c956cad80113a;hb=ad29e24f50e336add4c28df14312b3134ab93427;hpb=68494955c9ee84aa894508b9f954ae16cfccce53 diff --git a/bundles/org.simantics.g2d/src/org/simantics/g2d/diagram/participant/ElementPainter.java b/bundles/org.simantics.g2d/src/org/simantics/g2d/diagram/participant/ElementPainter.java index 6e9ff85b1..424bc348f 100644 --- a/bundles/org.simantics.g2d/src/org/simantics/g2d/diagram/participant/ElementPainter.java +++ b/bundles/org.simantics.g2d/src/org/simantics/g2d/diagram/participant/ElementPainter.java @@ -158,7 +158,7 @@ public class ElementPainter extends AbstractDiagramParticipant implements Compos SingleElementNode diagramParent; RTreeNode elementParent; - boolean paintSelectionFrames; + ElementPainterConfiguration cfg; /** * Internally reused to avert constant reallocation. @@ -174,7 +174,11 @@ public class ElementPainter extends AbstractDiagramParticipant implements Compos } public ElementPainter(boolean paintSelectionFrames) { - this.paintSelectionFrames = paintSelectionFrames; + this(new ElementPainterConfiguration().paintSelectionFrames(paintSelectionFrames)); + } + + public ElementPainter(ElementPainterConfiguration cfg) { + this.cfg = cfg; } @Override @@ -828,7 +832,7 @@ public class ElementPainter extends AbstractDiagramParticipant implements Compos Object task = BEGIN("EP.updateSelections"); try { - if (!paintSelectionFrames) + if (!cfg.paintSelectionFrames) return; if (selection == null) return; @@ -934,7 +938,7 @@ public class ElementPainter extends AbstractDiagramParticipant implements Compos Object task = BEGIN("EP.updateSelection"); try { - if (!paintSelectionFrames) + if (!cfg.paintSelectionFrames) return; G2DParentNode elementNode = (G2DParentNode) el.getHint(ElementHints.KEY_SG_NODE); @@ -980,12 +984,14 @@ public class ElementPainter extends AbstractDiagramParticipant implements Compos Color color = getSelectionColor(selectionId); G2DParentNode selectionsNode = getSelectionsNode(selectionId); + Class selectionNodeClass = cfg.selectionNodeClass != null ? cfg.selectionNodeClass : G2DParentNode.class; + for (IElement e : selection) { Node elementNode = e.getHint(ElementHints.KEY_SG_NODE); // System.out.println("selectionNode: " + elementNode + " " + e); if (elementNode instanceof G2DParentNode) { G2DParentNode en = (G2DParentNode) elementNode; - G2DParentNode selectionNode = en.getOrCreateNode(NodeUtil.SELECTION_NODE_NAME, G2DParentNode.class); + G2DParentNode selectionNode = en.getOrCreateNode(NodeUtil.SELECTION_NODE_NAME, selectionNodeClass); selectionNode.setZIndex(SELECTION_PAINT_PRIORITY); if (selectionNodes != null) selectionNodes.add(selectionNode);