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: 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: */ 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: christian@3091: if(func != null) { christian@3091: double maxQ = func.getMaxQ(); christian@3081: christian@3091: if(maxQ > 0) { christian@3091: XYSeries series = DatasetUtilities.sampleFunction2DToSeries( christian@3091: new Function2DAdapter(func.getFunction()), christian@3091: 0, // start christian@3091: maxQ, // end christian@3091: 500, // number of samples christian@3091: aaf.getFacetDescription()); christian@3091: addAxisSeries(series, 0, visible); christian@3091: } christian@3091: } christian@3091: else { christian@3091: logger.debug("doOut: func == null"); 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 :