Mercurial > dive4elements > river
diff artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/salix/SalixLineCalculation.java @ 9316:72b3270e1568
U-Info salix line with regional and supraregional scenario calculation and chart display
author | mschaefer |
---|---|
date | Thu, 26 Jul 2018 17:28:32 +0200 |
parents | 9a9f076d5716 |
children | 7b2b086e45f0 |
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/salix/SalixLineCalculation.java Thu Jul 26 17:23:49 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/salix/SalixLineCalculation.java Thu Jul 26 17:28:32 2018 +0200 @@ -10,13 +10,10 @@ package org.dive4elements.river.artifacts.uinfo.salix; import java.util.ArrayList; -import java.util.Iterator; import java.util.List; -import java.util.Map; import java.util.NavigableMap; import java.util.TreeMap; -import org.apache.commons.lang.math.DoubleRange; import org.dive4elements.artifacts.CallContext; import org.dive4elements.river.artifacts.access.RangeAccess; import org.dive4elements.river.artifacts.model.Calculation; @@ -74,7 +71,7 @@ final SalixLineCalculator calculator = new SalixLineCalculator(this.context, riverInfoProvider); final NavigableMap<Double, List<Double>> rangeScenarios = buildRangeScenarios(accessSalix); - calculator.execute(problems, uinfo, rangeScenarios, accessSalix.getScenario(), results); + calculator.execute(problems, uinfo, rangeScenarios, accessSalix.getScenario(), buildScenarioLabels(accessSalix), results); // final Collection<ResultRow> rows = new ArrayList<>(); // SalixLineCalculationNoScenarioResult result = null; // verzweigung etwas ungünstig. möglicherweise auch die @@ -153,6 +150,17 @@ return new CalculationResult(results, problems); } + // private SalixScenario findScenarioByKm(final double km, final Map<DoubleRange, SalixScenario> rangeScenarioMap) { + // final Iterator<DoubleRange> rangeIterator = rangeScenarioMap.keySet().iterator(); + // while (rangeIterator.hasNext()) { + // final DoubleRange range = rangeIterator.next(); + // if (range.containsDouble(km + 0.0001)) { + // return rangeScenarioMap.get(range); + // } + // } + // return null; + // } + /** * Build a map of delta-Ws by km-range for the selected scenario */ @@ -208,14 +216,17 @@ } } - private SalixScenario findScenarioByKm(final double km, final Map<DoubleRange, SalixScenario> rangeScenarioMap) { - final Iterator<DoubleRange> rangeIterator = rangeScenarioMap.keySet().iterator(); - while (rangeIterator.hasNext()) { - final DoubleRange range = rangeIterator.next(); - if (range.containsDouble(km + 0.0001)) { - return rangeScenarioMap.get(range); - } + /** + * Build the list of delta-w labels for the scenario type + */ + private String[] buildScenarioLabels(final SalixLineAccess access) { + final List<String> labels = new ArrayList<>(); + if (access.getScenario() == ScenarioType.REGIONAL) { + final int[] deltaws = access.getRegionalScenarioIntegers(); + for (int i = 0; i <= deltaws.length - 1; i++) + if (deltaws[i] != 0) + labels.add(Integer.toString(deltaws[i]) + " cm"); } - return null; + return labels.toArray(new String[labels.size()]); } } \ No newline at end of file