# HG changeset patch # User Felix Wolfsteller # Date 1319809177 0 # Node ID e0e5a5b51a40291a69c9107ad521019f3840bc7d # Parent d3a0d55dff63036b91006e3dbdb4b7d0a84269d5 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation). flys-artifacts/trunk@3114 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r d3a0d55dff63 -r e0e5a5b51a40 flys-artifacts/ChangeLog --- a/flys-artifacts/ChangeLog Fri Oct 28 12:41:10 2011 +0000 +++ b/flys-artifacts/ChangeLog Fri Oct 28 13:39:37 2011 +0000 @@ -1,3 +1,16 @@ +2011-10-28 Felix Wolfsteller + + Refactored, added StyledSeriesBuilder to unify adding points to + XYSeries. + + * src/main/java/de/intevation/flys/exports/StyledSeriesBuilder.java: + New class to help with adding points to XYSeries. + + * src/main/java/de/intevation/flys/exports/CrossSectionGenerator.java, + src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java, + src/main/java/de/intevation/flys/exports/WDifferencesCurveGenerator.java: + Use StyledSeriesBuilder to add points to series. + 2011-10-28 Felix Wolfsteller Added DC-conf, such that static data can be loaded from w-difference diff -r d3a0d55dff63 -r e0e5a5b51a40 flys-artifacts/src/main/java/de/intevation/flys/exports/CrossSectionGenerator.java --- a/flys-artifacts/src/main/java/de/intevation/flys/exports/CrossSectionGenerator.java Fri Oct 28 12:41:10 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/exports/CrossSectionGenerator.java Fri Oct 28 13:39:37 2011 +0000 @@ -192,12 +192,8 @@ // DO NOT SORT DATA! This destroys the gaps indicated by NaNs XYSeries series = new StyledXYSeries(seriesName, false, theme); - double [][] a = (double [][]) o; - double [] pxs = a[0]; - double [] pys = a[1]; - for (int i = 0; i < pxs.length; i++) { - series.add(pxs[i], pys[i]); - } + StyledSeriesBuilder.addPoints(series, (double [][]) o); + addFirstAxisSeries(series, visible); } @@ -218,12 +214,8 @@ XYSeries series = new StyledXYSeries(seriesName, theme); - double [][] a = (double [][]) o; - double [] xs = a[0]; - double [] ys = a[1]; - for (int i = 0; i < xs.length; i++) { - series.add (xs[i], ys[i], false); - } + StyledSeriesBuilder.addPoints(series, (double [][]) o); + addFirstAxisSeries(series, visible); } } diff -r d3a0d55dff63 -r e0e5a5b51a40 flys-artifacts/src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java --- a/flys-artifacts/src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java Fri Oct 28 12:41:10 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java Fri Oct 28 13:39:37 2011 +0000 @@ -343,11 +343,7 @@ XYSeries series = new StyledXYSeries(facet.getDescription(), theme); - int size = wkms.size(); - - for (int i = 0; i < size; i++) { - series.add(wkms.getKm(i), wkms.getW(i), false); - } + StyledSeriesBuilder.addPoints(series, wkms); addFirstAxisSeries(series, visible); @@ -374,21 +370,18 @@ return; } - int size = wkms.size(); XYSeries series = new StyledXYSeries(facet.getDescription(), theme); if (logger.isDebugEnabled()) { if (wkms.size() > 0) { logger.debug("Generate series: " + series.getKey()); logger.debug("Start km: " + wkms.getKm(0)); - logger.debug("End km: " + wkms.getKm(size-1)); - logger.debug("Values : " + size); + logger.debug("End km: " + wkms.getKm(wkms.size() - 1)); + logger.debug("Values : " + wkms.size()); } } - for (int i = 0; i < size; i++) { - series.add(wkms.getKm(i), wkms.getW(i)); - } + StyledSeriesBuilder.addPoints(series, wkms); addSecondAxisSeries(series, visible); if (DataUtil.guessWaterIncreasing(wkms.allWs())) { @@ -418,11 +411,7 @@ XYSeries series = new StyledXYSeries(facet.getDescription(), theme); - int size = wqkms.size(); - - for (int i = 0; i < size; i++) { - series.add(wqkms.getKm(i), wqkms.getQ(i), false); - } + StyledSeriesBuilder.addPoints(series, wqkms); addSecondAxisSeries(series, visible); diff -r d3a0d55dff63 -r e0e5a5b51a40 flys-artifacts/src/main/java/de/intevation/flys/exports/StyledSeriesBuilder.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/exports/StyledSeriesBuilder.java Fri Oct 28 13:39:37 2011 +0000 @@ -0,0 +1,68 @@ +package de.intevation.flys.exports; + +import org.apache.log4j.Logger; + +import org.jfree.data.xy.XYSeries; + +import de.intevation.flys.artifacts.model.WKms; +import de.intevation.flys.artifacts.model.WQKms; + +/** + * Helper to create and modify StyledXYSeries. + */ +public class StyledSeriesBuilder { + + private static final Logger logger = Logger.getLogger(StyledSeriesBuilder.class); + + + /** + * Trivial, hidden constructor. + */ + private StyledSeriesBuilder() {;} + + + /** + * Add points to series. + * + * @param series Series to add points to. + * @param points Points to add to series, points[0] to 1st dim, points[1] + * to 2nd dim. + */ + public static void addPoints(XYSeries series, double[][] points) { + double [] xPoints = points[0]; + double [] yPoints = points[1]; + for (int i = 0; i < xPoints.length; i++) { + series.add(xPoints[i], yPoints[i], false); + } + } + + + /** + * Add points to series (km to 1st dim, w to 2nd dim). + * + * @param series Series to add points to. + * @param points Points to add to series. + */ + public static void addPoints(XYSeries series, WKms wkms) { + int size = wkms.size(); + + for (int i = 0; i < size; i++) { + series.add(wkms.getKm(i), wkms.getW(i), false); + } + } + + /** + * Add points to series (w to 1st dim, km to 2nd dim). + * + * @param series Series to add points to. + * @param points Points to add to series. + */ + public static void addPointsKmQ(XYSeries series, WQKms wqkms) { + int size = wqkms.size(); + + for (int i = 0; i < size; i++) { + series.add(wqkms.getKm(i), wqkms.getQ(i), false); + } + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r d3a0d55dff63 -r e0e5a5b51a40 flys-artifacts/src/main/java/de/intevation/flys/exports/WDifferencesCurveGenerator.java --- a/flys-artifacts/src/main/java/de/intevation/flys/exports/WDifferencesCurveGenerator.java Fri Oct 28 12:41:10 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/exports/WDifferencesCurveGenerator.java Fri Oct 28 13:39:37 2011 +0000 @@ -182,11 +182,7 @@ XYSeries series = new StyledXYSeries(facet.getDescription(), theme); - int size = wkms.size(); - - for (int i = 0; i < size; i++) { - series.add(wkms.getKm(i), wkms.getW(i)); - } + StyledSeriesBuilder.addPoints(series, wkms); // Note: the only difference in the super-implementation // (in LongitudinalSectionGenerator) is here (adds with @@ -234,21 +230,18 @@ return; } - int size = wkms.size(); XYSeries series = new StyledXYSeries(facet.getDescription(), theme); if (logger.isDebugEnabled()) { if (wkms.size() > 0) { logger.debug("Generate series: " + series.getKey()); logger.debug("Start km: " + wkms.getKm(0)); - logger.debug("End km: " + wkms.getKm(size-1)); - logger.debug("Values : " + size); + logger.debug("End km: " + wkms.getKm(wkms.size()-1)); + logger.debug("Values : " + wkms.size()); } } - for (int i = 0; i < size; i++) { - series.add(wkms.getKm(i), wkms.getW(i)); - } + StyledSeriesBuilder.addPoints(series, wkms); addFirstAxisSeries(series, visible); if (DataUtil.guessWaterIncreasing(wkms.allWs())) {