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);

http://dive4elements.wald.intevation.org