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'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's the combo :</div><div class="gmail_quote"><br></div><div class="gmail_quote"><div class="gmail_quote">
public class TargetGraphicBuilder implements GraphicBuilder<GraphicJ2D> {</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<GraphicJ2D> createGraphics(MapLayer layer, Canvas canvas) {</div>
<div class="gmail_quote"> logger.debug("Creating Graphics");</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("Canvas not a J2DCanvas");</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<GraphicJ2D> 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() + " Target Manager"));</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>