Mercurial > dive4elements > river
changeset 9492:10530f1d7dd5
Meilenstein-2-Rücklauf Punkt 2.2.4 Angabe des Bezugspegels
author | gernotbelger |
---|---|
date | Thu, 20 Sep 2018 14:00:30 +0200 |
parents | d7d22ea8573d |
children | 7c3d689294e8 |
files | artifacts/doc/conf/jasper/templates/sinfo.floodduration.jrxml artifacts/doc/conf/jasper/templates/sinfo.floodduration2.jrxml artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flood_duration/FloodDurationCalculationResult.java artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flood_duration/FloodDurationCalculator.java artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flood_duration/FloodDurationExporter.java |
diffstat | 5 files changed, 50 insertions(+), 31 deletions(-) [+] |
line wrap: on
line diff
--- a/artifacts/doc/conf/jasper/templates/sinfo.floodduration.jrxml Wed Sep 19 17:53:53 2018 +0200 +++ b/artifacts/doc/conf/jasper/templates/sinfo.floodduration.jrxml Thu Sep 20 14:00:30 2018 +0200 @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Created with Jaspersoft Studio version 6.5.1.final using JasperReports Library version 4.5.0 --> -<!-- 2018-07-31T13:53:40 --> +<!-- Created with Jaspersoft Studio version 6.6.0.final using JasperReports Library version 4.5.0 --> +<!-- 2018-09-20T13:25:41 --> <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="flysreport" language="groovy" pageWidth="842" pageHeight="595" orientation="Landscape" columnWidth="762" leftMargin="60" rightMargin="20" topMargin="20" bottomMargin="20"> <property name="ireport.zoom" value="1.0"/> <property name="ireport.x" value="0"/> @@ -219,7 +219,7 @@ <textFieldExpression><![CDATA[$F{meta:bezeichnung_1_header}]]></textFieldExpression> </textField> <textField isStretchWithOverflow="true"> - <reportElement key="" style="htmlStyle" positionType="Float" stretchType="RelativeToBandHeight" x="600" y="0" width="70" height="24"/> + <reportElement key="gauge_header" style="htmlStyle" positionType="Float" stretchType="RelativeToBandHeight" x="600" y="0" width="70" height="24"/> <box padding="5"/> <textElement textAlignment="Left" verticalAlignment="Bottom"/> <textFieldExpression><![CDATA[$F{meta:gauge_header}]]></textFieldExpression> @@ -345,7 +345,7 @@ <textFieldExpression><![CDATA[$F{data:9}]]></textFieldExpression> </textField> <textField isStretchWithOverflow="true" isBlankWhenNull="true"> - <reportElement key="" style="htmlStyle" positionType="Float" stretchType="RelativeToBandHeight" x="600" y="0" width="70" height="15"/> + <reportElement key="gauge_header" style="htmlStyle" positionType="Float" stretchType="RelativeToBandHeight" x="600" y="0" width="70" height="15"/> <box topPadding="2" leftPadding="5" bottomPadding="0" rightPadding="5"> <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
--- a/artifacts/doc/conf/jasper/templates/sinfo.floodduration2.jrxml Wed Sep 19 17:53:53 2018 +0200 +++ b/artifacts/doc/conf/jasper/templates/sinfo.floodduration2.jrxml Thu Sep 20 14:00:30 2018 +0200 @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Created with Jaspersoft Studio version 6.5.1.final using JasperReports Library version 4.5.0 --> -<!-- 2018-07-31T13:53:38 --> +<!-- Created with Jaspersoft Studio version 6.6.0.final using JasperReports Library version 4.5.0 --> +<!-- 2018-09-20T13:27:46 --> <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="flysreport" language="groovy" pageWidth="842" pageHeight="595" orientation="Landscape" columnWidth="762" leftMargin="60" rightMargin="20" topMargin="20" bottomMargin="20"> <property name="ireport.zoom" value="1.0"/> <property name="ireport.x" value="0"/> @@ -267,7 +267,7 @@ <textFieldExpression><![CDATA[$F{meta:bezeichnung_3_header}]]></textFieldExpression> </textField> <textField isStretchWithOverflow="true"> - <reportElement key="" style="htmlStyle" positionType="Float" stretchType="RelativeToBandHeight" x="684" y="0" width="50" height="24"/> + <reportElement key="gauge_header" style="htmlStyle" positionType="Float" stretchType="RelativeToBandHeight" x="684" y="0" width="50" height="24"/> <box padding="2"/> <textElement textAlignment="Left" verticalAlignment="Bottom"/> <textFieldExpression><![CDATA[$F{meta:gauge_header}]]></textFieldExpression> @@ -481,7 +481,7 @@ <textFieldExpression><![CDATA[$F{data:17}]]></textFieldExpression> </textField> <textField isStretchWithOverflow="true" isBlankWhenNull="true"> - <reportElement key="" style="htmlStyle" positionType="Float" stretchType="RelativeToBandHeight" x="684" y="0" width="50" height="15"/> + <reportElement key="gauge_header" style="htmlStyle" positionType="Float" stretchType="RelativeToBandHeight" x="684" y="0" width="50" height="15"/> <box padding="2"> <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flood_duration/FloodDurationCalculationResult.java Wed Sep 19 17:53:53 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flood_duration/FloodDurationCalculationResult.java Thu Sep 20 14:00:30 2018 +0200 @@ -55,6 +55,8 @@ private static final long serialVersionUID = 1L; + private final boolean isUseWspl; + private final String[] waterlevelLabels; private final int maxWaterlevelPdf = 3; @@ -67,9 +69,10 @@ pdf, csv } - public FloodDurationCalculationResult(final String label, final String[] mainvalueLabels, final Collection<ResultRow> rows) { + public FloodDurationCalculationResult(final String label, final String[] mainvalueLabels, final Collection<ResultRow> rows, final boolean isUseWspl) { super(label, rows); this.waterlevelLabels = mainvalueLabels; + this.isUseWspl = isUseWspl; } /** @@ -112,7 +115,7 @@ protected String[] formatRow(final AbstractExportContext exportContextCSV, final ResultRow row, final ExportMode mode) { - final Collection<String> lines = new ArrayList<>(10); + final Collection<String> lines = new ArrayList<>(20); lines.add(exportContextCSV.formatRowValue(row, GeneralResultType.station)); lines.add(exportContextCSV.formatRowValue(row, SInfoResultType.riverside)); @@ -122,25 +125,33 @@ lines.add(exportContextCSV.formatRowValue(row, SInfoResultType.infrastructuretype)); final List<DurationWaterlevel> waterlevelList = (List<DurationWaterlevel>) row.getValue(SInfoResultType.customMultiRowColWaterlevel); - if (waterlevelList != null) { - final NumberFormat wFormatter = exportContextCSV.getFlowDepthFormatter(); - final NumberFormat qFormatter = exportContextCSV.getQFormatter(); - final NumberFormat durFormatter = exportContextCSV.getFloodDurationFormatter(); - - for (int i = 0; i < waterlevelList.size(); i++) { - if (i == this.maxWaterlevelPdf && mode == ExportMode.pdf) - break; + final int expectedSizetoGaugelabel = lines.size() + (waterlevelList.size() < 2 ? 4 : 12); // removing columns only works for fixed + // indices - final DurationWaterlevel item = waterlevelList.get(i); - lines.add(item.getWFormatted(wFormatter)); - lines.add(item.getFloodDurDaysPerYearFormatted(durFormatter)); - lines.add(item.getQFormatted(qFormatter)); - lines.add(item.getBezeichnung()); - } + final NumberFormat wFormatter = exportContextCSV.getFlowDepthFormatter(); + final NumberFormat qFormatter = exportContextCSV.getQFormatter(); + final NumberFormat durFormatter = exportContextCSV.getFloodDurationFormatter(); + + for (int i = 0; i < waterlevelList.size(); i++) { + + if (i == this.maxWaterlevelPdf && mode == ExportMode.pdf) + break; + + final DurationWaterlevel item = waterlevelList.get(i); + lines.add(item.getWFormatted(wFormatter)); + lines.add(item.getFloodDurDaysPerYearFormatted(durFormatter)); + lines.add(item.getQFormatted(qFormatter)); + lines.add(item.getBezeichnung()); } - lines.add(exportContextCSV.formatRowValue(row, GeneralResultType.gaugeLabel)); + final int lineSize = lines.size(); + while (mode == ExportMode.pdf && lines.size() < expectedSizetoGaugelabel) + lines.add(""); + + if (isUseWspl() || mode == ExportMode.pdf) + lines.add(exportContextCSV.formatRowValue(row, GeneralResultType.gaugeLabel)); // PDF: necessary, because if removed, location would not be shown! + lines.add(exportContextCSV.formatRowValue(row, GeneralResultType.location)); return lines.toArray(new String[lines.size()]); @@ -169,7 +180,9 @@ header.add(exportContextCSV.msg(DurationWaterlevel.getHeaderBezeichnCsv(), appendIndex)); } - header.add(exportContextCSV.formatCsvHeader(GeneralResultType.gaugeLabel)); + if (isUseWspl()) + header.add(exportContextCSV.formatCsvHeader(GeneralResultType.gaugeLabel)); + header.add(exportContextCSV.formatCsvHeader(GeneralResultType.location)); exportContextCSV.writeCSVLine(header.toArray(new String[header.size()])); @@ -265,4 +278,8 @@ return new double[][] { xPoints.toNativeArray(), yPoints.toNativeArray() }; } + + public boolean isUseWspl() { + return this.isUseWspl; + } } \ No newline at end of file
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flood_duration/FloodDurationCalculator.java Wed Sep 19 17:53:53 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flood_duration/FloodDurationCalculator.java Thu Sep 20 14:00:30 2018 +0200 @@ -66,8 +66,8 @@ /** * Calculate the infrastructures flood duration result rows */ - public void execute(final Calculation problems, final String label, final DoubleRange calcRange, final RiversideChoiceKey riverside, - final boolean withWspl, final WINFOArtifact winfo, final FloodDurationCalculationResults results) { + public void execute(final Calculation problems, final String label, final DoubleRange calcRange, final RiversideChoiceKey riverside, final boolean withWspl, + final WINFOArtifact winfo, final FloodDurationCalculationResults results) { // Find all gauges of the calc range, and create the duration finders final Map<Gauge, GaugeDurationValuesFinder> durFinders = new HashMap<>(); @@ -121,7 +121,7 @@ for (int i = 0; i <= wqkmsArray.length - 1; i++) wstLabels[i] = wqkmsArray[i].getName(); - results.addResult(new FloodDurationCalculationResult(label, wstLabels, this.rows), problems); + results.addResult(new FloodDurationCalculationResult(label, wstLabels, this.rows, withWspl), problems); } /** @@ -145,8 +145,7 @@ if (qpos != null) { ows[j] = wst.interpolateW(station, qpos, problems); oqs[j] = wst.getQ(qpos, station); - } - else { + } else { ows[j] = Double.NaN; oqs[j] = qs[i]; }
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flood_duration/FloodDurationExporter.java Wed Sep 19 17:53:53 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flood_duration/FloodDurationExporter.java Thu Sep 20 14:00:30 2018 +0200 @@ -75,5 +75,8 @@ design.removeColumn("bezOpt"); design.removeColumn("durOpt"); } + + if (!result.isUseWspl()) + design.removeColumn("gauge_header"); } } \ No newline at end of file