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=b45e7493a686fa4ea61286b0e57580d422ea6935;hb=refs%2Fchanges%2F33%2F4333%2F1;hp=29ef9954eb37a604a1ca593439e9614a1e3d4510;hpb=962dc58e13349c7c9947dceec3ad62777afc06e2;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 29ef9954e..b45e7493a 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 @@ -21,6 +21,8 @@ import java.util.Map; import org.simantics.scenegraph.INode; import org.simantics.scenegraph.g2d.G2DRenderingHints; import org.simantics.scenegraph.g2d.IG2DNode; +import org.simantics.scenegraph.g2d.color.ColorFilter; +import org.simantics.scenegraph.g2d.color.Graphics2DWithColorFilter; import org.simantics.scenegraph.g2d.events.EventTypes; import org.simantics.scenegraph.g2d.events.MouseEvent; import org.simantics.scenegraph.g2d.events.MouseEvent.MouseDragBegin; @@ -33,6 +35,7 @@ public class SingleElementNode extends TransformNode implements InitValueSupport private TransferableProvider transferableProvider; protected Composite composite; + private ColorFilter colorFilter; protected Boolean visible = Boolean.TRUE; protected Boolean hidden = Boolean.FALSE; private transient Object key; @@ -91,6 +94,10 @@ public class SingleElementNode extends TransformNode implements InitValueSupport public void setComposite(Composite composite) { this.composite = composite; } + + public void setColorFilter(ColorFilter colorFilter) { + this.colorFilter = colorFilter; + } @SyncField("visible") public void setVisible(Boolean visible) { @@ -111,10 +118,18 @@ public class SingleElementNode extends TransformNode implements InitValueSupport } @Override - public void render(Graphics2D g) { + public void render(Graphics2D g2d) { if (!visible || hidden) return; + Graphics2D g; + if (colorFilter != null) { + g = new Graphics2DWithColorFilter(g2d, colorFilter); + g.setRenderingHint(G2DRenderingHints.KEY_COLOR_FILTER, colorFilter); + } else { + g = g2d; + } + Composite oldComposite = null; if(composite != null) { oldComposite = g.getComposite(); @@ -130,6 +145,10 @@ public class SingleElementNode extends TransformNode implements InitValueSupport if (oldComposite != null) g.setComposite(oldComposite); + + if (colorFilter != null) { + g.setRenderingHint(G2DRenderingHints.KEY_COLOR_FILTER, null); + } } @Override