X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.diagram%2Fsrc%2Forg%2Fsimantics%2Fdiagram%2Fadapter%2FDefinedElementTerminals.java;h=33e831afcf1b69f638c6a3ce66699957273e9713;hb=617b9475710b80a125597f222f9777224972ce72;hp=6f83954e01b6163e10d1c748cbf57421b1159a82;hpb=c26409b1caf2f1e560d37c5befd11b442399c3fe;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.diagram/src/org/simantics/diagram/adapter/DefinedElementTerminals.java b/bundles/org.simantics.diagram/src/org/simantics/diagram/adapter/DefinedElementTerminals.java index 6f83954e0..33e831afc 100644 --- a/bundles/org.simantics.diagram/src/org/simantics/diagram/adapter/DefinedElementTerminals.java +++ b/bundles/org.simantics.diagram/src/org/simantics/diagram/adapter/DefinedElementTerminals.java @@ -11,6 +11,7 @@ *******************************************************************************/ package org.simantics.diagram.adapter; +import java.awt.Shape; import java.awt.geom.AffineTransform; import java.util.Collection; @@ -21,7 +22,6 @@ import org.simantics.g2d.element.handler.TerminalLayout; import org.simantics.g2d.element.handler.TerminalTopology; import org.simantics.g2d.element.handler.impl.ObjectTerminal; import org.simantics.g2d.element.handler.impl.Terminals; -import org.simantics.scenegraph.INode; import org.simantics.scenegraph.g2d.IG2DNode; import org.simantics.scenegraph.g2d.nodes.SingleElementNode; import org.simantics.scenegraph.utils.NodeUtil; @@ -72,7 +72,22 @@ public class DefinedElementTerminals extends Terminals { ObjectTerminal ti = terminalMap.get(t); if (ti == null) return null; - return new AffineTransform(ti.getTransform()); + return ti.getTransform(); + } + + @Override + public Shape getTerminalShape(IElement e, Terminal t) { + if (t instanceof ResourceTerminal) { + ResourceTerminal rt = (ResourceTerminal) t; + IG2DNode node = e.getHint(DefinedElementHandler.KEY_SG_NODE); + if (node != null) { + IG2DNode n = findResourceTerminalNode(node, rt); + if (n != null) { + return n.getBoundsInLocal(); + } + } + } + return super.getTerminalShape(e, t); } } \ No newline at end of file