Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/exports/ChartInfoGenerator.java @ 653:67c7020f4ed3
Refactored the chart creation in the ChartInfoGenerators. Now, every chart is created by the XYChartGenerator again.
flys-artifacts/trunk@2048 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Fri, 03 Jun 2011 07:20:39 +0000 |
parents | bb484489d3df |
children | 913b52064449 |
comparison
equal
deleted
inserted
replaced
652:8fa4c5c9cd1a | 653:67c7020f4ed3 |
---|---|
1 package de.intevation.flys.exports; | 1 package de.intevation.flys.exports; |
2 | 2 |
3 import java.awt.Color; | |
3 import java.awt.Transparency; | 4 import java.awt.Transparency; |
4 import java.io.IOException; | 5 import java.io.IOException; |
5 import java.io.OutputStream; | 6 import java.io.OutputStream; |
6 | 7 |
7 import org.w3c.dom.Document; | 8 import org.w3c.dom.Document; |
8 | 9 |
9 import org.apache.log4j.Logger; | 10 import org.apache.log4j.Logger; |
10 | 11 |
12 import org.jfree.chart.ChartFactory; | |
11 import org.jfree.chart.ChartRenderingInfo; | 13 import org.jfree.chart.ChartRenderingInfo; |
12 import org.jfree.chart.JFreeChart; | 14 import org.jfree.chart.JFreeChart; |
15 import org.jfree.chart.plot.PlotOrientation; | |
16 import org.jfree.chart.plot.XYPlot; | |
13 | 17 |
14 import de.intevation.artifacts.Artifact; | 18 import de.intevation.artifacts.Artifact; |
15 import de.intevation.artifacts.CallContext; | 19 import de.intevation.artifacts.CallContext; |
16 | 20 |
17 import de.intevation.artifacts.common.utils.XMLUtils; | 21 import de.intevation.artifacts.common.utils.XMLUtils; |
33 private static Logger logger = | 37 private static Logger logger = |
34 Logger.getLogger(ChartInfoGenerator.class); | 38 Logger.getLogger(ChartInfoGenerator.class); |
35 | 39 |
36 | 40 |
37 /** The OutGenerator that creates the charts.*/ | 41 /** The OutGenerator that creates the charts.*/ |
38 protected OutGenerator generator; | 42 protected XYChartGenerator generator; |
39 | 43 |
40 protected OutputStream out; | 44 protected OutputStream out; |
41 | 45 |
42 | 46 |
43 | 47 |
44 public ChartInfoGenerator(OutGenerator generator) { | 48 public ChartInfoGenerator(XYChartGenerator generator) { |
45 this.generator = generator; | 49 this.generator = generator; |
46 } | 50 } |
47 | 51 |
48 | 52 |
49 /** | 53 /** |
91 public void generate() | 95 public void generate() |
92 throws IOException | 96 throws IOException |
93 { | 97 { |
94 logger.debug("ChartInfoGenerator.generate"); | 98 logger.debug("ChartInfoGenerator.generate"); |
95 | 99 |
96 JFreeChart chart = generateChart(); | 100 JFreeChart chart = generator.generateChart(); |
97 | 101 |
98 int[] size = getSize(); | 102 int[] size = generator.getSize(); |
99 | 103 |
100 ChartRenderingInfo info = new ChartRenderingInfo(); | 104 ChartRenderingInfo info = new ChartRenderingInfo(); |
101 | 105 |
102 chart.createBufferedImage(size[0], size[1], Transparency.BITMASK, info); | 106 chart.createBufferedImage(size[0], size[1], Transparency.BITMASK, info); |
103 | 107 |
104 Document doc = InfoGeneratorHelper.createInfoDocument(chart, info); | 108 Document doc = InfoGeneratorHelper.createInfoDocument(chart, info); |
105 | 109 |
106 XMLUtils.toStream(doc, out); | 110 XMLUtils.toStream(doc, out); |
107 } | 111 } |
108 | |
109 | |
110 /** | |
111 * Creates a chart object. | |
112 * | |
113 * @return a chart object. | |
114 */ | |
115 protected abstract JFreeChart generateChart(); | |
116 | |
117 /** | |
118 * Returns the size of the generated chart. | |
119 * | |
120 * @return the size of the generated chart. | |
121 */ | |
122 protected abstract int[] getSize(); | |
123 } | 112 } |
124 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : | 113 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |