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@3067: import de.intevation.flys.artifacts.model.fixings.FixFunction; christian@3067: christian@3067: import de.intevation.flys.exports.ChartGenerator; christian@3067: import de.intevation.flys.exports.XYChartGenerator; christian@3067: christian@3067: import de.intevation.flys.jfree.Function2DAdapter; christian@3067: christian@3067: import org.apache.log4j.Logger; christian@3067: christian@3067: import org.jfree.data.general.DatasetUtilities; sascha@3068: christian@3067: import org.jfree.data.xy.XYSeries; sascha@3068: 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: */ christian@3067: public class FixDerivedCurveGenerator christian@3067: extends XYChartGenerator christian@3067: implements FacetTypes christian@3067: { christian@3067: 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: christian@3067: 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: christian@3067: public static final String I18N_YAXIS_LABEL = christian@3067: "chart.fixings.derived.yaxis.label"; christian@3067: christian@3067: 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; christian@3067: } 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@3067: FixFunction func = (FixFunction)aaf.getData(context); christian@3067: if(func.getMaxQ() > 0) { christian@3067: XYSeries series = DatasetUtilities.sampleFunction2DToSeries( christian@3067: new Function2DAdapter(func.getFunction()), christian@3067: 0, // start christian@3067: func.getMaxQ(), // end christian@3067: 500, // number of samples christian@3067: aaf.getFacetDescription()); christian@3067: addAxisSeries(series, 0, visible); christian@3067: } christian@3067: else { christian@3067: logger.warn("doOut: func.getMaxQ() returns 0"); 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) { christian@3067: 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 :