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;
private TransferableProvider transferableProvider;
protected Composite composite;
+ private ColorFilter colorFilter;
protected Boolean visible = Boolean.TRUE;
protected Boolean hidden = Boolean.FALSE;
private transient Object key;
public void setComposite(Composite composite) {
this.composite = composite;
}
+
+ public void setColorFilter(ColorFilter colorFilter) {
+ this.colorFilter = colorFilter;
+ }
@SyncField("visible")
public void setVisible(Boolean visible) {
}
@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();
if (oldComposite != null)
g.setComposite(oldComposite);
+
+ if (colorFilter != null) {
+ g.setRenderingHint(G2DRenderingHints.KEY_COLOR_FILTER, null);
+ }
}
@Override