Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/exports/ChartInfoGenerator.java @ 1752:b7b424ae32a8
Added /dev/null Graphics2D object to be used in the info rendering pass of the diagram generation.
flys-artifacts/trunk@3055 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Fri, 21 Oct 2011 13:25:24 +0000 |
parents | bdb05dc9b763 |
children | f2c14e09a8f1 |
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/exports/ChartInfoGenerator.java Fri Oct 21 08:21:45 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/exports/ChartInfoGenerator.java Fri Oct 21 13:25:24 2011 +0000 @@ -1,9 +1,17 @@ package de.intevation.flys.exports; -import java.awt.Transparency; +import de.intevation.flys.java2d.NOPGraphics2D; + import java.io.IOException; import java.io.OutputStream; +import java.awt.Transparency; +import java.awt.Graphics2D; + +import java.awt.geom.Rectangle2D; + +import java.awt.image.BufferedImage; + import org.w3c.dom.Document; import org.apache.log4j.Logger; @@ -31,6 +39,9 @@ */ public abstract class ChartInfoGenerator implements OutGenerator { + public static final boolean USE_NOP_GRAPHICS = + Boolean.getBoolean("info.rendering.nop.graphics"); + /** The logger used in this generator.*/ private static Logger logger = Logger.getLogger(ChartInfoGenerator.class); @@ -106,7 +117,35 @@ ChartRenderingInfo info = new ChartRenderingInfo(); - chart.createBufferedImage(size[0], size[1], Transparency.BITMASK, info); + long startTime = System.currentTimeMillis(); + + if (USE_NOP_GRAPHICS) { + BufferedImage image = + new BufferedImage(size[0], size[1], Transparency.BITMASK); + + Graphics2D g2d = image.createGraphics(); + Graphics2D nop = new NOPGraphics2D(g2d); + + chart.draw( + nop, + new Rectangle2D.Double(0, 0, size[0], size[1]), + null, + info); + + nop.dispose(); + } + else { + chart.createBufferedImage( + size[0], size[1], Transparency.BITMASK, info); + } + + long stopTime = System.currentTimeMillis(); + + if (logger.isDebugEnabled()) { + logger.debug("Rendering info took: " + + (stopTime-startTime) + "ms"); + } + InfoGeneratorHelper helper = new InfoGeneratorHelper(generator); Document doc = helper.createInfoDocument(chart, info);