*******************************************************************************/
package org.simantics.diagram.adapter;
+import java.awt.Shape;
import java.awt.geom.AffineTransform;
import java.util.Collection;
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;
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