X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.scenegraph%2Fsrc%2Forg%2Fsimantics%2Fscenegraph%2Fg2d%2Fnodes%2FSingleElementNode.java;h=9495a644084d2c83690a6b31a0769af0dd70a935;hb=refs%2Fchanges%2F37%2F337%2F2;hp=00ca6b8663f59c984097508f9cc9a5dba1491fc5;hpb=e146f837494c09725fcb93f708d062a723c6f0fa;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.scenegraph/src/org/simantics/scenegraph/g2d/nodes/SingleElementNode.java b/bundles/org.simantics.scenegraph/src/org/simantics/scenegraph/g2d/nodes/SingleElementNode.java index 00ca6b866..9495a6440 100644 --- a/bundles/org.simantics.scenegraph/src/org/simantics/scenegraph/g2d/nodes/SingleElementNode.java +++ b/bundles/org.simantics.scenegraph/src/org/simantics/scenegraph/g2d/nodes/SingleElementNode.java @@ -17,6 +17,8 @@ import java.awt.Graphics2D; import java.awt.geom.Point2D; import java.awt.geom.Rectangle2D; +import org.simantics.scenegraph.ParentNode; +import org.simantics.scenegraph.g2d.G2DHints; import org.simantics.scenegraph.g2d.IG2DNode; import org.simantics.scenegraph.g2d.events.EventTypes; import org.simantics.scenegraph.g2d.events.MouseEvent; @@ -28,11 +30,20 @@ public class SingleElementNode extends TransformNode implements InitValueSupport private static final long serialVersionUID = -4982578347433716440L; + private Object key; private TransferableProvider transferableProvider; protected Composite composite; protected Boolean visible = Boolean.TRUE; protected Boolean hidden = Boolean.FALSE; + public void setKey(Object key) { + this.key = key; + } + + public Object getKey() { + return key; + } + public void setTransferableProvider(TransferableProvider transferableProvider) { if (transferableProvider != this.transferableProvider) { if (this.transferableProvider != null) @@ -71,11 +82,22 @@ public class SingleElementNode extends TransformNode implements InitValueSupport return hidden; } + public void beforeRender(Graphics2D g) { + g.setRenderingHint(G2DHints.KEY_BEGIN_ELEMENT, "definedElement"); + } + + public void afterRender(Graphics2D g) { + g.setRenderingHint(G2DHints.KEY_ELEMENT_ID, getKey()); + g.setRenderingHint(G2DHints.KEY_END_ELEMENT, "definedElement"); + } + @Override public void render(Graphics2D g) { if (!visible || hidden) return; + beforeRender(g); + Composite oldComposite = null; if(composite != null) { oldComposite = g.getComposite(); @@ -91,6 +113,9 @@ public class SingleElementNode extends TransformNode implements InitValueSupport if (oldComposite != null) g.setComposite(oldComposite); + + afterRender(g); + } @Override