I seem to be spamming the list today...<br><br><div class="gmail_quote">Anyway, I resolved some of my issues by doing all of the painting in the TargetGraphic, this is in line with the demo code and the other custom maplayer/graphicbuilders  that Johan alluded to earlier (For some reason I wanted to have a targetgraphic per target, don&#39;t know why...).</div>
<div class="gmail_quote"><br></div><div class="gmail_quote">For reference sake and to maybe save somebody else some hassle here&#39;s the combo :</div><div class="gmail_quote"><br></div><div class="gmail_quote"><div class="gmail_quote">
public class TargetGraphicBuilder implements GraphicBuilder&lt;GraphicJ2D&gt; {</div><div class="gmail_quote"><br></div><div class="gmail_quote">    private final static Logger logger = LoggerFactory.getLogger(TargetGraphicBuilder.class);</div>
<div class="gmail_quote">    private TargetManager targetManager;</div><div class="gmail_quote"><br></div><div class="gmail_quote">    public TargetGraphicBuilder(TargetManager manager) {</div><div class="gmail_quote">        targetManager = manager;</div>
<div class="gmail_quote">    }</div><div class="gmail_quote"><br></div><div class="gmail_quote">    @Override</div><div class="gmail_quote">    public Collection&lt;GraphicJ2D&gt; createGraphics(MapLayer layer, Canvas canvas) {</div>
<div class="gmail_quote">        logger.debug(&quot;Creating Graphics&quot;);</div><div class="gmail_quote">        if (canvas instanceof J2DCanvas) {</div><div class="gmail_quote">            return Collections.singleton((GraphicJ2D) new TargetGraphic((J2DCanvas) canvas, targetManager));</div>
<div class="gmail_quote">        }</div><div class="gmail_quote">        logger.debug(&quot;Canvas not a J2DCanvas&quot;);</div><div class="gmail_quote">        return Collections.emptyList();</div><div class="gmail_quote">
    }</div><div class="gmail_quote"><br></div><div class="gmail_quote">    @Override</div><div class="gmail_quote">    public Class&lt;GraphicJ2D&gt; getGraphicType() {</div><div class="gmail_quote">        return GraphicJ2D.class;</div>
<div class="gmail_quote">    }</div><div class="gmail_quote"><br></div><div class="gmail_quote">    @Override</div><div class="gmail_quote">    public Image getLegend(MapLayer layer) throws PortrayalException {</div><div class="gmail_quote">
        return null;</div><div class="gmail_quote">    }</div><div class="gmail_quote"><br></div><div class="gmail_quote">    public String getName() {</div><div class="gmail_quote">        return targetManager.getName();</div>
<div class="gmail_quote">    }</div><div class="gmail_quote">}</div><div class="gmail_quote"><br></div><div class="gmail_quote"><div class="gmail_quote">public class TargetMapLayer extends AbstractMapLayer {</div><div class="gmail_quote">
<br></div><div class="gmail_quote">    private TargetGraphicBuilder builder;</div><div class="gmail_quote">    // full world extend</div><div class="gmail_quote">    private static final Envelope MAXEXTEND_ENV = new Envelope2D(DefaultGeographicCRS.WGS84, -180, -90, 360, 180);</div>
<div class="gmail_quote">    private static final MutableStyleFactory SF = (MutableStyleFactory) FactoryFinder.getStyleFactory(</div><div class="gmail_quote">            new Hints(Hints.STYLE_FACTORY, MutableStyleFactory.class));</div>
<div class="gmail_quote"><br></div><div class="gmail_quote">    public TargetMapLayer(TargetManager manager) {</div><div class="gmail_quote">        super(new DefaultStyleFactory().style());</div><div class="gmail_quote">
        //register the default graphic builder for geotk 2D engine.</div><div class="gmail_quote">        builder = new TargetGraphicBuilder(manager);</div><div class="gmail_quote">        graphicBuilders().add(builder);</div>
<div class="gmail_quote">        setDescription(SF.description(manager.getName(), manager.getName() + &quot; Target Manager&quot;));</div><div class="gmail_quote">    }</div><div class="gmail_quote"><br></div><div class="gmail_quote">
    @Override</div><div class="gmail_quote">    public Envelope getBounds() {</div><div class="gmail_quote">        return MAXEXTEND_ENV;</div><div class="gmail_quote">    }</div><div class="gmail_quote">}</div></div><div class="gmail_quote">
<br></div><div class="gmail_quote"><br></div></div>