package com.github.pfichtner.jrunalyser.ui.map.painter; import java.awt.Graphics2D; import java.util.Collection; import java.util.List; import org.jdesktop.swingx.painter.Painter; import com.google.common.collect.ImmutableList; public class StackedPainter<T> implements Painter<T> { private final List<Painter<T>> painters; public StackedPainter(Collection<Painter<T>> painters) { this.painters = ImmutableList.copyOf(painters); } @Override public void paint(Graphics2D g, T t, int w, int h) { for (Painter<T> painter : this.painters) { Graphics2D clone = (Graphics2D) g.create(); painter.paint(clone, t, w, h); clone.dispose(); } } }