ingo@2215: package de.intevation.flys.exports; ingo@2215: ingo@2215: import java.awt.Font; ingo@2215: ingo@2215: import org.w3c.dom.Document; ingo@2215: ingo@2215: import org.apache.log4j.Logger; ingo@2215: ingo@2215: import org.jfree.chart.JFreeChart; ingo@2215: import org.jfree.chart.axis.NumberAxis; ingo@2215: ingo@2215: import de.intevation.artifactdatabase.state.ArtifactAndFacet; ingo@2215: ingo@2215: import de.intevation.flys.artifacts.FLYSArtifact; ingo@2215: import de.intevation.flys.artifacts.model.FacetTypes; ingo@2215: ingo@2215: ingo@2215: /** ingo@2215: * @author Ingo Weinzierl ingo@2215: */ ingo@2215: public class HistoricalDischargeCurveGenerator ingo@2215: extends XYChartGenerator ingo@2215: implements FacetTypes ingo@2215: { ingo@2215: private static Logger logger = ingo@2215: Logger.getLogger(HistoricalDischargeCurveGenerator.class); ingo@2215: ingo@2215: ingo@2215: public static enum YAXIS { ingo@2215: Q(0); ingo@2215: protected int idx; ingo@2215: private YAXIS(int c) { ingo@2215: idx = c; ingo@2215: } ingo@2215: } ingo@2215: ingo@2215: ingo@2215: @Override ingo@2215: protected YAxisWalker getYAxisWalker() { ingo@2215: return new YAxisWalker() { ingo@2215: @Override ingo@2215: public int length() { ingo@2215: return YAXIS.values().length; ingo@2215: } ingo@2215: ingo@2215: @Override ingo@2215: public String getId(int idx) { ingo@2215: YAXIS[] yaxes = YAXIS.values(); ingo@2215: return yaxes[idx].toString(); ingo@2215: } ingo@2215: }; ingo@2215: } ingo@2215: ingo@2215: ingo@2215: @Override ingo@2215: protected String getDefaultChartTitle() { ingo@2215: return "TODO: CHART TITLE"; ingo@2215: } ingo@2215: ingo@2215: ingo@2215: /** ingo@2215: * Empty (suppress subtitle). ingo@2215: */ ingo@2215: @Override ingo@2215: protected void addSubtitles(JFreeChart chart) { ingo@2215: // this chart has no subtitle ingo@2215: } ingo@2215: ingo@2215: ingo@2215: @Override ingo@2215: protected String getDefaultXAxisLabel() { ingo@2215: return "TODO: DEFAULT X AXIS LABEL"; ingo@2215: } ingo@2215: ingo@2215: @Override ingo@2215: protected String getDefaultYAxisLabel(int pos) { ingo@2215: return "TODO: DEFAULT Y AXIS LABEL FOR: " + pos; ingo@2215: } ingo@2215: ingo@2215: ingo@2215: /** ingo@2215: * Creates a new Y-Axis. ingo@2215: * ingo@2215: * @param index the index of the Y axis. ingo@2215: * ingo@2215: * @return an new NumberAxis with label from getYAxisLabel(). ingo@2215: */ ingo@2215: @Override ingo@2215: protected NumberAxis createYAxis(int index) { ingo@2215: Font labelFont = new Font("Tahoma", Font.BOLD, 14); ingo@2215: String label = "default"; ingo@2215: ingo@2215: if (index == YAXIS.Q.idx) { ingo@2215: label = getYAxisLabel(0); ingo@2215: } ingo@2215: ingo@2215: NumberAxis axis = createNumberAxis(index, label); ingo@2215: axis.setLabelFont(labelFont); ingo@2215: axis.setAutoRangeIncludesZero(false); ingo@2215: ingo@2215: return axis; ingo@2215: } ingo@2215: ingo@2215: ingo@2215: public void doOut( ingo@2215: ArtifactAndFacet artifactFacet, ingo@2215: Document theme, ingo@2215: boolean visible ingo@2215: ) { ingo@2215: String name = artifactFacet.getFacetName(); ingo@2215: logger.debug("HistoricalDischargeCurveGenerator.doOut: " + name); ingo@2215: ingo@2215: ingo@2215: if (name.equals(HISTORICAL_DISCHARGE_Q)) { ingo@2215: doHistoricalDischargeOut( ingo@2215: (FLYSArtifact) artifactFacet.getArtifact(), ingo@2215: artifactFacet.getData(context), ingo@2215: artifactFacet.getFacetDescription(), ingo@2215: theme, ingo@2215: visible); ingo@2215: } ingo@2215: else { ingo@2215: logger.warn("doOut(): unknown facet name: " + name); ingo@2215: return; ingo@2215: } ingo@2215: } ingo@2215: ingo@2215: ingo@2215: protected void doHistoricalDischargeOut( ingo@2215: FLYSArtifact artifact, ingo@2215: Object data, ingo@2215: String desc, ingo@2215: Document theme, ingo@2215: boolean visible) ingo@2215: { ingo@2215: logger.debug("doHistoricalDischargeOut(): description = " + desc); ingo@2215: logger.warn("TODO IMPLEMENT ME"); ingo@2215: } ingo@2215: } ingo@2215: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :