Mercurial > dive4elements > river
view flys-artifacts/src/main/java/de/intevation/flys/exports/ChartInfoGenerator.java @ 3785:a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
file:///home/clients/bsh/bsh-generischer-viewer/Material/SVN/flys-artifacts/trunk
........
r5501 | felix | 2012-09-18 11:49:45 +0200 (Di, 18 Sep 2012) | 1 line
fix issue865 - missing showarea theme prop.
........
r5502 | clins | 2012-09-18 12:18:30 +0200 (Di, 18 Sep 2012) | 1 line
Add robustness checks to prevent NPEs
........
r5504 | felix | 2012-09-18 14:03:15 +0200 (Di, 18 Sep 2012) | 1 line
i18n for area label (fix issue487).
........
r5505 | clins | 2012-09-18 16:19:59 +0200 (Di, 18 Sep 2012) | 1 line
Update themes to show point descriptions
........
r5506 | rrenkert | 2012-09-18 17:00:30 +0200 (Di, 18 Sep 2012) | 3 lines
Removed incorrect characteristic diameter.
........
r5507 | rrenkert | 2012-09-18 17:03:20 +0200 (Di, 18 Sep 2012) | 3 lines
Fixed some stupid bugs in bed quality data factory and calculation.
........
r5508 | teichmann | 2012-09-18 17:45:49 +0200 (Di, 18 Sep 2012) | 1 line
The usual whitespace and import cleanups.
........
r5511 | teichmann | 2012-09-18 18:24:51 +0200 (Di, 18 Sep 2012) | 1 line
Use generics aware Collections.emptyList().
........
r5512 | teichmann | 2012-09-18 20:36:52 +0200 (Di, 18 Sep 2012) | 1 line
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
........
r5513 | clins | 2012-09-18 23:38:19 +0200 (Di, 18 Sep 2012) | 1 line
A and B facets of fix analyis are now deactivated by default
........
r5516 | bricks | 2012-09-19 10:45:51 +0200 (Mi, 19 Sep 2012) | 2 lines
Add the gauge station to the GaugeOverviewInfoService xml response
........
r5517 | rrenkert | 2012-09-19 10:50:23 +0200 (Mi, 19 Sep 2012) | 3 lines
Added CSV export to bed quality calculation.
........
r5518 | bricks | 2012-09-19 11:04:04 +0200 (Mi, 19 Sep 2012) | 2 lines
Fix date in changelog entry
........
r5519 | teichmann | 2012-09-19 11:17:14 +0200 (Mi, 19 Sep 2012) | 1 line
Removed trailing whitespace.
........
flys-artifacts/tags/2.9.1@5531 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Wed, 19 Sep 2012 14:58:31 +0000 |
parents | 118fe1cc8cc8 |
children |
line wrap: on
line source
package de.intevation.flys.exports; import de.intevation.flys.collections.FLYSArtifactCollection; import de.intevation.flys.java2d.NOPGraphics2D; import java.io.IOException; import java.io.OutputStream; import java.awt.Transparency; import java.awt.Graphics2D; import java.awt.geom.Rectangle2D; import java.awt.image.BufferedImage; import org.w3c.dom.Document; import org.apache.log4j.Logger; import org.jfree.chart.ChartRenderingInfo; import org.jfree.chart.JFreeChart; import de.intevation.artifacts.Artifact; import de.intevation.artifacts.CallContext; import de.intevation.artifactdatabase.state.ArtifactAndFacet; import de.intevation.artifactdatabase.state.Settings; import de.intevation.artifacts.common.utils.XMLUtils; /** * An OutGenerator that generates meta information for charts. A concrete * ChartInfoGenerator need to instantiate a concrete ChartGenerator and dispatch * the methods to that instance. The only thing this ChartInfoGenerator needs * to, is to overwrite the generate() method which doesn't write the chart image * to the OutputStream but a Document that contains some meta information of the * created chart. * * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> */ public abstract class ChartInfoGenerator implements OutGenerator { public static final boolean USE_NOP_GRAPHICS = Boolean.getBoolean("info.rendering.nop.graphics"); /** The logger used in this generator.*/ private static Logger logger = Logger.getLogger(ChartInfoGenerator.class); /** The OutGenerator that creates the charts.*/ protected ChartGenerator generator; protected OutputStream out; public ChartInfoGenerator(ChartGenerator generator) { this.generator = generator; } /** * Dispatches the operation to the instantiated generator. * * @param request * @param out * @param context */ public void init(Document request, OutputStream out, CallContext context) { this.out = out; generator.init(request, out, context); } /** * Dispatches the operation to the instantiated generator. * * @param master The master artifact */ public void setMasterArtifact(Artifact master) { generator.setMasterArtifact(master); } /** * Dispatches the operation to the instantiated generator. * * @param collection The collection. */ public void setCollection(FLYSArtifactCollection collection) { generator.setCollection(collection); } /** * Dispatches the operation to the instantiated generator. */ public void doOut( ArtifactAndFacet artifactFacet, Document attr, boolean visible ) { generator.doOut(artifactFacet, attr, visible); } /** * This method generates the chart using a concrete ChartGenerator but * doesn't write the chart itself to the OutputStream but a Document that * contains meta information of the created chart. */ @Override public void generate() throws IOException { logger.debug("ChartInfoGenerator.generate"); JFreeChart chart = generator.generateChart(); int[] size = generator.getSize(); if (size == null) { size = generator.getDefaultSize(); } ChartRenderingInfo info = new ChartRenderingInfo(); long startTime = System.currentTimeMillis(); if (USE_NOP_GRAPHICS) { BufferedImage image = new BufferedImage(size[0], size[1], Transparency.BITMASK); Graphics2D g2d = image.createGraphics(); Graphics2D nop = new NOPGraphics2D(g2d); chart.draw( nop, new Rectangle2D.Double(0, 0, size[0], size[1]), null, info); nop.dispose(); } else { chart.createBufferedImage( size[0], size[1], Transparency.BITMASK, info); } long stopTime = System.currentTimeMillis(); if (logger.isDebugEnabled()) { logger.debug("Rendering info took: " + (stopTime-startTime) + "ms"); } InfoGeneratorHelper helper = new InfoGeneratorHelper(generator); Document doc = helper.createInfoDocument(chart, info); XMLUtils.toStream(doc, out); } /** * A proxy method which calls <i>generator</i>.getSettings() and returns its * return value. * * @return a Settings object provided by <i>generator</i>. */ @Override public Settings getSettings() { return generator.getSettings(); } /** * A proxy method which calls <i>generator</i>.setSettings(). * * @param settings A settings object for the <i>generator</i>. */ @Override public void setSettings(Settings settings) { generator.setSettings(settings); } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :