Mercurial > dive4elements > river
comparison 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 |
comparison
equal
deleted
inserted
replaced
1751:27b8836abec9 | 1752:b7b424ae32a8 |
---|---|
1 package de.intevation.flys.exports; | 1 package de.intevation.flys.exports; |
2 | 2 |
3 import java.awt.Transparency; | 3 import de.intevation.flys.java2d.NOPGraphics2D; |
4 | |
4 import java.io.IOException; | 5 import java.io.IOException; |
5 import java.io.OutputStream; | 6 import java.io.OutputStream; |
7 | |
8 import java.awt.Transparency; | |
9 import java.awt.Graphics2D; | |
10 | |
11 import java.awt.geom.Rectangle2D; | |
12 | |
13 import java.awt.image.BufferedImage; | |
6 | 14 |
7 import org.w3c.dom.Document; | 15 import org.w3c.dom.Document; |
8 | 16 |
9 import org.apache.log4j.Logger; | 17 import org.apache.log4j.Logger; |
10 | 18 |
28 * created chart. | 36 * created chart. |
29 * | 37 * |
30 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> | 38 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> |
31 */ | 39 */ |
32 public abstract class ChartInfoGenerator implements OutGenerator { | 40 public abstract class ChartInfoGenerator implements OutGenerator { |
41 | |
42 public static final boolean USE_NOP_GRAPHICS = | |
43 Boolean.getBoolean("info.rendering.nop.graphics"); | |
33 | 44 |
34 /** The logger used in this generator.*/ | 45 /** The logger used in this generator.*/ |
35 private static Logger logger = | 46 private static Logger logger = |
36 Logger.getLogger(ChartInfoGenerator.class); | 47 Logger.getLogger(ChartInfoGenerator.class); |
37 | 48 |
104 | 115 |
105 int[] size = generator.getSize(); | 116 int[] size = generator.getSize(); |
106 | 117 |
107 ChartRenderingInfo info = new ChartRenderingInfo(); | 118 ChartRenderingInfo info = new ChartRenderingInfo(); |
108 | 119 |
109 chart.createBufferedImage(size[0], size[1], Transparency.BITMASK, info); | 120 long startTime = System.currentTimeMillis(); |
121 | |
122 if (USE_NOP_GRAPHICS) { | |
123 BufferedImage image = | |
124 new BufferedImage(size[0], size[1], Transparency.BITMASK); | |
125 | |
126 Graphics2D g2d = image.createGraphics(); | |
127 Graphics2D nop = new NOPGraphics2D(g2d); | |
128 | |
129 chart.draw( | |
130 nop, | |
131 new Rectangle2D.Double(0, 0, size[0], size[1]), | |
132 null, | |
133 info); | |
134 | |
135 nop.dispose(); | |
136 } | |
137 else { | |
138 chart.createBufferedImage( | |
139 size[0], size[1], Transparency.BITMASK, info); | |
140 } | |
141 | |
142 long stopTime = System.currentTimeMillis(); | |
143 | |
144 if (logger.isDebugEnabled()) { | |
145 logger.debug("Rendering info took: " + | |
146 (stopTime-startTime) + "ms"); | |
147 } | |
148 | |
110 | 149 |
111 InfoGeneratorHelper helper = new InfoGeneratorHelper(generator); | 150 InfoGeneratorHelper helper = new InfoGeneratorHelper(generator); |
112 Document doc = helper.createInfoDocument(chart, info); | 151 Document doc = helper.createInfoDocument(chart, info); |
113 | 152 |
114 XMLUtils.toStream(doc, out); | 153 XMLUtils.toStream(doc, out); |