christian@3067: package de.intevation.flys.exports.fixings; christian@3067: christian@3067: import de.intevation.artifactdatabase.state.ArtifactAndFacet; christian@3067: christian@3067: import de.intevation.flys.artifacts.model.FacetTypes; christian@3067: christian@3081: import de.intevation.flys.artifacts.model.fixings.FixDerivateFacet; christian@3067: import de.intevation.flys.artifacts.model.fixings.FixFunction; christian@3067: christian@3067: import de.intevation.flys.exports.ChartGenerator; christian@3067: sascha@3215: import de.intevation.flys.jfree.JFreeUtil; sascha@3215: import de.intevation.flys.jfree.StyledXYSeries; christian@3067: christian@3067: import org.apache.log4j.Logger; christian@3067: christian@3067: import org.w3c.dom.Document; christian@3067: christian@3067: /** christian@3067: * Generator for fixation derived function curve. christian@3067: * christian@3067: * @author Christian Lins christian@3067: */ sascha@3076: public class FixDerivedCurveGenerator raimund@3088: extends FixChartGenerator christian@3067: implements FacetTypes christian@3067: { sascha@3076: private static Logger logger = christian@3067: Logger.getLogger(FixDerivedCurveGenerator.class); christian@3067: christian@3067: public static final String I18N_CHART_TITLE = christian@3067: "chart.fixings.derived.title"; christian@3067: sascha@3076: public static final String I18N_CHART_SUBTITLE = christian@3067: "chart.fixings.derived.subtitle"; christian@3067: christian@3067: public static final String I18N_XAXIS_LABEL = christian@3067: "chart.fixings.derived.xaxis.label"; christian@3067: sascha@3076: public static final String I18N_YAXIS_LABEL = christian@3067: "chart.fixings.derived.yaxis.label"; christian@3067: sascha@3076: public static final String I18N_CHART_TITLE_DEFAULT = christian@3067: "Ableitungskurve"; christian@3067: christian@3067: public static final String I18N_XAXIS_LABEL_DEFAULT = christian@3067: "Q [m\u00B3/s]"; christian@3067: christian@3067: public static final String I18N_YAXIS_LABEL_DEFAULT = christian@3067: "W [NN + m]"; christian@3067: christian@3067: public static enum YAXIS { christian@3067: W(0), christian@3067: Q(1); christian@3067: public int idx; christian@3067: private YAXIS(int c) { christian@3067: idx = c; sascha@3076: } christian@3067: } christian@3067: christian@3067: christian@3067: @Override christian@3067: public void doOut(ArtifactAndFacet aaf, Document doc, boolean visible) { christian@3067: logger.debug("doOut"); christian@3067: christian@3081: FixDerivateFacet facet = (FixDerivateFacet)aaf.getFacet(); christian@3081: FixFunction func = (FixFunction)facet.getData( raimund@3088: aaf.getArtifact(), context); christian@3091: sascha@3215: if (func == null) { sascha@3215: logger.warn("doOut: Facet does not contain FixFunction"); sascha@3215: return; sascha@3215: } sascha@3110: sascha@3215: double maxQ = func.getMaxQ(); sascha@3215: sascha@3215: if (maxQ > 0) { sascha@3215: StyledXYSeries series = JFreeUtil.sampleFunction2D( sascha@3215: func.getFunction(), sascha@3215: doc, sascha@3215: aaf.getFacetDescription(), sascha@3215: 500, // number of samples sascha@3215: 0.0 , // start sascha@3215: maxQ); // end sascha@3215: addAxisSeries(series, 0, visible); christian@3067: } christian@3067: } christian@3067: christian@3067: christian@3067: @Override christian@3067: protected String getDefaultChartTitle() { christian@3067: return msg(I18N_CHART_TITLE, I18N_CHART_TITLE_DEFAULT); christian@3067: } christian@3067: christian@3067: christian@3067: @Override christian@3067: protected String getDefaultXAxisLabel() { christian@3067: return msg(I18N_XAXIS_LABEL, I18N_XAXIS_LABEL_DEFAULT); christian@3067: } christian@3067: christian@3067: christian@3067: @Override christian@3067: protected String getDefaultYAxisLabel(int pos) { sascha@3076: return msg(I18N_YAXIS_LABEL, I18N_YAXIS_LABEL_DEFAULT); christian@3067: } christian@3067: christian@3067: christian@3067: @Override christian@3067: protected ChartGenerator.YAxisWalker getYAxisWalker() { christian@3067: return new YAxisWalker() { christian@3067: @Override christian@3067: public int length() { christian@3067: return YAXIS.values().length; christian@3067: } christian@3067: christian@3067: @Override christian@3067: public String getId(int idx) { christian@3067: YAXIS[] yaxes = YAXIS.values(); christian@3067: return yaxes[idx].toString(); christian@3067: } christian@3067: }; christian@3067: } christian@3067: } christian@3067: christian@3067: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :