Mercurial > dive4elements > river
comparison artifacts/src/main/java/org/dive4elements/river/exports/DiagramGenerator.java @ 7099:24f153ad1f40 generator-refactoring
Use pre-converted diagram attributes now.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Mon, 23 Sep 2013 12:28:22 +0200 |
parents | c64c04d0796e |
children | eb3a2bc5d591 |
comparison
equal
deleted
inserted
replaced
7098:7dc31a235232 | 7099:24f153ad1f40 |
---|---|
8 | 8 |
9 package org.dive4elements.river.exports; | 9 package org.dive4elements.river.exports; |
10 | 10 |
11 import java.awt.Color; | 11 import java.awt.Color; |
12 import java.awt.Font; | 12 import java.awt.Font; |
13 | |
13 import java.text.NumberFormat; | 14 import java.text.NumberFormat; |
15 | |
14 import java.util.ArrayList; | 16 import java.util.ArrayList; |
15 import java.util.HashMap; | 17 import java.util.HashMap; |
16 import java.util.List; | 18 import java.util.List; |
17 import java.util.Map; | 19 import java.util.Map; |
18 | 20 |
19 import javax.swing.ImageIcon; | 21 import javax.swing.ImageIcon; |
20 | 22 |
21 import org.apache.log4j.Logger; | 23 import org.apache.log4j.Logger; |
24 | |
25 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet; | |
26 import org.dive4elements.artifactdatabase.state.Facet; | |
27 | |
28 import org.dive4elements.river.artifacts.D4EArtifact; | |
29 | |
30 import org.dive4elements.river.exports.process.Processor; | |
31 | |
32 import org.dive4elements.river.jfree.AnnotationHelper; | |
33 import org.dive4elements.river.jfree.AxisDataset; | |
34 import org.dive4elements.river.jfree.Bounds; | |
35 import org.dive4elements.river.jfree.DoubleBounds; | |
36 import org.dive4elements.river.jfree.StyledAreaSeriesCollection; | |
37 | |
38 import org.dive4elements.river.themes.ThemeDocument; | |
39 | |
22 import org.jfree.chart.ChartFactory; | 40 import org.jfree.chart.ChartFactory; |
23 import org.jfree.chart.JFreeChart; | 41 import org.jfree.chart.JFreeChart; |
24 import org.jfree.chart.LegendItem; | 42 import org.jfree.chart.LegendItem; |
43 | |
25 import org.jfree.chart.annotations.XYAnnotation; | 44 import org.jfree.chart.annotations.XYAnnotation; |
26 import org.jfree.chart.annotations.XYImageAnnotation; | 45 import org.jfree.chart.annotations.XYImageAnnotation; |
27 import org.jfree.chart.annotations.XYTextAnnotation; | 46 |
47 import org.jfree.chart.axis.LogarithmicAxis; | |
28 import org.jfree.chart.axis.NumberAxis; | 48 import org.jfree.chart.axis.NumberAxis; |
29 import org.jfree.chart.axis.ValueAxis; | 49 import org.jfree.chart.axis.ValueAxis; |
30 import org.jfree.chart.axis.LogarithmicAxis; | 50 |
31 import org.jfree.chart.plot.Marker; | 51 import org.jfree.chart.plot.Marker; |
32 import org.jfree.chart.plot.PlotOrientation; | 52 import org.jfree.chart.plot.PlotOrientation; |
33 import org.jfree.chart.plot.XYPlot; | 53 import org.jfree.chart.plot.XYPlot; |
54 | |
34 import org.jfree.data.Range; | 55 import org.jfree.data.Range; |
56 | |
35 import org.jfree.data.general.Series; | 57 import org.jfree.data.general.Series; |
58 | |
36 import org.jfree.data.xy.XYDataset; | 59 import org.jfree.data.xy.XYDataset; |
37 import org.jfree.data.xy.XYSeries; | 60 import org.jfree.data.xy.XYSeries; |
38 import org.jfree.data.xy.XYSeriesCollection; | 61 import org.jfree.data.xy.XYSeriesCollection; |
39 | 62 |
40 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet; | |
41 import org.dive4elements.artifactdatabase.state.Facet; | |
42 import org.dive4elements.river.artifacts.D4EArtifact; | |
43 import org.dive4elements.river.exports.process.Processor; | |
44 import org.dive4elements.river.jfree.AxisDataset; | |
45 import org.dive4elements.river.jfree.AnnotationHelper; | |
46 import org.dive4elements.river.jfree.Bounds; | |
47 import org.dive4elements.river.jfree.CollisionFreeXYTextAnnotation; | |
48 import org.dive4elements.river.jfree.DoubleBounds; | |
49 import org.dive4elements.river.jfree.RiverAnnotation; | |
50 import org.dive4elements.river.jfree.StyledAreaSeriesCollection; | |
51 import org.dive4elements.river.jfree.StyledXYSeries; | |
52 import org.dive4elements.river.themes.ThemeDocument; | |
53 | |
54 import org.w3c.dom.Element; | |
55 | 63 |
56 /** | 64 /** |
57 * The main diagram creation class. | 65 * The main diagram creation class. |
58 * | 66 * |
59 * This class is the glue between output processors and facets. | 67 * This class is the glue between output processors and facets. |
88 protected Map<Integer, Bounds> yBounds; | 96 protected Map<Integer, Bounds> yBounds; |
89 | 97 |
90 /** Whether or not the plot is inverted (left-right). */ | 98 /** Whether or not the plot is inverted (left-right). */ |
91 private boolean inverted; | 99 private boolean inverted; |
92 | 100 |
93 protected DiagramAttributes diagramAttributes; | 101 protected DiagramAttributes.Instance diagramAttributes; |
94 | 102 |
95 public DiagramGenerator() { | 103 public DiagramGenerator() { |
96 super(); | 104 super(); |
97 | 105 |
98 xBounds = new HashMap<Integer, Bounds>(); | 106 xBounds = new HashMap<Integer, Bounds>(); |
99 yBounds = new HashMap<Integer, Bounds>(); | 107 yBounds = new HashMap<Integer, Bounds>(); |
100 } | 108 } |
101 | 109 |
102 @Override | 110 @Override |
103 public void setup(Object config) { | 111 public void setup(Object config) { |
104 Element cfg = (Element)config; | 112 |
105 logger.debug("DiagramGenerator.setup"); | 113 if (!(config instanceof DiagramAttributes)) { |
106 // TODO: XML DOM is not thread safe! We have to re-factor this. | 114 logger.error("invalid config type"); |
107 synchronized (cfg.getOwnerDocument()) { | 115 return; |
108 diagramAttributes = new DiagramAttributes(cfg); | 116 } |
109 } | 117 DiagramAttributes da = (DiagramAttributes)config; |
118 diagramAttributes = da.new Instance(); | |
110 } | 119 } |
111 | 120 |
112 /** | 121 /** |
113 * Generate the chart anew (including localized axis and all). | 122 * Generate the chart anew (including localized axis and all). |
114 */ | 123 */ |