Mercurial > dive4elements > river
diff 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 |
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/exports/DiagramGenerator.java Mon Sep 23 12:21:59 2013 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/exports/DiagramGenerator.java Mon Sep 23 12:28:22 2013 +0200 @@ -10,7 +10,9 @@ import java.awt.Color; import java.awt.Font; + import java.text.NumberFormat; + import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -19,39 +21,45 @@ import javax.swing.ImageIcon; import org.apache.log4j.Logger; + +import org.dive4elements.artifactdatabase.state.ArtifactAndFacet; +import org.dive4elements.artifactdatabase.state.Facet; + +import org.dive4elements.river.artifacts.D4EArtifact; + +import org.dive4elements.river.exports.process.Processor; + +import org.dive4elements.river.jfree.AnnotationHelper; +import org.dive4elements.river.jfree.AxisDataset; +import org.dive4elements.river.jfree.Bounds; +import org.dive4elements.river.jfree.DoubleBounds; +import org.dive4elements.river.jfree.StyledAreaSeriesCollection; + +import org.dive4elements.river.themes.ThemeDocument; + import org.jfree.chart.ChartFactory; import org.jfree.chart.JFreeChart; import org.jfree.chart.LegendItem; + import org.jfree.chart.annotations.XYAnnotation; import org.jfree.chart.annotations.XYImageAnnotation; -import org.jfree.chart.annotations.XYTextAnnotation; + +import org.jfree.chart.axis.LogarithmicAxis; import org.jfree.chart.axis.NumberAxis; import org.jfree.chart.axis.ValueAxis; -import org.jfree.chart.axis.LogarithmicAxis; + import org.jfree.chart.plot.Marker; import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.plot.XYPlot; + import org.jfree.data.Range; + import org.jfree.data.general.Series; + import org.jfree.data.xy.XYDataset; import org.jfree.data.xy.XYSeries; import org.jfree.data.xy.XYSeriesCollection; -import org.dive4elements.artifactdatabase.state.ArtifactAndFacet; -import org.dive4elements.artifactdatabase.state.Facet; -import org.dive4elements.river.artifacts.D4EArtifact; -import org.dive4elements.river.exports.process.Processor; -import org.dive4elements.river.jfree.AxisDataset; -import org.dive4elements.river.jfree.AnnotationHelper; -import org.dive4elements.river.jfree.Bounds; -import org.dive4elements.river.jfree.CollisionFreeXYTextAnnotation; -import org.dive4elements.river.jfree.DoubleBounds; -import org.dive4elements.river.jfree.RiverAnnotation; -import org.dive4elements.river.jfree.StyledAreaSeriesCollection; -import org.dive4elements.river.jfree.StyledXYSeries; -import org.dive4elements.river.themes.ThemeDocument; - -import org.w3c.dom.Element; /** * The main diagram creation class. @@ -90,7 +98,7 @@ /** Whether or not the plot is inverted (left-right). */ private boolean inverted; - protected DiagramAttributes diagramAttributes; + protected DiagramAttributes.Instance diagramAttributes; public DiagramGenerator() { super(); @@ -101,12 +109,13 @@ @Override public void setup(Object config) { - Element cfg = (Element)config; - logger.debug("DiagramGenerator.setup"); - // TODO: XML DOM is not thread safe! We have to re-factor this. - synchronized (cfg.getOwnerDocument()) { - diagramAttributes = new DiagramAttributes(cfg); + + if (!(config instanceof DiagramAttributes)) { + logger.error("invalid config type"); + return; } + DiagramAttributes da = (DiagramAttributes)config; + diagramAttributes = da.new Instance(); } /**