Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/exports/NormalizedReferenceCurveGenerator.java @ 2408:8e2ae8813a06
'Bezugslinien': normalized reference curve is now derived from reference curve.
flys-artifacts/trunk@4037 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Fri, 10 Feb 2012 16:25:27 +0000 |
parents | 1fcaeced48f2 |
children | 3dc26ec2558d |
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/exports/NormalizedReferenceCurveGenerator.java Fri Feb 10 16:00:57 2012 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/exports/NormalizedReferenceCurveGenerator.java Fri Feb 10 16:25:27 2012 +0000 @@ -1,259 +1,42 @@ package de.intevation.flys.exports; -import org.w3c.dom.Document; - -import java.awt.Font; - import org.apache.log4j.Logger; -import org.jfree.chart.JFreeChart; -import org.jfree.chart.axis.NumberAxis; -import org.jfree.chart.title.TextTitle; - -import org.jfree.data.xy.XYSeries; - -import de.intevation.artifactdatabase.state.ArtifactAndFacet; - -import de.intevation.flys.artifacts.model.FacetTypes; -import de.intevation.flys.artifacts.model.WW; -import de.intevation.flys.artifacts.model.WW.ApplyFunctionIterator; -import de.intevation.flys.artifacts.model.WWAxisTypes; - -import de.intevation.flys.jfree.StyledXYSeries; - - /** * An OutGenerator that generates reference curves. */ public class NormalizedReferenceCurveGenerator -extends XYChartGenerator -implements FacetTypes +extends ReferenceCurveGenerator { - public static enum YAXIS { - W_M(0), - W_CM(1); - - public int idx; - private YAXIS(int c) { - idx = c; - } - } - /** House logger. */ private static Logger logger = Logger.getLogger(NormalizedReferenceCurveGenerator.class); - public static final String I18N_CHART_TITLE = - "chart.reference.curve.title"; - - public static final String I18N_CHART_SUBTITLE = - "chart.reference.curve.subtitle"; - - public static final String W_CM_DEFAULT = - "chart.reference.curve.wcm"; - - public static final String W_NNM_DEFAULT = - "chart.reference.curve.wnn"; - - public static final String START_GAUGE = - "chart.reference.curve.start_at_gauge"; - - public static final String START_FREE = - "chart.reference.curve.start_free"; + public static final String I18N_NORMALIZED_CHART_TITLE = + "chart.normalized.reference.curve.title"; - /* - - public static final String I18N_XAXIS_LABEL = - "chart.reference.curve.xaxis.label"; - - public static final String I18N_YAXIS_LABEL = - "chart.reference.curve.yaxis.label"; -*/ -/* - public static final String I18N_XAXIS_LABEL_DEFAULT = - "W [NN + m]"; - - public static final String I18N_YAXIS_LABEL_DEFAULT = - "W [NN + m]"; - */ - - - public static final String I18N_CHART_TITLE_DEFAULT = - "Bezugslinie"; - + public static final String I18N_NORMALIZED_CHART_TITLE_DEFAULT = + "Reduzierte Bezugslinie"; public NormalizedReferenceCurveGenerator() { - super(); } - - /** - * Create Axis for given index. - * @return axis with according internationalized label. - */ - @Override - protected NumberAxis createYAxis(int index) { - Font labelFont = new Font("Tahoma", Font.BOLD, 14); - String label = getYAxisLabel(index); - - NumberAxis axis = createNumberAxis(index, label); - // TODO aspect-ratio settings. - /* - if (index == YAXIS.W_M.idx) { - axis.setAutoRangeIncludesZero(false); - } - */ - axis.setAutoRangeIncludesZero(false); - axis.setLabelFont(labelFont); - return axis; - } - - /** Get default chart title. */ @Override protected String getDefaultChartTitle() { - return msg(I18N_CHART_TITLE, I18N_CHART_TITLE_DEFAULT); + return msg( + I18N_NORMALIZED_CHART_TITLE, + I18N_NORMALIZED_CHART_TITLE_DEFAULT); } @Override - protected String getDefaultChartSubtitle() { - Object[] args = new Object[] { - getRiverName(), - }; - - return msg(I18N_CHART_SUBTITLE, "", args); - } - - - @Override - protected void addSubtitles(JFreeChart chart) { - String subtitle = getChartSubtitle(); - - if (subtitle != null && subtitle.length() > 0) { - chart.addSubtitle(new TextTitle(subtitle)); - } - } - - - /** Get Label for X-axis (W). */ - @Override - protected String getDefaultXAxisLabel() { - // TODO i18nreturn msg(I18N_XAXIS_LABEL, I18N_XAXIS_LABEL_DEFAULT); - // at_gauge + w_cm - return "W am Bezugsort- oder Pegel."; - } - - - /** - * Get Label for primary and other Y Axes. - * @param index Axis-Index (0-based). - */ - @Override - protected String getDefaultYAxisLabel(int index) { - String label = "default"; - if (index == YAXIS.W_M.idx) { - //label = msg(I18N_YAXIS_LABEL, I18N_YAXIS_LABEL_DEFAULT); - //TODO i18n - return "W am Zielort"; - } - else if (index == YAXIS.W_CM.idx) { - return "W am Zielpegel"; - } - - return label; + protected String facetName() { + return REFERENCE_CURVE_NORMALIZED; } - - /** - * Called for each facet/them in the out mapped to this generator. - * @param artifactFacet artifact and facet for this theme. - * @param theme styling info. - * @param visible Whether or not the theme is visible. - */ @Override - public void doOut( - ArtifactAndFacet artifactFacet, - Document theme, - boolean visible - ) { - String name = artifactFacet.getFacetName(); - - logger.debug("NormalizedReferenceCurveGenerator.doOut: " + name); - - if (name == null || name.length() == 0) { - logger.error("No facet given. Cannot create dataset."); - return; - } - - if (name.equals(REFERENCE_CURVE_NORMALIZED)) { - doReferenceOut(artifactFacet.getData(context), theme, visible); - } - else if (FacetTypes.IS.MANUALPOINTS(name)) { - doPoints( - artifactFacet.getData(context), - artifactFacet, - theme, - visible, YAXIS.W_M.idx); - } - else { - logger.warn("Unknown facet name: " + name); - return; - } - } - - - /** Register DataSeries with (maybe transformed) points. */ - public void doReferenceOut( - Object data, - Document theme, - boolean visible - ) { - WW ww = (WW)data; - - Object obj = context.getContextValue("reference.curve.axis.scale"); - - WWAxisTypes wwat = obj instanceof WWAxisTypes - ? (WWAxisTypes)obj - : new WWAxisTypes(ww); - - ApplyFunctionIterator iter = wwat.transform(ww, true); - - XYSeries series = new StyledXYSeries( - ww.getName(), false, theme); - - double [] values = new double[2]; - - while (iter.hasNext()) { - iter.next(values); - series.add(values[0], values[1], false); - } - - if (ww.endAtGauge()) { - addAxisSeries(series, YAXIS.W_M.idx, visible); - } - else { - addAxisSeries(series, YAXIS.W_CM.idx, visible); - } - } - - - /** Get Walker to iterate over all axes. */ - @Override - protected YAxisWalker getYAxisWalker() { - return new YAxisWalker() { - /** Get number of items. */ - @Override - public int length() { - return YAXIS.values().length; - } - - /** Get identifier for this index. */ - @Override - public String getId(int idx) { - YAXIS[] yaxes = YAXIS.values(); - return yaxes[idx].toString(); - } - }; + protected boolean doNormalize() { + return true; } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :