package mil.nga.giat.geowave.adapter.vector.render; import java.awt.image.BufferedImage; import java.awt.image.IndexColorModel; import java.awt.image.RenderedImage; import org.geoserver.wms.map.RenderedImageMapOutputFormat; import org.geotools.renderer.lite.DistributedRenderer; import org.geotools.renderer.lite.StreamingRenderer; public class DistributedRenderMapOutputFormat extends RenderedImageMapOutputFormat { private final DistributedRenderOptions options; private DistributedRenderer currentRenderer; private BufferedImage currentImage; public DistributedRenderMapOutputFormat( final DistributedRenderOptions options ) { super( new DistributedRenderWMSFacade( options)); this.options = options; } @Override protected StreamingRenderer buildRenderer() { currentRenderer = new DistributedRenderer( options); return currentRenderer; } public void stopRendering() { if (currentRenderer != null) { currentRenderer.stopRendering(); } } @Override protected RenderedImage prepareImage( final int width, final int height, final IndexColorModel palette, final boolean transparent ) { currentImage = (BufferedImage) super.prepareImage( width, height, palette, transparent); return currentImage; } public DistributedRenderResult getDistributedRenderResult() { return currentRenderer.getResult(currentImage); } }