Mercurial > dive4elements > river
view flys-artifacts/src/main/java/de/intevation/flys/exports/sq/SQRelationGenerator.java @ 3099:ef0dd585b5e0
Display measurements in SQ relation charts.
flys-artifacts/trunk@4698 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Tue, 19 Jun 2012 10:26:26 +0000 |
parents | 8ad8a227d983 |
children | 9592b7d76633 |
line wrap: on
line source
package de.intevation.flys.exports.sq; import org.apache.log4j.Logger; import org.jfree.chart.axis.LogarithmicAxis; import org.jfree.chart.axis.NumberAxis; import org.jfree.data.xy.XYSeries; import org.w3c.dom.Document; import de.intevation.artifactdatabase.state.ArtifactAndFacet; import de.intevation.artifactdatabase.state.Facet; import de.intevation.flys.artifacts.model.FacetTypes; import de.intevation.flys.artifacts.model.sq.SQ; import de.intevation.flys.exports.XYChartGenerator; import de.intevation.flys.jfree.StyledXYSeries; /** * An OutGenerator that generates charts for MINFO sq relation. * * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> */ public class SQRelationGenerator extends XYChartGenerator implements FacetTypes { public enum YAXIS { S(0); protected int idx; private YAXIS(int c) { idx = c; } } /** The logger that is used in this generator. */ private static Logger logger = Logger.getLogger(SQRelationGenerator.class); @Override protected YAxisWalker getYAxisWalker() { return new YAxisWalker() { @Override public int length() { return YAXIS.values().length; } @Override public String getId(int idx) { YAXIS[] yaxes = YAXIS.values(); return yaxes[idx].toString(); } }; } @Override public String getDefaultChartTitle() { return "TODO: CHART TITLE"; } @Override protected String getDefaultXAxisLabel() { return "TODO: XAXIS LABEL"; } @Override protected String getDefaultYAxisLabel(int index) { return "TODO: YAXIS LABEL " + index; } @Override protected NumberAxis createXAxis(String label) { return new LogarithmicAxis(label); } @Override protected NumberAxis createYAxis(int index) { return new LogarithmicAxis("TODO: LABEL " + index); } @Override public void doOut( ArtifactAndFacet artifactAndFacet, Document attr, boolean visible ) { logger.debug("doOut"); Facet facet = artifactAndFacet.getFacet(); String name = facet != null ? facet.getName() : null; if (name == null || name.length() == 0) { logger.warn("Invalid facet with no name given!"); return; } if (IS.SQ_CURVE(name)) { doSQCurveOut(artifactAndFacet, attr, visible); } else if (IS.SQ_MEASUREMENT(name)) { doSQOut(artifactAndFacet, attr, visible); } else if (IS.SQ_OUTLIER(name)) { doSQOut(artifactAndFacet, attr, visible); } } protected void doSQCurveOut( ArtifactAndFacet artifactAndFacet, Document attr, boolean visible ) { logger.debug("doSQCurveOut"); logger.error("NOT IMPLEMENTED: doSQCurveOut"); } protected void doSQOut( ArtifactAndFacet artifactAndFacet, Document attr, boolean visible ) { logger.debug("doSQOut: " + artifactAndFacet.getFacetDescription()); Facet f = artifactAndFacet.getFacet(); SQ[] sqs = (SQ[]) artifactAndFacet.getData(context); XYSeries series = new StyledXYSeries(f.getDescription(), attr); for (SQ sq: sqs) { series.add(sq.getQ(), sq.getS()); } addAxisSeries(series, YAXIS.S.idx, visible); } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :