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 :