[PATCH 1 of 2] merged with default
Wald Commits
scm-commit at wald.intevation.org
Tue Jul 1 13:11:55 CEST 2014
# HG changeset patch
# User Raimund Renkert <rrenkert at intevation.de>
# Date 1404120585 -7200
# Branch facet-metadata
# Node ID 45cced06490c9f5309d44b857b631c7b7a75f765
# Parent 42076d94977e79fc96be28d684eaca28e96a615a
# Parent cacff0246a81473c3dc13e2d1d319e73ce6847b9
merged with default.
diff -r 42076d94977e -r 45cced06490c .hgtags
--- a/.hgtags Wed May 21 11:43:10 2014 +0200
+++ b/.hgtags Mon Jun 30 11:29:45 2014 +0200
@@ -87,3 +87,12 @@
0000000000000000000000000000000000000000 3.1.1
837b620b58b436f1eeb1a18fbe871a9de650dad5 3.1.1
242e790fb4eeb44ffec94fad9ef19fb6ca59d79f 3.1.2
+952b57b43e2fab1af900cc4019366df1378f47f9 3.1.3
+9d5385ccad0778e4867901b4e18a06a5cb90b0f6 3.1.13
+9d5385ccad0778e4867901b4e18a06a5cb90b0f6 3.1.13
+0000000000000000000000000000000000000000 3.1.13
+952b57b43e2fab1af900cc4019366df1378f47f9 3.1.3
+e0d06f4edaa6d0f3a15b8eecfe7696e825ff5062 3.1.3
+e0d06f4edaa6d0f3a15b8eecfe7696e825ff5062 3.1.3
+8333b9b06c981a231e0c92283de3bfa65b6cc0d9 3.1.3
+6fef38a526c705158f17fa16839ad216d5ec8afc 3.1.4
diff -r 42076d94977e -r 45cced06490c artifacts/contrib/find-obsolete-i18n-strings.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/artifacts/contrib/find-obsolete-i18n-strings.py Mon Jun 30 11:29:45 2014 +0200
@@ -0,0 +1,32 @@
+#!/usr/bin/env python
+
+import os
+import re
+import sys
+
+KEY_RE = re.compile(r"^\s*([^\s=]+)\s*=.*$")
+
+def main():
+ content = []
+ for root, dirs, files in os.walk('.'):
+ for f in files:
+ if not (f.endswith(".java") or f.endswith(".xml")):
+ continue
+ p = os.path.join(root, f)
+ with open(p, "rb") as jf:
+ content.append(jf.read())
+
+ content = ''.join(content)
+
+ for arg in sys.argv[1:]:
+ with open(arg, "rb") as prop:
+ for line in prop:
+ m = KEY_RE.match(line)
+ if not m:
+ continue
+ key = m.group(1)
+ if content.find(key) == -1:
+ print key
+
+if __name__ == "__main__":
+ main()
diff -r 42076d94977e -r 45cced06490c artifacts/doc/conf/artifacts/minfo.xml
--- a/artifacts/doc/conf/artifacts/minfo.xml Wed May 21 11:43:10 2014 +0200
+++ b/artifacts/doc/conf/artifacts/minfo.xml Mon Jun 30 11:29:45 2014 +0200
@@ -35,7 +35,7 @@
<transition transition="org.dive4elements.river.artifacts.transitions.ValueCompareTransition">
<from state="state.minfo.calculation_mode"/>
- <to state="state.minfo.bed.year_epoch"/>
+ <to state="state.minfo.bed.difference_select"/>
<condition data="calculation_mode" value="calc.bed.diff" operator="equal"/>
</transition>
@@ -51,10 +51,6 @@
<data name="ld_to" type="Double" />
</state>
- <state id="state.minfo.bed.year_epoch" description="state.minfo.bed.year_epoch" state="org.dive4elements.river.artifacts.states.minfo.YearEpochSelect" helpText="help.state.minfo.bed.year_epoch">
- <data name="ye_select" type="String" />
- </state>
-
<state id="state.minfo.sq.location" description="state.minfo.sq.location" state="org.dive4elements.river.artifacts.states.LocationSelect" helpText="help.state.minfo.sq.location">
<data name="ld_locations" type="double"/>
</state>
@@ -82,11 +78,6 @@
</transition>
<transition transition="org.dive4elements.river.artifacts.transitions.DefaultTransition">
- <from state="state.minfo.bed.year_epoch"/>
- <to state="state.minfo.bed.difference_select"/>
- </transition>
-
- <transition transition="org.dive4elements.river.artifacts.transitions.DefaultTransition">
<from state="state.minfo.bed.location"/>
<to state="state.minfo.bed.periods"/>
</transition>
diff -r 42076d94977e -r 45cced06490c artifacts/doc/conf/generators.xml
--- a/artifacts/doc/conf/generators.xml Wed May 21 11:43:10 2014 +0200
+++ b/artifacts/doc/conf/generators.xml Mon Jun 30 11:29:45 2014 +0200
@@ -147,8 +147,6 @@
<output-generator names="flow_velocity_export" class="org.dive4elements.river.exports.FlowVelocityExporter"/>
<output-generator names="bedheight_middle_export" class="org.dive4elements.river.exports.MiddleBedHeightExporter"/>
<output-generator names="bed_quality_export" class="org.dive4elements.river.exports.minfo.BedQualityExporter"/>
- <output-generator names="bed_difference_epoch" class="org.dive4elements.river.exports.minfo.BedDifferenceEpochGenerator"/>
- <output-generator names="bed_difference_epoch_chartinfo" class="org.dive4elements.river.exports.minfo.BedDiffEpochInfoGenerator"/>
<output-generator names="bedheight_difference_export" class="org.dive4elements.river.exports.minfo.BedDifferenceExporter"/>
<output-generator names="sq_relation_export" class="org.dive4elements.river.exports.sq.SQRelationExporter"/>
<output-generator names="sq_overview" class="org.dive4elements.river.exports.sq.SQOverviewGenerator"/>
diff -r 42076d94977e -r 45cced06490c artifacts/doc/conf/jasper/beddifference.jasper
Binary file artifacts/doc/conf/jasper/beddifference.jasper has changed
diff -r 42076d94977e -r 45cced06490c artifacts/doc/conf/jasper/beddifference.jrxml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/artifacts/doc/conf/jasper/beddifference.jrxml Mon Jun 30 11:29:45 2014 +0200
@@ -0,0 +1,156 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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="595" pageHeight="842" columnWidth="515" leftMargin="60" rightMargin="20" topMargin="20" bottomMargin="20">
+ <property name="ireport.zoom" value="1.0"/>
+ <property name="ireport.x" value="0"/>
+ <property name="ireport.y" value="0"/>
+ <field name="river" class="java.lang.String"/>
+ <field name="diff" class="java.lang.String"/>
+ <field name="date" class="java.lang.String"/>
+ <field name="calculation" class="java.lang.String"/>
+ <field name="differences" class="java.lang.String"/>
+ <field name="km" class="java.lang.String"/>
+ <field name="diffheader" class="java.lang.String"/>
+ <field name="diffpairheader" class="java.lang.String"/>
+ <field name="diffpair" class="java.lang.String"/>
+ <field name="morph1header" class="java.lang.String"/>
+ <field name="morph1" class="java.lang.String"/>
+ <field name="morph2header" class="java.lang.String"/>
+ <field name="morph2" class="java.lang.String"/>
+ <field name="kmheader" class="java.lang.String"/>
+ <background>
+ <band splitType="Stretch"/>
+ </background>
+ <title>
+ <band height="161" splitType="Stretch">
+ <staticText>
+ <reportElement x="0" y="1" width="177" height="30"/>
+ <textElement>
+ <font size="18"/>
+ </textElement>
+ <text><![CDATA[Ergebnisausgabe]]></text>
+ </staticText>
+ <textField>
+ <reportElement x="177" y="0" width="338" height="31"/>
+ <textElement>
+ <font size="18"/>
+ </textElement>
+ <textFieldExpression><![CDATA[$F{river}]]></textFieldExpression>
+ </textField>
+ <textField>
+ <reportElement x="0" y="31" width="515" height="26"/>
+ <textElement>
+ <font size="14"/>
+ </textElement>
+ <textFieldExpression><![CDATA[$F{calculation}]]></textFieldExpression>
+ </textField>
+ <staticText>
+ <reportElement x="0" y="70" width="123" height="20"/>
+ <textElement/>
+ <text><![CDATA[Gewässer:]]></text>
+ </staticText>
+ <textField>
+ <reportElement x="123" y="70" width="392" height="20"/>
+ <textElement/>
+ <textFieldExpression><![CDATA[$F{river}]]></textFieldExpression>
+ </textField>
+ <staticText>
+ <reportElement x="0" y="90" width="123" height="20"/>
+ <textElement/>
+ <text><![CDATA[Datum der Erstellung:]]></text>
+ </staticText>
+ <textField>
+ <reportElement x="123" y="90" width="392" height="20"/>
+ <textElement/>
+ <textFieldExpression><![CDATA[$F{date}]]></textFieldExpression>
+ </textField>
+ <staticText>
+ <reportElement x="0" y="109" width="123" height="20"/>
+ <textElement/>
+ <text><![CDATA[Differenzen:]]></text>
+ </staticText>
+ <textField isStretchWithOverflow="true">
+ <reportElement stretchType="RelativeToTallestObject" x="123" y="109" width="392" height="20"/>
+ <textElement/>
+ <textFieldExpression><![CDATA[$F{differences}]]></textFieldExpression>
+ </textField>
+ </band>
+ </title>
+ <columnHeader>
+ <band height="24" splitType="Stretch">
+ <line>
+ <reportElement x="0" y="19" width="515" height="1"/>
+ </line>
+ <textField>
+ <reportElement x="0" y="0" width="54" height="20"/>
+ <textElement markup="none"/>
+ <textFieldExpression><![CDATA[$F{kmheader}]]></textFieldExpression>
+ </textField>
+ <textField>
+ <reportElement x="167" y="0" width="96" height="20"/>
+ <textElement markup="none"/>
+ <textFieldExpression><![CDATA[$F{diffheader}]]></textFieldExpression>
+ </textField>
+ <textField>
+ <reportElement x="54" y="0" width="113" height="19"/>
+ <textElement/>
+ <textFieldExpression><![CDATA[$F{diffpairheader}]]></textFieldExpression>
+ </textField>
+ <textField>
+ <reportElement x="263" y="0" width="123" height="20"/>
+ <textElement/>
+ <textFieldExpression><![CDATA[$F{morph1header}]]></textFieldExpression>
+ </textField>
+ <textField>
+ <reportElement x="386" y="0" width="128" height="19"/>
+ <textElement/>
+ <textFieldExpression><![CDATA[$F{morph2header}]]></textFieldExpression>
+ </textField>
+ </band>
+ </columnHeader>
+ <detail>
+ <band height="18" splitType="Stretch">
+ <textField isBlankWhenNull="true">
+ <reportElement x="0" y="0" width="54" height="14"/>
+ <textElement/>
+ <textFieldExpression><![CDATA[$F{km}]]></textFieldExpression>
+ </textField>
+ <textField isBlankWhenNull="true">
+ <reportElement x="167" y="0" width="96" height="14"/>
+ <textElement/>
+ <textFieldExpression><![CDATA[$F{diff}]]></textFieldExpression>
+ </textField>
+ <textField isBlankWhenNull="true">
+ <reportElement x="54" y="0" width="113" height="14"/>
+ <textElement/>
+ <textFieldExpression><![CDATA[$F{diffpair}]]></textFieldExpression>
+ </textField>
+ <textField isBlankWhenNull="true">
+ <reportElement x="263" y="0" width="123" height="14"/>
+ <textElement/>
+ <textFieldExpression><![CDATA[$F{morph1}]]></textFieldExpression>
+ </textField>
+ <textField isBlankWhenNull="true">
+ <reportElement x="386" y="0" width="128" height="14"/>
+ <textElement/>
+ <textFieldExpression><![CDATA[$F{morph2}]]></textFieldExpression>
+ </textField>
+ </band>
+ </detail>
+ <pageFooter>
+ <band height="29" splitType="Stretch">
+ <textField evaluationTime="Report">
+ <reportElement x="457" y="9" width="57" height="20"/>
+ <textElement/>
+ <textFieldExpression><![CDATA[" / " + $V{PAGE_NUMBER}]]></textFieldExpression>
+ </textField>
+ <textField>
+ <reportElement x="402" y="9" width="55" height="20"/>
+ <textElement textAlignment="Right"/>
+ <textFieldExpression><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression>
+ </textField>
+ </band>
+ </pageFooter>
+ <summary>
+ <band height="42" splitType="Stretch"/>
+ </summary>
+</jasperReport>
diff -r 42076d94977e -r 45cced06490c artifacts/doc/conf/jasper/sqrelation.jasper
Binary file artifacts/doc/conf/jasper/sqrelation.jasper has changed
diff -r 42076d94977e -r 45cced06490c artifacts/doc/conf/jasper/sqrelation.jrxml
--- a/artifacts/doc/conf/jasper/sqrelation.jrxml Wed May 21 11:43:10 2014 +0200
+++ b/artifacts/doc/conf/jasper/sqrelation.jrxml Mon Jun 30 11:29:45 2014 +0200
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
-<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="595" pageHeight="842" columnWidth="515" leftMargin="60" rightMargin="20" topMargin="20" bottomMargin="20" uuid="b6d7de63-ee2d-42cc-ae0b-d518b3061f34">
+<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="595" pageHeight="842" columnWidth="515" leftMargin="60" rightMargin="20" topMargin="20" bottomMargin="20">
<property name="ireport.zoom" value="1.5"/>
- <property name="ireport.x" value="0"/>
- <property name="ireport.y" value="197"/>
- <subDataset name="dataset1" uuid="7f14a59c-4250-4060-90e5-c25f5c0be4de"/>
+ <property name="ireport.x" value="54"/>
+ <property name="ireport.y" value="670"/>
+ <subDataset name="dataset1"/>
<field name="river" class="java.lang.String"/>
<field name="periods" class="java.lang.String"/>
<field name="outliertest" class="java.lang.String"/>
@@ -30,357 +30,366 @@
<title>
<band height="562" splitType="Stretch">
<staticText>
- <reportElement x="0" y="1" width="177" height="30" uuid="ea2c7f24-bfb8-4827-b578-4bd2b217a296"/>
+ <reportElement x="0" y="1" width="177" height="30"/>
<textElement>
<font size="18"/>
</textElement>
<text><![CDATA[Ergebnisausgabe]]></text>
</staticText>
<textField>
- <reportElement x="177" y="0" width="338" height="31" uuid="91b15a29-a4bf-4623-868c-4dea6797f696"/>
+ <reportElement x="177" y="0" width="338" height="31"/>
<textElement>
<font size="18"/>
</textElement>
<textFieldExpression><![CDATA[$F{river}]]></textFieldExpression>
</textField>
<textField>
- <reportElement x="0" y="31" width="515" height="26" uuid="4a262597-f5d6-458e-af8b-afe554fc0102"/>
+ <reportElement x="0" y="31" width="515" height="26"/>
<textElement>
<font size="14"/>
</textElement>
<textFieldExpression><![CDATA[$F{calculation}]]></textFieldExpression>
</textField>
<staticText>
- <reportElement x="0" y="211" width="123" height="20" uuid="5939c51d-e441-490b-813e-14ef73d4a566"/>
+ <reportElement x="0" y="211" width="123" height="20"/>
<textElement verticalAlignment="Middle"/>
<text><![CDATA[Gewässer:]]></text>
</staticText>
<textField isBlankWhenNull="false">
- <reportElement x="123" y="211" width="392" height="20" isRemoveLineWhenBlank="true" uuid="1dc3bbce-49bc-4f21-90d0-f04690fc8f9e"/>
+ <reportElement x="123" y="211" width="392" height="20" isRemoveLineWhenBlank="true"/>
<textElement verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{river}]]></textFieldExpression>
</textField>
<staticText>
- <reportElement x="0" y="231" width="123" height="20" uuid="7e0d3425-968a-4000-876c-a3fbbeb0a36c"/>
+ <reportElement x="0" y="231" width="123" height="20"/>
<textElement verticalAlignment="Middle"/>
<text><![CDATA[Ort:]]></text>
</staticText>
<textField isBlankWhenNull="false">
- <reportElement x="123" y="231" width="392" height="20" isRemoveLineWhenBlank="true" uuid="f9b20927-f244-4ed9-ab9f-a88cc2fd643b"/>
+ <reportElement x="123" y="231" width="392" height="20" isRemoveLineWhenBlank="true"/>
<textElement verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{location}]]></textFieldExpression>
</textField>
<staticText>
- <reportElement x="0" y="291" width="123" height="20" uuid="629b34e1-8131-4202-950f-2811cb33982f"/>
+ <reportElement x="0" y="291" width="123" height="20"/>
<textElement verticalAlignment="Middle"/>
<text><![CDATA[Datum der Erstellung:]]></text>
</staticText>
<textField isBlankWhenNull="false">
- <reportElement x="123" y="291" width="392" height="20" isRemoveLineWhenBlank="true" uuid="6c88d0c9-e695-49c4-a6ec-c0dd4ddbb343"/>
+ <reportElement x="123" y="291" width="392" height="20" isRemoveLineWhenBlank="true"/>
<textElement verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{date}]]></textFieldExpression>
</textField>
<staticText>
- <reportElement x="0" y="311" width="123" height="20" uuid="47d924ca-f38c-490a-aa3b-18838124e6af"/>
+ <reportElement x="0" y="311" width="123" height="20"/>
<textElement verticalAlignment="Middle"/>
<text><![CDATA[Zeitraum:]]></text>
</staticText>
<textField isBlankWhenNull="false">
- <reportElement x="123" y="311" width="392" height="20" isRemoveLineWhenBlank="true" uuid="f3602df3-74fe-40c1-ace6-f41e8216e221"/>
+ <reportElement x="123" y="311" width="392" height="20" isRemoveLineWhenBlank="true"/>
<textElement verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{periods}]]></textFieldExpression>
</textField>
<staticText>
- <reportElement x="0" y="331" width="123" height="20" uuid="bb031cd0-2b45-43f4-88c4-7d6865208637"/>
+ <reportElement x="0" y="331" width="123" height="20"/>
<textElement verticalAlignment="Middle"/>
<text><![CDATA[AusreiÃertest:]]></text>
</staticText>
<textField isBlankWhenNull="false">
- <reportElement x="123" y="331" width="392" height="20" isRemoveLineWhenBlank="true" uuid="b2eac7df-2616-4f2e-839c-731aaf0093c7"/>
+ <reportElement x="123" y="331" width="392" height="20" isRemoveLineWhenBlank="true"/>
<textElement verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{outliertest}]]></textFieldExpression>
</textField>
<staticText>
- <reportElement x="0" y="351" width="123" height="20" uuid="f71b4e2d-a071-4f45-a058-7f4fe30ad408"/>
+ <reportElement x="0" y="351" width="123" height="20"/>
<textElement verticalAlignment="Middle"/>
<text><![CDATA[AusreiÃer:]]></text>
</staticText>
<textField isBlankWhenNull="false">
- <reportElement x="123" y="351" width="392" height="20" isRemoveLineWhenBlank="true" uuid="5f453092-4a9a-497f-afd7-bee7be1290f7"/>
+ <reportElement x="123" y="351" width="392" height="20" isRemoveLineWhenBlank="true"/>
<textElement verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{outliers}]]></textFieldExpression>
</textField>
<staticText>
- <reportElement x="0" y="57" width="346" height="20" uuid="d87807aa-6f27-492a-993a-5a49b7fccb83"/>
+ <reportElement x="0" y="57" width="346" height="20"/>
<textElement markup="styled">
<font size="12"/>
</textElement>
<text><![CDATA[in der Funktion S = aQ<sup>b</sup>]]></text>
</staticText>
<staticText>
- <reportElement x="0" y="81" width="62" height="20" uuid="10110bb0-9bfa-42b8-802c-ca07d747234c"/>
+ <reportElement x="0" y="81" width="62" height="20"/>
<textElement verticalAlignment="Middle"/>
<text><![CDATA[PARAMETER]]></text>
</staticText>
<staticText>
- <reportElement x="84" y="81" width="400" height="20" uuid="d8c8dca8-b318-40f9-92bb-f707d5b7f848"/>
+ <reportElement x="84" y="81" width="400" height="20"/>
<textElement verticalAlignment="Middle"/>
<text><![CDATA[FESTSTOFFFRAKTION]]></text>
</staticText>
<staticText>
- <reportElement x="0" y="101" width="62" height="15" uuid="330bd2dc-04f0-4c74-9f34-330bc6915735"/>
+ <reportElement x="0" y="101" width="62" height="15"/>
<textElement textAlignment="Center"/>
<text><![CDATA[A]]></text>
</staticText>
<staticText>
- <reportElement x="0" y="116" width="62" height="15" uuid="9069990a-ce8d-46e2-838a-f77f19b4f55c"/>
+ <reportElement x="0" y="116" width="62" height="15"/>
<textElement textAlignment="Center"/>
<text><![CDATA[B]]></text>
</staticText>
<staticText>
- <reportElement x="0" y="146" width="62" height="15" uuid="c7a8c453-f31a-4231-a444-07a39df7af73"/>
+ <reportElement x="0" y="146" width="62" height="15"/>
<textElement textAlignment="Center"/>
<text><![CDATA[D]]></text>
</staticText>
<staticText>
- <reportElement x="0" y="161" width="62" height="15" uuid="4d1c30d1-6ae2-48c2-ad70-ebab733aa1c7"/>
+ <reportElement x="0" y="161" width="62" height="15"/>
<textElement textAlignment="Center"/>
<text><![CDATA[E]]></text>
</staticText>
<staticText>
- <reportElement x="0" y="176" width="62" height="15" uuid="dfab2652-3ae1-4e6e-b57b-6b0d66949e05"/>
+ <reportElement x="0" y="176" width="62" height="15"/>
<textElement textAlignment="Center"/>
<text><![CDATA[F]]></text>
</staticText>
<staticText>
- <reportElement x="0" y="191" width="62" height="15" uuid="870fe372-d364-4431-948a-7fc4c271d6da"/>
+ <reportElement x="0" y="191" width="62" height="15"/>
<textElement textAlignment="Center"/>
<text><![CDATA[G]]></text>
</staticText>
<staticText>
- <reportElement x="0" y="131" width="62" height="15" uuid="e5ad6c96-cbf0-4614-afbd-b72fece107b0"/>
+ <reportElement x="0" y="131" width="62" height="15"/>
<textElement textAlignment="Center"/>
<text><![CDATA[C]]></text>
</staticText>
<staticText>
- <reportElement x="84" y="146" width="426" height="15" uuid="4d5c1309-c06f-457d-9fc5-363de9e26bef"/>
+ <reportElement x="84" y="146" width="426" height="15"/>
+ <textElement/>
<text><![CDATA[Sedimenttransport von Fein- und Mittelkies (Geschiebetransport) (2-16 mm)]]></text>
</staticText>
<staticText>
- <reportElement x="84" y="176" width="442" height="15" uuid="f790bd5a-39cc-411d-b5a4-545c925edfe4"/>
+ <reportElement x="84" y="176" width="442" height="15"/>
+ <textElement/>
<text><![CDATA[Sedimenttransport von Geschiebe-gesamt (0,000-125 mm)]]></text>
</staticText>
<staticText>
- <reportElement x="84" y="161" width="461" height="15" uuid="c25f74ed-cc4a-470a-a44a-cee0b6de3095"/>
+ <reportElement x="84" y="161" width="461" height="15"/>
+ <textElement/>
<text><![CDATA[Sedimenttransport von Grobkornanteil (Geschiebetransport) (> Mittelkies 16-125 mm)]]></text>
</staticText>
<staticText>
- <reportElement x="84" y="131" width="426" height="15" uuid="b03ec9c2-9ae9-41d7-98b7-17da2c1dda3f"/>
+ <reportElement x="84" y="131" width="426" height="15"/>
+ <textElement/>
<text><![CDATA[Sedimenttransport von Sand (Geschiebetransport) (0,063-2 mm)]]></text>
</staticText>
<staticText>
- <reportElement x="84" y="101" width="431" height="15" uuid="62c83306-ddfc-42ca-88fa-142adf68b11c"/>
+ <reportElement x="84" y="101" width="431" height="15"/>
+ <textElement/>
<text><![CDATA[Sedimenttransport von Feinkornanteil (Suspensionstransport) (< 0,063 mm)]]></text>
</staticText>
<staticText>
- <reportElement x="84" y="191" width="426" height="15" uuid="98d7b609-084b-404e-9cb6-d387953e13e1"/>
+ <reportElement x="84" y="191" width="426" height="15"/>
+ <textElement/>
<text><![CDATA[Sedimenttransport von Geschiebe-gesamt-Sohlhöhenrelevant (0,063-125 mm)]]></text>
</staticText>
<staticText>
- <reportElement x="84" y="116" width="426" height="15" uuid="c7f56c71-6ab0-4fa3-8921-050dde3c744d"/>
+ <reportElement x="84" y="116" width="426" height="15"/>
+ <textElement/>
<text><![CDATA[Sedimenttransport von Sand (Suspensionstransort) (0,063-2 mm)]]></text>
</staticText>
<line>
- <reportElement x="0" y="210" width="515" height="1" uuid="c93e6486-0e68-41b4-8e37-1feb20c3ff1d"/>
+ <reportElement x="0" y="210" width="515" height="1"/>
</line>
<textField isBlankWhenNull="false">
- <reportElement x="123" y="251" width="392" height="20" isRemoveLineWhenBlank="true" uuid="00b164e3-ac40-4e38-8cb1-6e9fd27391c1"/>
+ <reportElement x="123" y="251" width="392" height="20" isRemoveLineWhenBlank="true"/>
<textElement verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{msName}]]></textFieldExpression>
</textField>
<staticText>
- <reportElement x="0" y="251" width="123" height="20" uuid="a1052a1f-2e8b-4280-b99e-982aebfeaea8"/>
+ <reportElement x="0" y="251" width="123" height="20"/>
<textElement verticalAlignment="Middle"/>
<text><![CDATA[Messstellenname:]]></text>
</staticText>
<textField isBlankWhenNull="false">
- <reportElement x="123" y="271" width="392" height="20" isRemoveLineWhenBlank="true" uuid="e368adda-b9b8-4f6c-963c-af10b4555bd3"/>
+ <reportElement x="123" y="271" width="392" height="20" isRemoveLineWhenBlank="true"/>
<textElement verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{msGauge}]]></textFieldExpression>
</textField>
<staticText>
- <reportElement x="0" y="271" width="123" height="20" uuid="400c6d08-b7ca-4e81-b301-d101c8f0237c"/>
+ <reportElement x="0" y="271" width="123" height="20"/>
<textElement verticalAlignment="Middle"/>
<text><![CDATA[hdyr. Bezugspegel:]]></text>
</staticText>
<line>
- <reportElement x="0" y="371" width="515" height="1" uuid="cd7640a7-b7de-4e19-b7be-08a39e0b75d3"/>
+ <reportElement x="0" y="371" width="515" height="1"/>
</line>
- <elementGroup>
- <staticText>
- <reportElement mode="Transparent" x="18" y="512" width="76" height="20" forecolor="#000000" backcolor="#FFFFFF" uuid="bdfd6837-f8a6-4d83-9c67-63185810022b"/>
- <textElement textAlignment="Left" verticalAlignment="Middle" rotation="None" markup="styled">
- <font fontName="SansSerif" size="10" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/>
- <paragraph lineSpacing="Single"/>
- </textElement>
- <text><![CDATA[C<sub>Duan</sub>]]></text>
- </staticText>
- <staticText>
- <reportElement x="18" y="458" width="76" height="20" uuid="daf38337-b8d7-4272-8ba4-05a2189b2db1"/>
- <textElement markup="none"/>
- <text><![CDATA[r²]]></text>
- </staticText>
- <staticText>
- <reportElement mode="Transparent" x="18" y="478" width="76" height="14" forecolor="#000000" backcolor="#FFFFFF" uuid="4865df94-3788-443b-b86b-1b44731fac34"/>
- <textElement textAlignment="Left" verticalAlignment="Middle" rotation="None" markup="styled">
- <font fontName="SansSerif" size="10" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/>
- <paragraph lineSpacing="Single"/>
- </textElement>
- <text><![CDATA[n<sub>tot</sub>]]></text>
- </staticText>
- <staticText>
- <reportElement x="109" y="492" width="100" height="20" uuid="acf7c8e0-a6ac-43ef-b598-c2315029e9d4"/>
- <text><![CDATA[Anzahl AusreiÃer]]></text>
- </staticText>
- <staticText>
- <reportElement mode="Transparent" x="18" y="441" width="76" height="17" forecolor="#000000" backcolor="#FFFFFF" uuid="15f4318b-28bc-413a-b23e-f6b286317d86"/>
- <textElement textAlignment="Left" verticalAlignment="Middle" rotation="None" markup="styled">
- <font fontName="SansSerif" size="10" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/>
- <paragraph lineSpacing="Single"/>
- </textElement>
- <text><![CDATA[Q<sub>max,gemessen</sub>]]></text>
- </staticText>
- <staticText>
- <reportElement x="18" y="417" width="76" height="24" uuid="32e2af68-cec0-415c-b948-ad7073fc2471"/>
- <textElement markup="none"/>
- <text><![CDATA[Standardfehler]]></text>
- </staticText>
- <staticText>
- <reportElement x="109" y="532" width="181" height="20" uuid="34ad1c35-e0dd-4391-a500-ff87ff80e776"/>
- <text><![CDATA[Bias Korrektur nach Ferguson 1986]]></text>
- </staticText>
- <staticText>
- <reportElement x="109" y="383" width="176" height="20" uuid="e0266375-b88c-4305-bd8a-855a062b940f"/>
- <textElement markup="none"/>
- <text><![CDATA[Transportkurvenkoeffizient]]></text>
- </staticText>
- <staticText>
- <reportElement x="18" y="403" width="76" height="15" uuid="9c524667-e4e8-40e4-ae48-613c4135caa1"/>
- <textElement markup="none"/>
- <text><![CDATA[b]]></text>
- </staticText>
- <staticText>
- <reportElement x="18" y="383" width="76" height="20" uuid="ac7f46ac-57d9-424e-a7a7-9f85dda492f6"/>
- <textElement markup="none"/>
- <text><![CDATA[a]]></text>
- </staticText>
- <staticText>
- <reportElement x="109" y="512" width="181" height="20" uuid="836b4943-193f-4cf2-a866-13c35818dc7c"/>
- <text><![CDATA[Bias Korrektur nach Duan 1983]]></text>
- </staticText>
- <staticText>
- <reportElement mode="Transparent" x="109" y="441" width="285" height="17" forecolor="#000000" backcolor="#FFFFFF" uuid="6f74a211-c286-4025-88fe-b92a6de305b9"/>
- <textElement textAlignment="Left" verticalAlignment="Top" rotation="None" markup="none">
- <font fontName="SansSerif" size="10" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/>
- <paragraph lineSpacing="Single"/>
- </textElement>
- <text><![CDATA[maximal gemessener Abfluss [m³/s]]]></text>
- </staticText>
- <staticText>
- <reportElement x="109" y="403" width="143" height="19" uuid="3ac94bf9-2dff-4ea9-8258-799cbbf7717d"/>
- <textElement markup="none"/>
- <text><![CDATA[Transportkurvenexponent]]></text>
- </staticText>
- <staticText>
- <reportElement mode="Transparent" x="18" y="492" width="76" height="20" forecolor="#000000" backcolor="#FFFFFF" uuid="79e5c3d5-c55b-416d-b8bd-2b3ec87ce047"/>
- <textElement textAlignment="Left" verticalAlignment="Middle" rotation="None" markup="styled">
- <font fontName="SansSerif" size="10" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/>
- <paragraph lineSpacing="Single"/>
- </textElement>
- <text><![CDATA[n<sub>AusreiÃer</sub>]]></text>
- </staticText>
- <staticText>
- <reportElement x="109" y="422" width="265" height="19" uuid="336f35ad-f64c-410a-b6b7-c6d3d6a4b90c"/>
- <textElement markup="none"/>
- <text><![CDATA[natürlicher Logarithmus der Standardabweichung]]></text>
- </staticText>
- <staticText>
- <reportElement x="109" y="458" width="100" height="20" uuid="51d33fdd-6ed9-4400-8faf-a037ce8b0c90"/>
- <textElement markup="none"/>
- <text><![CDATA[BestimmtheitsmaÃ]]></text>
- </staticText>
- <staticText>
- <reportElement mode="Transparent" x="18" y="532" width="76" height="20" forecolor="#000000" backcolor="#FFFFFF" uuid="7959337f-da23-416e-b7d6-c0d260ec6665"/>
- <textElement textAlignment="Left" verticalAlignment="Middle" rotation="None" markup="styled">
- <font fontName="SansSerif" size="10" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/>
- <paragraph lineSpacing="Single"/>
- </textElement>
- <text><![CDATA[C <sub>Ferguson</sub>]]></text>
- </staticText>
- <staticText>
- <reportElement x="109" y="477" width="100" height="14" uuid="b499f108-5cca-4f1e-8022-a9baf1210917"/>
- <text><![CDATA[Anzahl Messwerte]]></text>
- </staticText>
- </elementGroup>
+ <staticText>
+ <reportElement x="18" y="383" width="76" height="20"/>
+ <textElement markup="none"/>
+ <text><![CDATA[a]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="109" y="383" width="176" height="20"/>
+ <textElement markup="none"/>
+ <text><![CDATA[Transportkurvenkoeffizient]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="18" y="403" width="76" height="15"/>
+ <textElement markup="none"/>
+ <text><![CDATA[b]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="109" y="403" width="143" height="19"/>
+ <textElement markup="none"/>
+ <text><![CDATA[Transportkurvenexponent]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="18" y="417" width="76" height="24"/>
+ <textElement markup="none"/>
+ <text><![CDATA[Standardfehler]]></text>
+ </staticText>
+ <staticText>
+ <reportElement mode="Transparent" x="18" y="441" width="76" height="17" forecolor="#000000" backcolor="#FFFFFF"/>
+ <textElement textAlignment="Left" verticalAlignment="Middle" rotation="None" markup="styled">
+ <font fontName="SansSerif" size="10" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/>
+ <paragraph lineSpacing="Single"/>
+ </textElement>
+ <text><![CDATA[Q<sub>max</sub>]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="109" y="422" width="265" height="19"/>
+ <textElement markup="none"/>
+ <text><![CDATA[natürlicher Logarithmus der Standardabweichung]]></text>
+ </staticText>
+ <staticText>
+ <reportElement mode="Transparent" x="109" y="441" width="285" height="17" forecolor="#000000" backcolor="#FFFFFF"/>
+ <textElement textAlignment="Left" verticalAlignment="Top" rotation="None" markup="none">
+ <font fontName="SansSerif" size="10" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/>
+ <paragraph lineSpacing="Single"/>
+ </textElement>
+ <text><![CDATA[maximal gemessener Abfluss [m³/s]]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="18" y="458" width="76" height="20"/>
+ <textElement markup="none"/>
+ <text><![CDATA[r²]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="109" y="458" width="100" height="20"/>
+ <textElement markup="none"/>
+ <text><![CDATA[BestimmtheitsmaÃ]]></text>
+ </staticText>
+ <staticText>
+ <reportElement mode="Transparent" x="18" y="478" width="76" height="14" forecolor="#000000" backcolor="#FFFFFF"/>
+ <textElement textAlignment="Left" verticalAlignment="Middle" rotation="None" markup="styled">
+ <font fontName="SansSerif" size="10" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/>
+ <paragraph lineSpacing="Single"/>
+ </textElement>
+ <text><![CDATA[n<sub>tot</sub>]]></text>
+ </staticText>
+ <staticText>
+ <reportElement mode="Transparent" x="18" y="492" width="76" height="20" forecolor="#000000" backcolor="#FFFFFF"/>
+ <textElement textAlignment="Left" verticalAlignment="Middle" rotation="None" markup="styled">
+ <font fontName="SansSerif" size="10" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/>
+ <paragraph lineSpacing="Single"/>
+ </textElement>
+ <text><![CDATA[n<sub>AusreiÃer</sub>]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="109" y="477" width="100" height="14"/>
+ <textElement/>
+ <text><![CDATA[Anzahl Messwerte]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="109" y="492" width="100" height="20"/>
+ <textElement/>
+ <text><![CDATA[Anzahl AusreiÃer]]></text>
+ </staticText>
+ <staticText>
+ <reportElement mode="Transparent" x="18" y="512" width="76" height="20" forecolor="#000000" backcolor="#FFFFFF"/>
+ <textElement textAlignment="Left" verticalAlignment="Middle" rotation="None" markup="styled">
+ <font fontName="SansSerif" size="10" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/>
+ <paragraph lineSpacing="Single"/>
+ </textElement>
+ <text><![CDATA[C<sub>Duan</sub>]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="109" y="512" width="181" height="20"/>
+ <textElement/>
+ <text><![CDATA[Bias Korrektur nach Duan 1983]]></text>
+ </staticText>
+ <staticText>
+ <reportElement mode="Transparent" x="18" y="532" width="76" height="20" forecolor="#000000" backcolor="#FFFFFF"/>
+ <textElement textAlignment="Left" verticalAlignment="Middle" rotation="None" markup="styled">
+ <font fontName="SansSerif" size="10" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/>
+ <paragraph lineSpacing="Single"/>
+ </textElement>
+ <text><![CDATA[C <sub>Ferguson</sub>]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="109" y="532" width="181" height="20"/>
+ <textElement/>
+ <text><![CDATA[Bias Korrektur nach Ferguson 1986]]></text>
+ </staticText>
</band>
</title>
<columnHeader>
<band height="20" splitType="Stretch">
<line>
- <reportElement x="0" y="19" width="515" height="1" uuid="2a54c77e-73b7-4944-bcdd-be396d1e01bd"/>
+ <reportElement x="0" y="19" width="515" height="1"/>
</line>
<staticText>
- <reportElement x="0" y="0" width="39" height="20" uuid="ac45c7e6-d865-47ed-90aa-602777d0a3c3"/>
+ <reportElement x="0" y="0" width="39" height="20"/>
<textElement verticalAlignment="Middle"/>
<text><![CDATA[Fl-km ]]></text>
</staticText>
<staticText>
- <reportElement x="39" y="0" width="55" height="20" uuid="56343a37-b55c-440c-9f26-986eb6799946"/>
+ <reportElement x="39" y="0" width="55" height="20"/>
<textElement verticalAlignment="Middle"/>
<text><![CDATA[Parameter]]></text>
</staticText>
<staticText>
- <reportElement x="94" y="0" width="60" height="20" uuid="cf06ea41-bad4-4c3f-a33a-ab8a3d5872d1"/>
+ <reportElement x="94" y="0" width="60" height="20"/>
<textElement verticalAlignment="Middle"/>
<text><![CDATA[a]]></text>
</staticText>
<staticText>
- <reportElement x="189" y="0" width="76" height="20" uuid="0ed39fb7-f5e9-4497-887d-50fa9288cbec"/>
+ <reportElement x="189" y="0" width="76" height="20"/>
<textElement verticalAlignment="Middle" markup="styled"/>
<text><![CDATA[Standardfehler]]></text>
</staticText>
<staticText>
- <reportElement x="154" y="0" width="35" height="20" uuid="491aa9fa-d761-4df8-bbad-8ec892fec52a"/>
+ <reportElement x="154" y="0" width="35" height="20"/>
<textElement verticalAlignment="Middle"/>
<text><![CDATA[b]]></text>
</staticText>
<staticText>
- <reportElement x="265" y="0" width="60" height="20" uuid="a499ce7a-59ac-4a03-90d3-9a3bbc1712f3"/>
+ <reportElement x="265" y="0" width="60" height="20"/>
<textElement verticalAlignment="Middle" markup="styled"/>
- <text><![CDATA[Q<sub>max,gemessen</sub>]]></text>
+ <text><![CDATA[Q<sub>max</sub> [m³/s]]]></text>
</staticText>
<staticText>
- <reportElement x="391" y="0" width="44" height="20" uuid="e26c82e1-014b-48ad-bd4e-5f770e3cc519"/>
+ <reportElement x="391" y="0" width="44" height="20"/>
<textElement verticalAlignment="Middle" markup="styled"/>
<text><![CDATA[n <sub>AusreiÃer</sub>]]></text>
</staticText>
<staticText>
- <reportElement x="435" y="0" width="35" height="20" uuid="bbd6cfb0-660d-43d9-a7b0-5e31f4706553"/>
+ <reportElement x="435" y="0" width="35" height="20"/>
<textElement verticalAlignment="Middle" markup="styled"/>
<text><![CDATA[C<sub>Duan</sub>]]></text>
</staticText>
<staticText>
- <reportElement x="470" y="0" width="45" height="20" uuid="48737bce-a759-4d53-b36a-96e8835e1f99"/>
+ <reportElement x="470" y="0" width="45" height="20"/>
<textElement verticalAlignment="Middle" markup="styled"/>
<text><![CDATA[C <sub>Ferguson</sub>]]></text>
</staticText>
<staticText>
- <reportElement x="325" y="0" width="26" height="20" uuid="6e925143-ee09-4f4b-b455-95c67bb72442"/>
+ <reportElement x="325" y="0" width="26" height="20"/>
<textElement verticalAlignment="Middle" markup="styled"/>
<text><![CDATA[r²]]></text>
</staticText>
<staticText>
- <reportElement x="351" y="0" width="40" height="20" uuid="8d5a7cdb-6312-40a9-8431-38a87d388dbd"/>
+ <reportElement x="351" y="0" width="40" height="20"/>
<textElement verticalAlignment="Middle" markup="styled"/>
<text><![CDATA[n<sub>gesamt</sub>]]></text>
</staticText>
@@ -389,57 +398,57 @@
<detail>
<band height="14" splitType="Stretch">
<textField isBlankWhenNull="true">
- <reportElement x="0" y="0" width="39" height="14" uuid="160039f4-9963-4f02-8f7b-ab05a5813a3c"/>
+ <reportElement x="0" y="0" width="39" height="14"/>
<textElement verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{km}]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="true" isBlankWhenNull="true">
- <reportElement stretchType="RelativeToBandHeight" x="154" y="0" width="35" height="14" uuid="228414fa-6e08-40c0-81c6-2fa89842eb31"/>
+ <reportElement stretchType="RelativeToBandHeight" x="154" y="0" width="35" height="14"/>
<textElement verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{b}]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="true" isBlankWhenNull="true">
- <reportElement stretchType="RelativeToBandHeight" x="351" y="0" width="40" height="14" isPrintWhenDetailOverflows="true" uuid="a65c0f76-65dd-4003-8bde-60a8cfdbe03d"/>
+ <reportElement stretchType="RelativeToBandHeight" x="351" y="0" width="40" height="14" isPrintWhenDetailOverflows="true"/>
<textElement verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{total}]]></textFieldExpression>
</textField>
<textField isBlankWhenNull="true">
- <reportElement x="39" y="0" width="55" height="14" uuid="438cff27-6f30-42e1-9865-5a2aaf983f26"/>
+ <reportElement x="39" y="0" width="55" height="14"/>
<textElement verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{param}]]></textFieldExpression>
</textField>
<textField isBlankWhenNull="true">
- <reportElement x="94" y="0" width="60" height="14" uuid="8a34ebd4-be25-4e3b-ac21-0906254fe67c"/>
+ <reportElement x="94" y="0" width="60" height="14"/>
<textElement verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{a}]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="true" isBlankWhenNull="true">
- <reportElement stretchType="RelativeToBandHeight" x="391" y="0" width="44" height="14" uuid="19a46282-3781-4b8f-9ea1-2b5e201d8143"/>
+ <reportElement stretchType="RelativeToBandHeight" x="391" y="0" width="44" height="14"/>
<textElement verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{out}]]></textFieldExpression>
</textField>
<textField isBlankWhenNull="true">
- <reportElement x="189" y="0" width="76" height="14" uuid="fba053b1-adf2-4ccd-a0d4-60c3f57f51d1"/>
+ <reportElement x="189" y="0" width="76" height="14"/>
<textElement verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{sd}]]></textFieldExpression>
</textField>
<textField isBlankWhenNull="true">
- <reportElement x="325" y="0" width="26" height="14" uuid="88626b31-52af-4748-9e02-d74639b9c813"/>
+ <reportElement x="325" y="0" width="26" height="14"/>
<textElement verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{r2}]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="true" isBlankWhenNull="true">
- <reportElement stretchType="RelativeToBandHeight" x="265" y="0" width="60" height="14" uuid="01c3500c-c3b2-4c8d-8df2-c1a238d4f79c"/>
+ <reportElement stretchType="RelativeToBandHeight" x="265" y="0" width="60" height="14"/>
<textElement verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{qmax}]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="true" isBlankWhenNull="true">
- <reportElement stretchType="RelativeToBandHeight" x="435" y="0" width="35" height="14" uuid="86ee4471-d2ed-43ea-8b35-ca759574077e"/>
+ <reportElement stretchType="RelativeToBandHeight" x="435" y="0" width="35" height="14"/>
<textElement verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{cduan}]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="true" isBlankWhenNull="true">
- <reportElement stretchType="RelativeToBandHeight" x="470" y="0" width="45" height="14" uuid="5d46cadc-2e8a-42e1-a284-e4319154090d"/>
+ <reportElement stretchType="RelativeToBandHeight" x="470" y="0" width="45" height="14"/>
<textElement verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{cferg}]]></textFieldExpression>
</textField>
@@ -448,11 +457,12 @@
<pageFooter>
<band height="29" splitType="Stretch">
<textField evaluationTime="Report">
- <reportElement x="458" y="9" width="57" height="20" uuid="f198ce24-2d3e-4021-a481-61667820831c"/>
+ <reportElement x="458" y="9" width="57" height="20"/>
+ <textElement/>
<textFieldExpression><![CDATA[" / " + $V{PAGE_NUMBER}]]></textFieldExpression>
</textField>
<textField>
- <reportElement x="403" y="9" width="55" height="20" uuid="d513f77e-0880-4b4f-9846-f938b6959503"/>
+ <reportElement x="403" y="9" width="55" height="20"/>
<textElement textAlignment="Right"/>
<textFieldExpression><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression>
</textField>
diff -r 42076d94977e -r 45cced06490c artifacts/doc/conf/meta-data.xml
--- a/artifacts/doc/conf/meta-data.xml Wed May 21 11:43:10 2014 +0200
+++ b/artifacts/doc/conf/meta-data.xml Mon Jun 30 11:29:45 2014 +0200
@@ -91,10 +91,6 @@
<dc:when test="$out = 'bedheight_middle'">
<dc:call-macro name="annotations"/>
</dc:when>
- <dc:when test="$out = 'bed_difference_epoch'">
- <dc:call-macro name="annotations"/>
- <dc:call-macro name="basedata_6_delta_w"/>
- </dc:when>
<dc:when test="$out = 'bed_difference_year'">
<dc:call-macro name="annotations"/>
<dc:call-macro name="basedata_6_delta_w"/>
@@ -136,6 +132,9 @@
<dc:iterate var="out" container="artifact-outs">
<dc:message>Non Rec out iteration for: {$out}</dc:message>
<dc:choose>
+ <dc:when test="$out = 'minfo-heights-diff'">
+ <dc:call-macro name="minfo-heights-diff"/>
+ </dc:when>
<dc:when test="$out = 'cross_section'">
<dc:call-macro name="basedata_0"/>
<dc:call-macro name="basedata_1_additionals"/>
@@ -218,9 +217,6 @@
<dc:when test="$out = 'bed_difference_year'">
<dc:call-macro name="longitudinal-section-prototype"/>
</dc:when>
- <dc:when test="$out = 'bed_difference_epoch'">
- <dc:call-macro name="longitudinal-section-prototype"/>
- </dc:when>
<dc:when test="$out = 'floodmap'">
<dc:choose>
<dc:when test="dc:contains($parameters, 'dem')">
@@ -399,9 +395,6 @@
<dc:when test="$out = 'bed_difference_height_year'">
<dc:call-macro name="longitudinal-section-user-prototype"/>
</dc:when>
- <dc:when test="$out = 'bed_difference_epoch'">
- <dc:call-macro name="longitudinal-section-user-prototype"/>
- </dc:when>
<dc:when test="$out = 'historical_discharge'">
<dc:call-macro name="historical-discharge-user"/>
</dc:when>
@@ -1038,8 +1031,8 @@
</dc:macro>
<dc:macro name="bedheight_differences">
- <dc:filter expr="($out_name = 'bed_difference_year' or ($out_name = 'bed_difference_epoch' or $out_name = 'bed_difference_height_year')) and
- (starts-with($facet_name, 'bedheight_difference.year') or (starts-with($facet_name, 'bedheight_difference.epoch') or starts-with($facet_name, 'bedheight_difference.height')))">
+ <dc:filter expr="($out_name = 'bed_difference_year' or $out_name = 'bed_difference_height_year') and
+ (starts-with($facet_name, 'bedheight_difference.year') or starts-with($facet_name, 'bedheight_difference.height'))">
<dc:if test="dc:has-result()">
<bedheight_differences>
<dc:call-macro name="collection-group">
@@ -1334,12 +1327,16 @@
p.id AS pid,
p.description AS description,
d.lower AS depth_lower,
- d.upper AS depth_upper
+ d.upper AS depth_upper,
+ p.description || '<BR>' ||
+ 'Tiefe: ' || d.lower || ' - ' || d.upper
+ || ' cm <BR>' ||
+ 'Zeitraum: ' || t.start_time || ' - ' || t.stop_time
+ AS info
FROM porosity p
JOIN depths d ON p.depth_id = d.id
- JOIN porosity_values pv on pv.porosity_id = p.id
+ JOIN time_intervals t ON p.time_interval_id=t.id
WHERE p.river_id = ${river_id}
- GROUP BY p.id, p.description, d.upper, d.lower
ORDER BY depth_lower, depth_upper
</dc:statement>
<dc:if test="dc:has-result()">
@@ -1347,8 +1344,8 @@
<porosity description="{$depth_lower}-{$depth_upper} cm"
factory="porosity"
target_out="{$out}"
- info="{$description}"
- ids="{$pid}" />
+ info="{$info}"
+ ids="{$pid};{$description}" />
</dc:for-each>
</dc:if>
</dc:context>
@@ -1560,7 +1557,7 @@
SELECT id AS anno_id,
name AS anno_description
FROM annotation_types
- WHERE name IN ('Quelle', 'Senke')
+ WHERE name LIKE 'Quelle %' OR name LIKE 'Senke %'
</dc:statement>
<dc:for-each>
<annotation name="{$anno_description}"
@@ -1724,7 +1721,101 @@
</rastermap>
</dc:macro>
+ <dc:macro name="minfo-heights-diff">
+ <dc:call-macro name="minfo-heights-years">
+ <dc:context>
+ <dc:statement>
+ WITH sta
+ AS (SELECT bhs.id,
+ bhs.description,
+ bhsv.station,
+ bhs.year
+ FROM bed_height_single bhs
+ JOIN bed_height_single_values bhsv
+ ON bhsv.bed_height_single_id = bhs.id
+ WHERE bhs.river_id = ${river_id}),
+ csta
+ AS (SELECT b1.id AS b1id,
+ b1.description AS b1desc,
+ b1.year AS b1year,
+ b2.id AS b2id,
+ b2.description AS b2desc,
+ b2.year AS b2year
+ FROM sta b1
+ JOIN sta b2
+ ON b1.station = b2.station
+ AND b1.id <> b2.id)
+ SELECT DISTINCT b1id, b1desc, b1year,
+ b2id, b2desc, b2year
+ FROM csta
+ ORDER BY b1desc, b2desc
+ </dc:statement>
+ <dc:if test="dc:has-result()">
+ <bedheights>
+ <dc:call-macro name="bed-heights-single-diff"/>
+ <dc:call-macro name="bed-heights-epoch-diff"/>
+ </bedheights>
+ </dc:if>
+ </dc:context>
+ </dc:call-macro>
+ </dc:macro>
+
+ <dc:macro name="bed-heights-single-diff">
+ <dc:filter expr="not(contains(dc:lowercase($b1desc), 'epoche') or contains(dc:lowercase($b2desc), 'epoche'))">
+ <years>
+ <dc:call-macro name="minfo-heights-diff-tree"/>
+ </years>
+ </dc:filter>
+ </dc:macro>
+
+ <dc:macro name="bed-heights-epoch-diff">
+ <dc:filter expr="contains(dc:lowercase($b1desc), 'epoche') and contains(dc:lowercase($b2desc), 'epoche')">
+ <epochs>
+ <dc:call-macro name="minfo-heights-diff-tree"/>
+ </epochs>
+ </dc:filter>
+ </dc:macro>
+
+ <dc:macro name="minfo-heights-diff-tree">
+ <dc:group expr="dc:coalesce($b1year, 'sonstige')">
+ <minfo-diff name="{dc:group-key()}">
+ <dc:for-each>
+ <dc:choose>
+ <dc:when test="dc:group-key() = $b1year">
+ <height factory="bedheight"
+ target_out="{$out}"
+ ids="bedheight-single-{$b1id}-{$b1year}#bedheight-single-{$b2id}-{$b2year}"
+ info="{$b1desc}#{$b2desc}"
+ description="{$b1desc} - {$b2desc}"/>
+ </dc:when>
+ <dc:when test="dc:group-key() = 'sonstige'">
+ <height factory="bedheight"
+ target_out="{$out}"
+ ids="bedheight-single-{$b1id}-{$b1year}#bedheight-single-{$b2id}-{$b2year}"
+ info="{$b1desc}#{$b2desc}"
+ description="{$b1desc} - {$b2desc}"/>
+ <height factory="bedheight"
+ target_out="{$out}"
+ ids="bedheight-single-{$b2id}-{$b2year}#bedheight-single-{$b1id}-{$b1year}"
+ info="{$b2desc}#{$b1desc}"
+ description="{$b2desc} - {$b1desc}"/>
+ </dc:when>
+ </dc:choose>
+ </dc:for-each>
+ </minfo-diff>
+ </dc:group>
+ </dc:macro>
+
<dc:macro name="minfo-heights">
+ <dc:call-macro name="minfo-heights-years">
+ <bedheights>
+ <dc:call-macro name="bed-heights-single"/>
+ <dc:call-macro name="bed-heights-epoch"/>
+ </bedheights>
+ </dc:call-macro>
+ </dc:macro>
+
+ <dc:macro name="minfo-heights-years">
<dc:comment>
The input here is a list differenc ids noted in the
form:
@@ -1771,10 +1862,7 @@
<dc:variable name="year_from" expr="0" type="number"/>
</dc:otherwise>
</dc:choose>
- <bedheights>
- <dc:call-macro name="bed-heights-single"/>
- <dc:call-macro name="bed-heights-epoch"/>
- </bedheights>
+ <dc:macro-body/>
</dc:macro>
<dc:macro name="bed-heights-single">
diff -r 42076d94977e -r 45cced06490c artifacts/doc/conf/themes/default.xml
--- a/artifacts/doc/conf/themes/default.xml Wed May 21 11:43:10 2014 +0200
+++ b/artifacts/doc/conf/themes/default.xml Mon Jun 30 11:29:45 2014 +0200
@@ -51,7 +51,6 @@
<theme name="Annotations">
<inherits>
<inherit from="Lines" />
- <inherit from="Points" />
<inherit from="Text" />
</inherits>
<fields>
diff -r 42076d94977e -r 45cced06490c artifacts/doc/conf/themes/second.xml
--- a/artifacts/doc/conf/themes/second.xml Wed May 21 11:43:10 2014 +0200
+++ b/artifacts/doc/conf/themes/second.xml Mon Jun 30 11:29:45 2014 +0200
@@ -51,7 +51,6 @@
<theme name="Annotations">
<inherits>
<inherit from="Lines" />
- <inherit from="Points" />
<inherit from="Text" />
</inherits>
<fields>
diff -r 42076d94977e -r 45cced06490c artifacts/doc/datacage_ref_de.rst
--- a/artifacts/doc/datacage_ref_de.rst Wed May 21 11:43:10 2014 +0200
+++ b/artifacts/doc/datacage_ref_de.rst Mon Jun 30 11:29:45 2014 +0200
@@ -407,6 +407,16 @@
</marke>
</marken>
+Der Expr-Ausdruck kann mittels der Zeichenfolge '#!#' innerhalb des Ausdrucks
+in mehrere Ausdrücke zerlegt werden. Damit ist es möglich, einen Wert
+in mehrere Kategorien einzusortieren. Wird z.B. ein Film über den Zeitraum
+von zwei Jahren gedreht und man möchte eine Liste von Filmen nach ihren
+Produktionsjahren gruppieren, sollte der Film im Resulat in beiden Jahren auftauchen.
+
+.. code:: xml
+
+ <dc:group expr="$start_jahr #!# $end_jahr">
+
Datensätze auffalten
~~~~~~~~~~~~~~~~~~~~
@@ -695,7 +705,7 @@
``dc:date-format`` Formatierte Ausgabe eines Datums
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-``dc:date-format(Format, Datum)`` leifert für ein Datum Datum einen String, der
+``dc:date-format(Format, Datum)`` liefert für ein Datum einen String, der
nach den Formatierungsregeln aus Format formatiert wird. Für die Formatierungen
gelten die in SimpleFormat_ beschriebenen Regeln.
diff -r 42076d94977e -r 45cced06490c artifacts/src/main/java/org/dive4elements/river/artifacts/D4EArtifact.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/D4EArtifact.java Wed May 21 11:43:10 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/D4EArtifact.java Mon Jun 30 11:29:45 2014 +0200
@@ -210,7 +210,9 @@
handleInitModel(data, context, callMeta);
- buildStaticFacets(data, facets, callMeta);
+ if (!facets.isEmpty()) {
+ buildStaticFacets(data, facets, callMeta);
+ }
filterFacets = buildFilterFacets(data);
diff -r 42076d94977e -r 45cced06490c artifacts/src/main/java/org/dive4elements/river/artifacts/GaugeDischargeArtifact.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/GaugeDischargeArtifact.java Wed May 21 11:43:10 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/GaugeDischargeArtifact.java Mon Jun 30 11:29:45 2014 +0200
@@ -25,6 +25,7 @@
import org.dive4elements.artifacts.CallMeta;
import org.dive4elements.river.artifacts.model.FacetTypes;
+import org.dive4elements.river.artifacts.model.W;
import org.dive4elements.river.artifacts.model.WQKms;
import org.dive4elements.river.artifacts.states.DefaultState;
@@ -221,7 +222,7 @@
}
double [] kms = new double[values[0].length];
Arrays.fill(kms, gauge.getStation().doubleValue());
- res.add(new WQKms(kms, values[0], values[1], name, WQKms.CENTIMETER_AT_GAUGE));
+ res.add(new WQKms(kms, values[0], values[1], name, W.CENTIMETER_AT_GAUGE));
return new CalculationResult(
res.toArray(new WQKms[res.size()]),
diff -r 42076d94977e -r 45cced06490c artifacts/src/main/java/org/dive4elements/river/artifacts/access/BedHeightAccess.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/access/BedHeightAccess.java Wed May 21 11:43:10 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/access/BedHeightAccess.java Mon Jun 30 11:29:45 2014 +0200
@@ -95,46 +95,6 @@
return type;
}
- public String getYearEpoch() {
- if (yearEpoch == null) {
- yearEpoch = getString("ye_select");
- }
- return yearEpoch;
- }
-
-
- public int[] getBedHeightEpochIDs() {
- if (epochIDs == null) {
- String data = getString("soundings");
-
- if (data == null) {
- logger.warn("No 'soundings' parameter specified!");
- return null;
- }
-
- String[] parts = data.split(";");
-
- TIntArrayList ids = new TIntArrayList();
-
- for (String part: parts) {
- if (part.indexOf(SoundingsSelect.PREFIX_EPOCH) >= 0) {
- String tmp = part.replace(SoundingsSelect.PREFIX_EPOCH, "");
-
- try {
- ids.add(Integer.parseInt(tmp));
- }
- catch (NumberFormatException nfe) {
- logger.warn("Cannot parse int from string: '" + tmp + "'");
- }
- }
- }
-
- epochIDs = ids.toNativeArray();
- }
-
- return epochIDs;
- }
-
public Integer getHeightId() {
if (heightId == null) {
heightId = getInteger("height_id");
diff -r 42076d94977e -r 45cced06490c artifacts/src/main/java/org/dive4elements/river/artifacts/datacage/templating/Builder.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/datacage/templating/Builder.java Wed May 21 11:43:10 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/datacage/templating/Builder.java Mon Jun 30 11:29:45 2014 +0200
@@ -54,6 +54,9 @@
{
private static Logger log = Logger.getLogger(Builder.class);
+ public static final Pattern MAGIC_EXPR_SEPARATOR =
+ Pattern.compile("#!#");
+
public static final Pattern STRIP_LINE_INDENT =
Pattern.compile("\\s*\\r?\\n\\s*");
@@ -506,9 +509,14 @@
List<Object []> rows = rd.getRows();
String [] columns = rd.getColumnLabels();
- XPathExpression x;
+ String [] exprs = MAGIC_EXPR_SEPARATOR.split(expr);
+
+ XPathExpression [] xs = new XPathExpression[exprs.length];
+
try {
- x = getXPathExpression(expr);
+ for (int i = 0; i < exprs.length; ++i) {
+ xs[i] = getXPathExpression(exprs[i]);
+ }
}
catch (XPathExpressionException xee) {
log.warn("Invalid expression '" + expr + "'.");
@@ -524,16 +532,16 @@
try {
frames.put(columns, row);
- Object key = x.evaluate(EVAL_DOCUMENT, returnType);
+ for (XPathExpression x: xs) {
+ Object key = x.evaluate(EVAL_DOCUMENT, returnType);
+ ResultData group = groups.get(key);
- ResultData group = groups.get(key);
-
- if (group == null) {
- group = new ResultData(rd.getColumnLabels());
- groups.put(key, group);
+ if (group == null) {
+ group = new ResultData(rd.getColumnLabels());
+ groups.put(key, group);
+ }
+ group.add(row);
}
-
- group.add(row);
}
catch (XPathExpressionException xxe) {
log.warn("unable to apply expression '" +
diff -r 42076d94977e -r 45cced06490c artifacts/src/main/java/org/dive4elements/river/artifacts/datacage/templating/FunctionResolver.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/datacage/templating/FunctionResolver.java Wed May 21 11:43:10 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/datacage/templating/FunctionResolver.java Mon Jun 30 11:29:45 2014 +0200
@@ -86,6 +86,27 @@
functions = new HashMap<String, Entry>();
+ addFunction("coalesce", 2, new XPathFunction() {
+ @Override
+ public Object evaluate(List args) throws XPathFunctionException {
+ return coalesce(args);
+ }
+ });
+
+ addFunction("lowercase", 1, new XPathFunction() {
+ @Override
+ public Object evaluate(List args) throws XPathFunctionException {
+ return args.get(0).toString().toLowerCase();
+ }
+ });
+
+ addFunction("uppercase", 1, new XPathFunction() {
+ @Override
+ public Object evaluate(List args) throws XPathFunctionException {
+ return args.get(0).toString().toUpperCase();
+ }
+ });
+
addFunction("contains", 2, new XPathFunction() {
@Override
public Object evaluate(List args) throws XPathFunctionException {
@@ -234,7 +255,7 @@
}
/** Implementation of case-ignoring dc:contains. */
- public Object contains(List args) throws XPathFunctionException {
+ public static Object contains(List args) throws XPathFunctionException {
Object haystack = args.get(0);
Object needle = args.get(1);
@@ -278,7 +299,7 @@
/** Implementation for getting the minimum value of location or distance
* dc:fromValue.
*/
- public Object fromValue(List args) throws XPathFunctionException {
+ public static Object fromValue(List args) throws XPathFunctionException {
Object mode = args.get(0);
Object locations = args.get(1);
Object from = args.get(2);
@@ -324,7 +345,7 @@
/** Implementation for getting the maximum value of location or distance
* dc:toValue.
*/
- public Object toValue(List args) throws XPathFunctionException {
+ public static Object toValue(List args) throws XPathFunctionException {
Object mode = args.get(0);
Object locations = args.get(1);
Object to = args.get(2);
@@ -372,7 +393,7 @@
/** Implementation for doing a string replace
* dc:replace .
*/
- public Object replace(List args) throws XPathFunctionException {
+ public static Object replace(List args) throws XPathFunctionException {
Object haystack = args.get(0);
Object needle = args.get(1);
Object replacement = args.get(2);
@@ -389,7 +410,7 @@
/** Implementation for doing a string replace
* dc:replace-all
*/
- public Object replaceAll(List args) throws XPathFunctionException {
+ public static Object replaceAll(List args) throws XPathFunctionException {
Object haystack = args.get(0);
Object needle = args.get(1);
Object replacement = args.get(2);
@@ -403,7 +424,7 @@
return haystack;
}
- public Object dateFormat(List args) throws XPathFunctionException {
+ public static Object dateFormat(List args) throws XPathFunctionException {
Object pattern = args.get(0);
Object date = args.get(1);
@@ -428,7 +449,7 @@
return "";
}
- public Set<String> allStateSuccessors(String artifactName, String stateId) {
+ public static Set<String> allStateSuccessors(String artifactName, String stateId) {
GlobalContext gc = RiverContextFactory.getGlobalContext();
if (gc == null) {
return Collections.<String>emptySet();
@@ -441,7 +462,7 @@
return Collections.<String>emptySet();
}
- public Collection<String> findAll(String needle, String haystack) {
+ public static Collection<String> findAll(String needle, String haystack) {
ArrayList<String> result = new ArrayList<String>();
@@ -453,7 +474,7 @@
return result;
}
- public Number maxNumber(Object list) {
+ public static Number maxNumber(Object list) {
if (list instanceof Collection) {
Collection collection = (Collection)list;
double max = -Double.MAX_VALUE;
@@ -493,7 +514,7 @@
: Double.valueOf(Double.MAX_VALUE);
}
- public Number minNumber(Object list) {
+ public static Number minNumber(Object list) {
if (list instanceof Collection) {
Collection collection = (Collection)list;
double min = Double.MAX_VALUE;
@@ -532,5 +553,17 @@
? (Number)list
: Double.valueOf(-Double.MAX_VALUE);
}
+
+ public static Object coalesce(List list) {
+ for (Object x: list) {
+ if (x instanceof String && ((String)x).length() != 0) {
+ return x;
+ }
+ if (x instanceof Number && ((Number)x).doubleValue() != 0.0) {
+ return x;
+ }
+ }
+ return StackFrames.NULL;
+ }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
diff -r 42076d94977e -r 45cced06490c artifacts/src/main/java/org/dive4elements/river/artifacts/model/FacetTypes.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/model/FacetTypes.java Wed May 21 11:43:10 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/model/FacetTypes.java Mon Jun 30 11:29:45 2014 +0200
@@ -174,7 +174,6 @@
WD("wdifferences"),
BHDY("bedheight_difference_height_year"),
BDY("bed_difference_year"),
- BDE("bed_difference_epoch"),
FWQC("fix_wq_curve"),
FDWC("fix_deltawt_curve"),
FLSC("fix_longitudinal_section_curve"),
@@ -338,8 +337,6 @@
String BED_DIFFERENCE_YEAR_FILTERED = "bedheight_difference.year.filtered";
String BED_DIFFERENCE_HEIGHT_YEAR = "bedheight_difference.height_year";
String BED_DIFFERENCE_HEIGHT_YEAR_FILTERED = "bedheight_difference.height_year.filtered";
- String BED_DIFFERENCE_EPOCH = "bedheight_difference.epoch";
- String BED_DIFFERENCE_EPOCH_FILTERED = "bedheight_difference.epoch.filtered";
String BED_DIFFERENCE_MORPH_WIDTH1 = "bedheight_difference.morph_width1";
String BED_DIFFERENCE_MORPH_WIDTH2 = "bedheight_difference.morph_width2";
String BED_DIFFERENCE_SOUNDING_WIDTH = "bedheight_difference.sounding_width";
@@ -347,10 +344,6 @@
String BED_DIFFERENCE_YEAR_HEIGHT2 = "bedheight_difference.year.height2";
String BED_DIFFERENCE_YEAR_HEIGHT1_FILTERED = "bedheight_difference.year.height1.filtered";
String BED_DIFFERENCE_YEAR_HEIGHT2_FILTERED = "bedheight_difference.year.height2.filtered";
- String BED_DIFFERENCE_EPOCH_HEIGHT1 = "bedheight_difference.epoch.height1";
- String BED_DIFFERENCE_EPOCH_HEIGHT2 = "bedheight_difference.epoch.height2";
- String BED_DIFFERENCE_EPOCH_HEIGHT1_FILTERED = "bedheight_difference.epoch.height1.filtered";
- String BED_DIFFERENCE_EPOCH_HEIGHT2_FILTERED = "bedheight_difference.epoch.height2.filtered";
String MORPHOLOGIC_WIDTH = "morph-width";
diff -r 42076d94977e -r 45cced06490c artifacts/src/main/java/org/dive4elements/river/artifacts/model/MiddleBedHeightCalculation.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/model/MiddleBedHeightCalculation.java Wed May 21 11:43:10 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/model/MiddleBedHeightCalculation.java Mon Jun 30 11:29:45 2014 +0200
@@ -16,8 +16,6 @@
import org.dive4elements.artifacts.Artifact;
import org.dive4elements.artifacts.common.utils.DateUtils;
-import org.dive4elements.river.model.BedHeightEpoch;
-import org.dive4elements.river.model.BedHeightEpochValue;
import org.dive4elements.river.model.BedHeightSingle;
import org.dive4elements.river.model.BedHeightSingleValue;
import org.dive4elements.river.model.TimeInterval;
@@ -35,7 +33,6 @@
logger.info("MiddleBedHeightCalculation.calculate");
int[] singleIds = access.getBedHeightSingleIDs();
- int[] epochIds = access.getBedHeightEpochIDs();
if (logger.isDebugEnabled()) {
@@ -45,16 +42,11 @@
if (singleIds != null) {
logger.debug(" " + singleIds.length + " single bedheight ids");
}
-
- if (epochIds != null) {
- logger.debug(" " + epochIds.length + " epoch bedheight ids");
- }
}
List<BedHeightSingle> singles = getSingles(access, singleIds);
- List<BedHeightEpoch> epochs = getEpochs(access, epochIds);
- return buildCalculationResult(access, singles, epochs);
+ return buildCalculationResult(access, singles);
}
@@ -80,32 +72,9 @@
}
- protected List<BedHeightEpoch> getEpochs(
- BedHeightAccess access,
- int[] ids
- ) {
- List<BedHeightEpoch> epochs = new ArrayList<BedHeightEpoch>();
-
- for (int id: ids) {
- BedHeightEpoch e = BedHeightEpoch.getBedHeightEpochById(id);
-
- if (e != null) {
- epochs.add(e);
- }
- else {
- logger.warn("Cannot find Epoch by id: " + id);
- // TODO ADD WARNING
- }
- }
-
- return epochs;
- }
-
-
protected CalculationResult buildCalculationResult(
BedHeightAccess access,
- List<BedHeightSingle> singles,
- List<BedHeightEpoch> epochs
+ List<BedHeightSingle> singles
) {
logger.info("MiddleBedHeightCalculation.buildCalculationResult");
@@ -122,14 +91,6 @@
}
}
- for (BedHeightEpoch epoch: epochs) {
- MiddleBedHeightData d = prepareEpochData(epoch, kmLo, kmHi);
-
- if (d != null) {
- data.add(d);
- }
- }
-
logger.debug("Calculation results in " + data.size() + " data objects.");
return new CalculationResult((MiddleBedHeightData[])
@@ -186,43 +147,5 @@
return data;
}
-
-
- /** Create MiddleBedHeightData to return. */
- protected MiddleBedHeightData prepareEpochData(
- BedHeightEpoch epoch,
- double kmLo,
- double kmHi
- ) {
- logger.debug("Prepare data for epoch: " + epoch.getDescription());
-
- TimeInterval ti = epoch.getTimeInterval();
-
- List<BedHeightEpochValue> values =
- BedHeightEpochValue.getBedHeightEpochValues(epoch, kmLo, kmHi);
-
- MiddleBedHeightData data = new MiddleBedHeightData(
- DateUtils.getYearFromDate(ti.getStartTime()),
- DateUtils.getYearFromDate(ti.getStopTime()),
- epoch.getEvaluationBy(),
- epoch.getDescription()
- );
-
- for (BedHeightEpochValue value: values) {
- data.addKM(value.getStation().doubleValue());
- if (value.getHeight() != null) {
- data.addMiddleHeight(value.getHeight().doubleValue());
- data.addIsEmpty(false);
- }
- else {
- data.addMiddleHeight(Double.NaN);
- data.addIsEmpty(true);
- }
- }
-
- logger.debug("Epoch contains " + values.size() + " values");
-
- return data;
- }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :
diff -r 42076d94977e -r 45cced06490c artifacts/src/main/java/org/dive4elements/river/artifacts/model/WKmsFactory.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/model/WKmsFactory.java Wed May 21 11:43:10 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/model/WKmsFactory.java Mon Jun 30 11:29:45 2014 +0200
@@ -60,7 +60,7 @@
JOIN wst_q_ranges wqr ON wcqr.wst_q_range_id = wqr.id
JOIN wst_columns wc ON wcqr.wst_column_id = wc.id
JOIN wsts ON wc.wst_id = wsts.id
- WHERE wc.wst_id = 1817 AND wc.position = 29;
+ WHERE wc.wst_id = 1817 AND wc.position = 29;
*/
diff -r 42076d94977e -r 45cced06490c artifacts/src/main/java/org/dive4elements/river/artifacts/model/WQ.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/model/WQ.java Wed May 21 11:43:10 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/model/WQ.java Mon Jun 30 11:29:45 2014 +0200
@@ -121,13 +121,13 @@
* If a conversion takes place converted is set to true
*/
public static WQ getFixedWQforExportAtGauge(WQ wq, BigDecimal datum) {
- if (wq.getReferenceSystem() == wq.CENTIMETER_AT_GAUGE) {
+ if (wq.getReferenceSystem() == W.CENTIMETER_AT_GAUGE) {
// Do nothing
return wq;
}
// If we convert we work on a copy to avoid side effects.
WQ ret = new WQ(wq.size(), wq.getName());
- ret.setReferenceSystem(wq.CENTIMETER_AT_GAUGE);
+ ret.setReferenceSystem(W.CENTIMETER_AT_GAUGE);
// When we convert and have a datum we have a calculated
// result at a gauge so we must subtract the datum.
diff -r 42076d94977e -r 45cced06490c artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/BedDiffCalculation.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/BedDiffCalculation.java Wed May 21 11:43:10 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/BedDiffCalculation.java Mon Jun 30 11:29:45 2014 +0200
@@ -29,7 +29,6 @@
Logger.getLogger(BedDiffCalculation.class);
protected String river;
- protected String yearEpoch;
protected int [][] heightIds;
public BedDiffCalculation() {
@@ -39,7 +38,6 @@
logger.info("BedDiffCalculation.calculate");
String river = access.getRiverName();
- String yearEpoch = access.getYearEpoch();
int [][] heightIds = access.extractHeightIds(context);
if (river == null) {
@@ -47,13 +45,8 @@
addProblem("minfo.missing.river");
}
- if (yearEpoch == null) {
- addProblem("minfo.missing.year_epoch");
- }
-
if (!hasProblems()) {
this.river = river;
- this.yearEpoch = yearEpoch;
this.heightIds = heightIds;
return internalCalculate();
}
@@ -62,7 +55,6 @@
}
private CalculationResult internalCalculate() {
-
BedDiffYearResult [] results = new BedDiffYearResult[heightIds.length];
for (int i = 0; i < heightIds.length; i++) {
@@ -70,21 +62,6 @@
results[i] = calculateYearDifference(pair);
}
return new CalculationResult(results, this);
- // Currently epochs are handled like single years. To handle epochs
- // uncomment the follwing code and use an if-clause in the code above.
-/*
- if (yearEpoch.equals("epoch")) {
- BedDiffEpochResult [] results = new BedDiffEpochResult[heightIds.length];
-
- for (int i = 0; i < heightIds.length; i++) {
- BedHeight[] pair = getHeightPair(heightIds[i], "epoch");
- results[i] = calculateEpochDifference(pair);
- }
- return new CalculationResult(results, this);
- }
-
- return new CalculationResult();
- */
}
/** Get two BedHeights from factory. */
@@ -95,36 +72,6 @@
};
}
- private BedDiffEpochResult calculateEpochDifference(BedHeightData[] pair) {
-
- BedHeightData bh1 = pair[0];
- BedHeightData bh2 = pair[1];
-
- TDoubleArrayList stations = bh1.getStations();
- int size = stations.size();
-
- TDoubleArrayList diffRes = new TDoubleArrayList(size);
- TDoubleArrayList kms = new TDoubleArrayList(size);
- TDoubleArrayList heights1 = new TDoubleArrayList(size);
- TDoubleArrayList heights2 = new TDoubleArrayList(size);
-
- for (int i = 0; i < size; i++) {
- double station = stations.getQuick(i);
- double h1 = bh1.getHeight(station);
- double h2 = bh2.getHeight(station);
- double hDiff = h1 - h2;
- if (!Double.isNaN(hDiff)) {
- diffRes.add(hDiff);
- kms.add(station);
- heights1.add(h1);
- heights2.add(h2);
- }
- }
- Date start = ((BedHeightEpochData)bh1).getStart();
- Date end = ((BedHeightEpochData)bh2).getEnd();
- return new BedDiffEpochResult(kms, diffRes, heights1, heights2, start, end);
- }
-
private BedDiffYearResult calculateYearDifference(BedHeightData[] pair) {
logger.debug("BedDiffCalculation.calculateYearDifference");
BedHeightSingleData s1 = (BedHeightSingleData) pair[0];
diff -r 42076d94977e -r 45cced06490c artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/BedDiffEpochFacet.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/BedDiffEpochFacet.java Wed May 21 11:43:10 2014 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-/* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
- * Software engineering by Intevation GmbH
- *
- * This file is Free Software under the GNU AGPL (>=v3)
- * and comes with ABSOLUTELY NO WARRANTY! Check out the
- * documentation coming with Dive4Elements River for details.
- */
-
-package org.dive4elements.river.artifacts.model.minfo;
-
-import org.apache.log4j.Logger;
-
-import org.dive4elements.artifactdatabase.state.Facet;
-import org.dive4elements.artifacts.Artifact;
-import org.dive4elements.artifacts.CallContext;
-import org.dive4elements.river.artifacts.D4EArtifact;
-import org.dive4elements.river.artifacts.model.CalculationResult;
-import org.dive4elements.river.artifacts.model.DataFacet;
-import org.dive4elements.river.artifacts.states.DefaultState.ComputeType;
-
-
-public class BedDiffEpochFacet
-extends DataFacet
-{
- private static Logger logger = Logger.getLogger(BedDiffEpochFacet.class);
-
- public BedDiffEpochFacet() {
- }
-
- public BedDiffEpochFacet(int idx, String name, String description,
- ComputeType type, String stateId, String hash) {
- super(idx, name, description, type, hash, stateId);
- this.metaData.put("X", "chart.longitudinal.section.xaxis.label");
- this.metaData.put("Y", "chart.beddifference.height.yaxis.label");
- }
-
- public Object getData(Artifact artifact, CallContext context) {
- logger.debug("Get data for bed density at index: " + index);
-
- D4EArtifact flys = (D4EArtifact) artifact;
-
- CalculationResult res = (CalculationResult) flys.compute(context, hash,
- stateId, type, false);
-
- BedDiffEpochResult[] data =
- (BedDiffEpochResult[]) res.getData();
-
- return data != null && data.length > index ? data[index] : null;
- }
-
- /** Copy deeply. */
- @Override
- public Facet deepCopy() {
- BedDiffEpochFacet copy = new BedDiffEpochFacet();
- copy.set(this);
- copy.type = type;
- copy.hash = hash;
- copy.stateId = stateId;
- return copy;
- }
-}
-// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
diff -r 42076d94977e -r 45cced06490c artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/BedDiffEpochFilterFacet.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/BedDiffEpochFilterFacet.java Wed May 21 11:43:10 2014 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,90 +0,0 @@
-/* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
- * Software engineering by Intevation GmbH
- *
- * This file is Free Software under the GNU AGPL (>=v3)
- * and comes with ABSOLUTELY NO WARRANTY! Check out the
- * documentation coming with Dive4Elements River for details.
- */
-
-package org.dive4elements.river.artifacts.model.minfo;
-
-import org.apache.log4j.Logger;
-
-import org.dive4elements.artifactdatabase.state.Facet;
-import org.dive4elements.artifacts.Artifact;
-import org.dive4elements.artifacts.CallContext;
-import org.dive4elements.river.artifacts.D4EArtifact;
-import org.dive4elements.river.artifacts.access.RiverAccess;
-import org.dive4elements.river.artifacts.context.RiverContext;
-import org.dive4elements.river.artifacts.model.CalculationResult;
-import org.dive4elements.river.artifacts.model.DataFacet;
-import org.dive4elements.river.artifacts.math.MovingAverage;
-import org.dive4elements.river.artifacts.model.ZoomScale;
-import org.dive4elements.river.artifacts.states.DefaultState.ComputeType;
-
-
-public class BedDiffEpochFilterFacet
-extends DataFacet
-{
- private static Logger logger = Logger.getLogger(BedDiffEpochFilterFacet.class);
-
- public BedDiffEpochFilterFacet() {
- }
-
- public BedDiffEpochFilterFacet(int idx, String name, String description,
- ComputeType type, String stateId, String hash) {
- super(idx, name, description, type, hash, stateId);
- this.metaData.put("X", "chart.longitudinal.section.xaxis.label");
- this.metaData.put("Y", "chart.beddifference.height.yaxis.label");
- }
-
- public Object getData(Artifact artifact, CallContext context) {
- logger.debug("Get data for bed density at index: " + index);
-
- D4EArtifact flys = (D4EArtifact) artifact;
-
- CalculationResult res = (CalculationResult) flys.compute(context, hash,
- stateId, type, false);
-
- BedDiffEpochResult[] data =
- (BedDiffEpochResult[]) res.getData(); // TODO CAST TO SPECIFIC CLASS
- Double start = (Double)context.getContextValue("startkm");
- Double end = (Double)context.getContextValue("endkm");
-
- if(start != null && end != null) {
- RiverContext fc = (RiverContext)context.globalContext();
- ZoomScale scales = (ZoomScale)fc.get("zoomscale");
- RiverAccess access = new RiverAccess((D4EArtifact)artifact);
- String river = access.getRiverName();
-
- double radius = scales.getRadius(river, start, end);
- BedDiffEpochResult oldData = data[index];
- BedDiffEpochResult newData = new BedDiffEpochResult();
- newData.setStart(oldData.getStart());
- newData.setEnd(oldData.getEnd());
- double[][] diffs = MovingAverage.weighted(oldData.getDifferencesData(), radius);
- double[][] heights1 = MovingAverage.weighted(oldData.getHeights1Data(), radius);
- double[][] heights2 = MovingAverage.weighted(oldData.getHeights2Data(), radius);
- for(int j = 0; j < diffs[0].length; j++) {
- newData.addKm(diffs[0][j]);
- newData.addDifference(diffs[1][j]);
- newData.addHeight1(heights1[1][j]);
- newData.addHeight2(heights2[1][j]);
- }
- return newData;
- }
- return data != null && data.length > index ? data[index] : null;
- }
-
- /** Copy deeply. */
- @Override
- public Facet deepCopy() {
- BedDiffEpochFilterFacet copy = new BedDiffEpochFilterFacet();
- copy.set(this);
- copy.type = type;
- copy.hash = hash;
- copy.stateId = stateId;
- return copy;
- }
-}
-// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
diff -r 42076d94977e -r 45cced06490c artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/BedDiffEpochResult.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/BedDiffEpochResult.java Wed May 21 11:43:10 2014 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-/* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
- * Software engineering by Intevation GmbH
- *
- * This file is Free Software under the GNU AGPL (>=v3)
- * and comes with ABSOLUTELY NO WARRANTY! Check out the
- * documentation coming with Dive4Elements River for details.
- */
-
-package org.dive4elements.river.artifacts.model.minfo;
-
-import java.util.Date;
-
-import gnu.trove.TDoubleArrayList;
-
-
-public class BedDiffEpochResult
-extends BedDifferencesResult
-{
-
- protected Date start;
- protected Date end;
-
- public BedDiffEpochResult () {
- super();
- }
-
- public BedDiffEpochResult (
- TDoubleArrayList kms,
- TDoubleArrayList differences,
- TDoubleArrayList heights1,
- TDoubleArrayList heights2,
- Date start,
- Date end
- ) {
- super(kms, differences, heights1, heights2);
- this.start = start;
- this.end = end;
- }
-
- public Date getStart() {
- return this.start;
- }
-
- public void setStart(Date value) {
- this.start = value;
- }
-
- public void setEnd(Date value) {
- this.end = value;
- }
-
- public Date getEnd() {
- return this.end;
- }
-}
diff -r 42076d94977e -r 45cced06490c artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/BedDiffYearResult.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/BedDiffYearResult.java Wed May 21 11:43:10 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/BedDiffYearResult.java Mon Jun 30 11:29:45 2014 +0200
@@ -159,5 +159,10 @@
bedHeights.toNativeArray()
};
}
+
+ @Override
+ public String getDiffDescription() {
+ return nameFirst + " - " + nameSecond;
+ }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
diff -r 42076d94977e -r 45cced06490c artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/BedDifferenceJRDataSource.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/BedDifferenceJRDataSource.java Wed May 21 11:43:10 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/BedDifferenceJRDataSource.java Mon Jun 30 11:29:45 2014 +0200
@@ -11,8 +11,6 @@
import java.util.ArrayList;
import java.util.HashMap;
-import org.apache.log4j.Logger;
-
import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRField;
@@ -23,9 +21,6 @@
*/
public class BedDifferenceJRDataSource implements JRDataSource
{
- /** The logger used in this exporter.*/
- private static Logger logger = Logger.getLogger(BedDifferenceJRDataSource.class);
-
private ArrayList<String[]> data;
private HashMap<String, String> metaData;
@@ -58,21 +53,42 @@
else if ("calculation".equals(fieldName)) {
value = metaData.get("calculation");
}
- else if ("ye_mode".equals(fieldName)) {
- value = metaData.get("ye_mode");
- }
else if ("date".equals(fieldName)) {
value = metaData.get("date");
}
else if ("differences".equals(fieldName)) {
value = metaData.get("differences");
}
+ else if ("kmheader".equals(fieldName)) {
+ value = metaData.get("kmheader");
+ }
+ else if ("diffpairheader".equals(fieldName)) {
+ value = metaData.get("diffpairheader");
+ }
+ else if ("diffheader".equals(fieldName)) {
+ value = metaData.get("diffheader");
+ }
+ else if ("morph1header".equals(fieldName)) {
+ value = metaData.get("morph1header");
+ }
+ else if ("morph2header".equals(fieldName)) {
+ value = metaData.get("morph2header");
+ }
else if ("km".equals(fieldName)) {
value = data.get(index)[0];
}
- else if ("meter".equals(fieldName)) {
+ else if ("diffpair".equals(fieldName)) {
value = data.get(index)[1];
}
+ else if ("diff".equals(fieldName)) {
+ value = data.get(index)[2];
+ }
+ else if ("morph1".equals(fieldName)) {
+ value = data.get(index)[3];
+ }
+ else if ("morph2".equals(fieldName)) {
+ value = data.get(index)[4];
+ }
return value;
}
}
diff -r 42076d94977e -r 45cced06490c artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/BedDifferencesResult.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/BedDifferencesResult.java Wed May 21 11:43:10 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/BedDifferencesResult.java Mon Jun 30 11:29:45 2014 +0200
@@ -13,8 +13,8 @@
import java.io.Serializable;
-public class BedDifferencesResult
-implements Serializable
+public abstract class BedDifferencesResult
+implements Serializable
{
protected TDoubleArrayList kms;
@@ -93,4 +93,6 @@
height2.toNativeArray()
};
}
+
+ public abstract String getDiffDescription();
}
diff -r 42076d94977e -r 45cced06490c artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/BedHeightEpochData.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/BedHeightEpochData.java Wed May 21 11:43:10 2014 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-/* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
- * Software engineering by Intevation GmbH
- *
- * This file is Free Software under the GNU AGPL (>=v3)
- * and comes with ABSOLUTELY NO WARRANTY! Check out the
- * documentation coming with Dive4Elements River for details.
- */
-
-package org.dive4elements.river.artifacts.model.minfo;
-
-import java.util.Date;
-
-
-public class BedHeightEpochData
-extends BedHeightData
-{
-
- protected Date start;
- protected Date end;
-
- public BedHeightEpochData() {
- this.start = new Date();
- this.end = new Date();
- }
-
- public BedHeightEpochData(String name) {
- super(name);
- this.start = new Date();
- this.end = new Date();
- }
-
- public void add(
- double value,
- double station,
- Date start,
- Date end
- ) {
- super.add(value, station);
- this.start = start;
- this.end = end;
- }
-
- public Date getStart() {
- return start;
- }
-
- public Date getEnd() {
- return end;
- }
-}
diff -r 42076d94977e -r 45cced06490c artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/BedHeightFactory.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/BedHeightFactory.java Wed May 21 11:43:10 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/BedHeightFactory.java Mon Jun 30 11:29:45 2014 +0200
@@ -40,26 +40,11 @@
" ORDER BY bhsv.station";
- /** Query to get name for wst_id and column_pos. */
- public static final String SQL_SELECT_EPOCH =
- "SELECT bv.height, bv.station, ti.start_time, ti.stop_time" +
- " FROM bed_height_epoch b" +
- " JOIN bed_height_epoch_values bv ON b.id = bv.bed_height_epoch_id" +
- " JOIN time_intervals ti ON b.time_interval_id = ti.id" +
- " WHERE b.id = :height_id" +
- " ORDER BY bhsv.station";
-
/** Query to get name (description) for wst_id. */
public static final String SQL_SELECT_DESCR_SINGLE =
"SELECT description FROM bed_height_single "+
"WHERE id = :height_id";
- /** Query to get name (description) for wst_id. */
- public static final String SQL_SELECT_DESCR_EPOCH =
- "SELECT description from bed_height_epoch "+
- "WHERE id = :height_id";
-
-
private BedHeightFactory() {
}
@@ -108,11 +93,6 @@
.addScalar("description", StandardBasicTypes.STRING);
nameQuery.setInteger("height_id", height_id);
}
- else if (type.equals("epoch")) {
- nameQuery = session.createSQLQuery(SQL_SELECT_DESCR_EPOCH)
- .addScalar("description", StandardBasicTypes.STRING);
- nameQuery.setInteger("height_id", height_id);
- }
else {
return "none";
}
@@ -165,26 +145,6 @@
}
return height;
}
- else if (type.equals("epoch")) {
- BedHeightEpochData height =
- new BedHeightEpochData(getHeightName(type, height_id));
- sqlQuery = session.createSQLQuery(SQL_SELECT_EPOCH)
- .addScalar("height", StandardBasicTypes.DOUBLE)
- .addScalar("station", StandardBasicTypes.DOUBLE)
- .addScalar("start_time", StandardBasicTypes.DATE)
- .addScalar("stop_time", StandardBasicTypes.DATE);
- sqlQuery.setInteger("height_id", height_id);
- List<Object []> results = sqlQuery.list();
-
- for (Object [] row: results) {
- height.add(
- (Double) row[0],
- (Double) row[1],
- (Date) row[2],
- (Date) row[3]);
- }
- return height;
- }
return new BedHeightData();
}
}
diff -r 42076d94977e -r 45cced06490c artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/PorosityFacet.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/PorosityFacet.java Wed May 21 11:43:10 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/PorosityFacet.java Mon Jun 30 11:29:45 2014 +0200
@@ -78,14 +78,22 @@
String code = D4EArtifact.getDatacageIDValue(data);
+ String[] split = code.split(";");
+ String id = split[0];
+ String desc = "";
+ if (split.length >= 2) {
+ desc = split[1];
+ }
+
if (code != null) {
this.name = NAME;
this.description = Resources.getMsg(
callMeta,
"facet.porosity",
- "Porosity");
+ "Porosity",
+ new Object[] { desc });
D4EArtifact d4e = (D4EArtifact) artifact;
- d4e.addStringData("porosity_id", code);
+ d4e.addStringData("porosity_id", id);
}
}
}
diff -r 42076d94977e -r 45cced06490c artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentLoadCalculation.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentLoadCalculation.java Wed May 21 11:43:10 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentLoadCalculation.java Mon Jun 30 11:29:45 2014 +0200
@@ -220,7 +220,7 @@
*/
private SedimentLoadResult calculateEpoch(int i) {
List<SedimentLoad> epochLoads = new ArrayList<SedimentLoad>();
- for (int j = epoch[i][0]; j < epoch[i][1]; j++) {
+ for (int j = epoch[i][0]; j <= epoch[i][1]; j++) {
epochLoads.add(SedimentLoadFactory.getLoadWithData(
this.river,
this.yearEpoch,
diff -r 42076d94977e -r 45cced06490c artifacts/src/main/java/org/dive4elements/river/artifacts/states/SoundingsSelect.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/states/SoundingsSelect.java Wed May 21 11:43:10 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/states/SoundingsSelect.java Mon Jun 30 11:29:45 2014 +0200
@@ -21,7 +21,6 @@
import org.dive4elements.artifacts.common.utils.XMLUtils;
import org.dive4elements.artifacts.common.utils.XMLUtils.ElementCreator;
-import org.dive4elements.river.model.BedHeightEpoch;
import org.dive4elements.river.model.BedHeightSingle;
import org.dive4elements.river.model.River;
@@ -38,8 +37,6 @@
public static final String PREFIX_SINGLE = "single-";
- public static final String PREFIX_EPOCH = "epoch-";
-
/** Private logger. */
private static final Logger logger = Logger.getLogger(SoundingsSelect.class);
@@ -93,7 +90,6 @@
List<KVP<String, String>> kvp = new ArrayList<KVP<String, String>>();
appendSingles(river, kmLo, kmHi, creator, select, context);
- appendEpochs(river, kmLo, kmHi, creator, select, context);
return kvp.toArray(new KVP[kvp.size()]);
}
@@ -126,13 +122,13 @@
Element item = creator.create("item");
creator.addAttr(item, "label", value, true);
creator.addAttr(item, "value", id, true);
- creator.addAttr(item, "year",
- year != null ? s.getYear().toString() : "");
- creator.addAttr(item, "type", s.getType().getName());
- creator.addAttr(item, "range",
+ creator.addAttr(item, "analyzed_range",
nf.format(s.getRange().getA()) +
" - " +
nf.format(s.getRange().getB()));
+ creator.addAttr(item, "year",
+ year != null ? s.getYear().toString() : "");
+ creator.addAttr(item, "minfo_type", s.getType().getName());
select.appendChild(item);
}
}
@@ -140,44 +136,6 @@
logger.debug(XMLUtils.toString(select));
}
-
- protected void appendEpochs(
- River river,
- double kmLo,
- double kmHi,
- ElementCreator creator,
- Element select,
- CallContext context
- ) {
- List<BedHeightEpoch> epochs =
- BedHeightEpoch.getBedHeightEpochs(river, kmLo, kmHi);
-
- if (epochs != null) {
- int size = epochs.size();
-
- logger.debug("Found " + size + " epochs.");
-
- NumberFormat nf = Formatter.getCalculationKm(context.getMeta());
- for (int i = 0; i < size; i++) {
- BedHeightEpoch e = epochs.get(i);
-
- String id = PREFIX_EPOCH + e.getId();
- String value = e.getDescription();
-
- Element item = creator.create("item");
- creator.addAttr(item, "label", value, true);
- creator.addAttr(item, "value", id, true);
- creator.addAttr(item, "year", e.getTimeInterval().getStartTime().toString());
- creator.addAttr(item, "range",
- nf.format(e.getRange().getA()) +
- " - " +
- nf.format(e.getRange().getB()));
- select.appendChild(item);
- }
- }
- logger.debug("appended epochs");
- }
-
@Override
protected Element createStaticData(
D4EArtifact flys,
@@ -220,10 +178,6 @@
if (value.indexOf(PREFIX_SINGLE) >= 0) {
return getLabelForSingle(cc, value);
}
- else if (value.indexOf(PREFIX_EPOCH) >= 0) {
- return getLabelForEpoch(cc, value);
- }
-
return value;
}
@@ -249,27 +203,6 @@
}
- protected String getLabelForEpoch(CallContext cc, String value) {
- String id = value.replace(PREFIX_EPOCH, "");
- try {
- BedHeightEpoch e = BedHeightEpoch.getBedHeightEpochById(
- Integer.parseInt(id));
-
- if (e != null) {
- return e.getDescription();
- }
- else {
- return "no value for '" + id + "'";
- }
- }
- catch (NumberFormatException nfe) {
- logger.warn("Could not parse id from string '" + id + "'", nfe);
- }
-
- return "n.A.";
- }
-
-
/**
* This method might be used to test, if a parameter name is handled by this
* state.
diff -r 42076d94977e -r 45cced06490c artifacts/src/main/java/org/dive4elements/river/artifacts/states/minfo/DifferenceSelect.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/states/minfo/DifferenceSelect.java Wed May 21 11:43:10 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/states/minfo/DifferenceSelect.java Mon Jun 30 11:29:45 2014 +0200
@@ -55,23 +55,6 @@
return "";
}
- @Override
- protected Element[] createItems(
- XMLUtils.ElementCreator ec,
- Artifact artifact,
- String name,
- CallContext context)
- {
- Element[] elements = new Element[1];
- BedHeightAccess bha = new BedHeightAccess((D4EArtifact)artifact);
- String time = bha.getYearEpoch();
- elements[0] = createItem(
- ec,
- new String[] {"year-epoch", time});
-
- return elements;
- }
-
/**
* Creates the data element used for the static part of DESCRIBE document.
*/
diff -r 42076d94977e -r 45cced06490c artifacts/src/main/java/org/dive4elements/river/artifacts/states/minfo/DifferencesState.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/states/minfo/DifferencesState.java Wed May 21 11:43:10 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/states/minfo/DifferencesState.java Mon Jun 30 11:29:45 2014 +0200
@@ -25,9 +25,6 @@
import org.dive4elements.river.artifacts.model.DataFacet;
import org.dive4elements.river.artifacts.model.FacetTypes;
import org.dive4elements.river.artifacts.model.minfo.BedDiffCalculation;
-import org.dive4elements.river.artifacts.model.minfo.BedDiffEpochFacet;
-import org.dive4elements.river.artifacts.model.minfo.BedDiffEpochFilterFacet;
-import org.dive4elements.river.artifacts.model.minfo.BedDiffEpochResult;
import org.dive4elements.river.artifacts.model.minfo.BedDiffYearFacet;
import org.dive4elements.river.artifacts.model.minfo.BedDiffYearFilterFacet;
import org.dive4elements.river.artifacts.model.minfo.BedDiffYearResult;
@@ -47,7 +44,6 @@
/** The logger used in this class. */
private static Logger logger = Logger.getLogger(DifferencesState.class);
public static final String I18N_DIFF_YEAR = "beddifference.year";
- public static final String I18N_DIFF_EPOCH = "beddifference.epoch";
public static final String I18N_FACET_BED_DIFF_YEAR = "facet.bedheight.diff.year";
public static final String I18N_FACET_BED_DIFF_YEAR_RAW = "facet.bedheight.diff.year.raw";
@@ -56,8 +52,6 @@
public static final String I18N_FACET_BED_DIFF_SOUNDING = "facet.bedheight.diff.sounding";
public static final String I18N_FACET_BED_DIFF_MORPH1 = "facet.bedheight.diff.morph1";
public static final String I18N_FACET_BED_DIFF_MORPH2 = "facet.bedheight.diff.morph2";
- public static final String I18N_FACET_BED_DIFF_EPOCH = "facet.bedheight.diff.epoch";
- public static final String I18N_FACET_BED_DIFF_EPOCH_RAW = "facet.bedheight.diff.epoch.raw";
public static final String I18N_FACET_BED_DIFF_HEIGHT1 = "facet.bedheight.diff.height1";
public static final String I18N_FACET_BED_DIFF_HEIGHT1_RAW = "facet.bedheight.diff.height1.raw";
public static final String I18N_FACET_BED_DIFF_HEIGHT2 = "facet.bedheight.diff.height2";
@@ -224,72 +218,6 @@
stateId,
hash));
}
- if (results[idx] instanceof BedDiffEpochResult) {
- newFacets.add(new BedDiffEpochFacet(
- idx,
- BED_DIFFERENCE_EPOCH,
- createBedDiffEpochDescription(
- meta,
- (BedDiffEpochResult)results[idx],
- true),
- ComputeType.ADVANCE,
- stateId,
- hash));
- newFacets.add(new BedDiffEpochFacet(
- idx,
- BED_DIFFERENCE_EPOCH_HEIGHT1,
- createBedDiffHeightEpochDescription(
- meta,
- (BedDiffEpochResult)results[idx],
- 0,
- true),
- ComputeType.ADVANCE,
- stateId,
- hash));
- newFacets.add(new BedDiffEpochFacet(
- idx,
- BED_DIFFERENCE_EPOCH_HEIGHT2,
- createBedDiffHeightEpochDescription(
- meta,
- (BedDiffEpochResult)results[idx],
- 1,
- true),
- ComputeType.ADVANCE,
- stateId,
- hash));
- newFacets.add(new BedDiffEpochFilterFacet(
- idx,
- BED_DIFFERENCE_EPOCH_FILTERED,
- createBedDiffEpochDescription(
- meta,
- (BedDiffEpochResult)results[idx],
- false),
- ComputeType.ADVANCE,
- stateId,
- hash));
- newFacets.add(new BedDiffEpochFilterFacet(
- idx,
- BED_DIFFERENCE_EPOCH_HEIGHT1_FILTERED,
- createBedDiffHeightEpochDescription(
- meta,
- (BedDiffEpochResult)results[idx],
- 0,
- false),
- ComputeType.ADVANCE,
- stateId,
- hash));
- newFacets.add(new BedDiffEpochFilterFacet(
- idx,
- BED_DIFFERENCE_EPOCH_HEIGHT2_FILTERED,
- createBedDiffHeightEpochDescription(
- meta,
- (BedDiffEpochResult)results[idx],
- 1,
- false),
- ComputeType.ADVANCE,
- stateId,
- hash));
- }
}
}
@@ -315,34 +243,6 @@
}
}
- private String createBedDiffHeightEpochDescription(
- CallMeta meta,
- BedDiffEpochResult result,
- int ndx,
- boolean raw
- ) {
- DateFormat df = Formatter.getDateFormatter(meta, "yyyy");
- String range =
- df.format(result.getStart())
- + " - " +
- df.format(result.getEnd());
-
- String i18nHeight1 = I18N_FACET_BED_DIFF_HEIGHT1;
- String i18nHeight2 = I18N_FACET_BED_DIFF_HEIGHT2;
- if (raw) {
- i18nHeight1 = I18N_FACET_BED_DIFF_HEIGHT1_RAW;
- i18nHeight2 = I18N_FACET_BED_DIFF_HEIGHT2_RAW;
- }
- if (ndx == 0) {
- return Resources.getMsg(meta, i18nHeight1,
- i18nHeight1, new Object[] { range });
- }
- else {
- return Resources.getMsg(meta, i18nHeight2,
- i18nHeight2, new Object[] {range});
- }
- }
-
protected String createBedDiffYearDescription(
CallMeta meta,
BedDiffYearResult result,
@@ -389,23 +289,6 @@
return Resources.getMsg(meta, i18n, i18n, new Object[] { range });
}
- protected String createBedDiffEpochDescription(
- CallMeta meta,
- BedDiffEpochResult result,
- boolean raw) {
- DateFormat df = Formatter.getDateFormatter(meta, "yyyy");
- String range =
- df.format(result.getStart())
- + " - " +
- df.format(result.getEnd());
-
- String i18n = I18N_FACET_BED_DIFF_EPOCH;
- if (raw) {
- i18n = I18N_FACET_BED_DIFF_EPOCH_RAW;
- }
- return Resources.getMsg(meta, i18n, i18n, new Object[] { range });
- }
-
static {
// Active/deactivate facets.
FacetActivity.Registry.getInstance().register(
@@ -418,12 +301,7 @@
String output
) {
String name = facet.getName();
- if (name.equals(BED_DIFFERENCE_EPOCH) ||
- name.equals(BED_DIFFERENCE_EPOCH_HEIGHT1) ||
- name.equals(BED_DIFFERENCE_EPOCH_HEIGHT2) ||
- name.equals(BED_DIFFERENCE_EPOCH_HEIGHT1_FILTERED) ||
- name.equals(BED_DIFFERENCE_EPOCH_HEIGHT2_FILTERED) ||
- name.equals(BED_DIFFERENCE_HEIGHT_YEAR) ||
+ if (name.equals(BED_DIFFERENCE_HEIGHT_YEAR) ||
name.equals(BED_DIFFERENCE_YEAR) ||
name.equals(BED_DIFFERENCE_YEAR_HEIGHT1) ||
name.equals(BED_DIFFERENCE_YEAR_HEIGHT2) ||
@@ -432,7 +310,6 @@
return Boolean.FALSE;
}
else if (name.equals(BED_DIFFERENCE_SOUNDING_WIDTH) ||
- name.equals(BED_DIFFERENCE_EPOCH_FILTERED) ||
name.equals(BED_DIFFERENCE_HEIGHT_YEAR_FILTERED) ||
name.equals(BED_DIFFERENCE_YEAR_FILTERED)) {
return Boolean.TRUE;
diff -r 42076d94977e -r 45cced06490c artifacts/src/main/java/org/dive4elements/river/artifacts/states/minfo/SedimentLoadCalculate.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/states/minfo/SedimentLoadCalculate.java Wed May 21 11:43:10 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/states/minfo/SedimentLoadCalculate.java Mon Jun 30 11:29:45 2014 +0200
@@ -32,7 +32,7 @@
import org.dive4elements.river.artifacts.model.minfo.SedimentLoadUnknownFacet;
import org.dive4elements.river.artifacts.resources.Resources;
import org.dive4elements.river.artifacts.states.DefaultState;
-import org.dive4elements.river.utils.DateGuesser;
+import org.dive4elements.river.utils.DateUtil;
/** State in which Sediment Load(s) are calculated/retrieved. */
public class SedimentLoadCalculate
@@ -103,9 +103,9 @@
for (int[] date: dates) {
try {
Date s =
- DateGuesser.guessDate(String.valueOf(date[0]));
+ DateUtil.getStartDateFromYear(date[0]);
Date e =
- DateGuesser.guessDate(String.valueOf(date[1]));
+ DateUtil.getEndDateFromYear(date[1]);
if (!(s.after(load.getEnd()) ||
e.before(load.getStart()))) {
return Boolean.TRUE;
diff -r 42076d94977e -r 45cced06490c artifacts/src/main/java/org/dive4elements/river/exports/AbstractExporter.java
--- a/artifacts/src/main/java/org/dive4elements/river/exports/AbstractExporter.java Wed May 21 11:43:10 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/AbstractExporter.java Mon Jun 30 11:29:45 2014 +0200
@@ -62,6 +62,8 @@
/** The default separator for the CSV export. */
public static final char DEFAULT_CSV_SEPARATOR = ';';
+ public static final String START_META_CHAR = "#";
+
/** XPath that points to the desired export facet. */
public static final String XPATH_FACET = "/art:action/@art:type";
@@ -103,6 +105,25 @@
/**
+ * Write lines of informative content to CSV file.
+ * Usually this will be done above the column headers from within
+ * the implementation of writeCSVData in concret subclasses.
+ *
+ * @param writer The CSVWriter
+ * @param infolines Array of Strings with informative content.
+ * Each will be written to a separate line prefixed with START_META_CHAR.
+ */
+ protected void writeCSVInfo(CSVWriter writer, String[] infolines) {
+ String[] metaline = new String[1];
+
+ for (String infoline: infolines) {
+ metaline[0] = START_META_CHAR + " " + infoline;
+ writer.writeNext(metaline);
+ }
+
+ }
+
+ /**
* Concrete subclasses need to use this method to write their special data
* objects into the PDF document.
*/
@@ -263,6 +284,9 @@
request, XPATH_FACET, ArtifactNamespaceContext.INSTANCE);
}
+ protected String msg(String key) {
+ return Resources.getMsg(context.getMeta(), key, key);
+ }
protected String msg(String key, String def) {
return Resources.getMsg(context.getMeta(), key, def);
diff -r 42076d94977e -r 45cced06490c artifacts/src/main/java/org/dive4elements/river/exports/ChartGenerator2.java
--- a/artifacts/src/main/java/org/dive4elements/river/exports/ChartGenerator2.java Wed May 21 11:43:10 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/ChartGenerator2.java Mon Jun 30 11:29:45 2014 +0200
@@ -686,11 +686,8 @@
if (chartSettings != null) {
String subTitle = getChartSubtitle(chartSettings);
- String defSubTitle = getDefaultChartSubtitle();
- if (defSubTitle != null &&
- !defSubTitle.isEmpty() &&
- !subTitle.equals(defSubTitle)) {
- return defSubTitle;
+ if (subTitle == null) {
+ return getDefaultChartSubtitle();
}
else {
return subTitle;
diff -r 42076d94977e -r 45cced06490c artifacts/src/main/java/org/dive4elements/river/exports/DiagramGenerator.java
--- a/artifacts/src/main/java/org/dive4elements/river/exports/DiagramGenerator.java Wed May 21 11:43:10 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/DiagramGenerator.java Mon Jun 30 11:29:45 2014 +0200
@@ -1047,15 +1047,27 @@
@Override
public String getDefaultChartSubtitle() {
String parts = "";
+ DiagramAttributes.Title dTitle = diagramAttributes.getSubtitle();
+ if (dTitle == null &&
+ (subTitleParts == null || subTitleParts.isEmpty())) {
+ /* Subtitle is optional */
+ return null;
+ }
if (subTitleParts != null && !subTitleParts.isEmpty()) {
+ boolean first = true;
+ if (dTitle != null) {
+ first = false;
+ }
for (String p : subTitleParts) {
- parts += ", " + p;
+ if (!first) {
+ parts += ", ";
+ }
+ parts += p;
+ first = false;
}
}
- DiagramAttributes.Title dTitle = diagramAttributes.getSubtitle();
- if (dTitle == null) {
- /* Subtitle is optional */
- return null;
+ if (dTitle == null && parts.length() > 0) {
+ return parts;
}
return dTitle.evaluate((D4EArtifact)getMaster(), context) + parts;
}
diff -r 42076d94977e -r 45cced06490c artifacts/src/main/java/org/dive4elements/river/exports/DischargeCurveGenerator.java
--- a/artifacts/src/main/java/org/dive4elements/river/exports/DischargeCurveGenerator.java Wed May 21 11:43:10 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/DischargeCurveGenerator.java Mon Jun 30 11:29:45 2014 +0200
@@ -374,7 +374,7 @@
* (in imported data they are set to -1 symbolically).
* Return false if data is null or empty
*/
- private boolean hasNoDischarge(double[][] data) {
+ private static boolean hasNoDischarge(double[][] data) {
if (data == null || data.length == 0) {
return false;
}
diff -r 42076d94977e -r 45cced06490c artifacts/src/main/java/org/dive4elements/river/exports/HistoricalDischargeCurveGenerator.java
--- a/artifacts/src/main/java/org/dive4elements/river/exports/HistoricalDischargeCurveGenerator.java Wed May 21 11:43:10 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/HistoricalDischargeCurveGenerator.java Mon Jun 30 11:29:45 2014 +0200
@@ -158,8 +158,14 @@
artifactFacet.getFacetDescription(), theme, visible);
}
else if (FacetTypes.IS.MANUALPOINTS(name)) {
+ HistoricalDischargeAccess.EvaluationMode mode =
+ new HistoricalDischargeAccess((D4EArtifact)getMaster()).getEvaluationMode();
+ int axis = mode == HistoricalDischargeAccess.EvaluationMode.W
+ ? YAXIS.Q.idx
+ : YAXIS.W.idx;
+
doPoints(artifactFacet.getData(context), artifactFacet, theme,
- visible, YAXIS.Q.idx);
+ visible, axis);
}
else {
logger.warn("doOut(): unknown facet name: " + name);
diff -r 42076d94977e -r 45cced06490c artifacts/src/main/java/org/dive4elements/river/exports/LongitudinalSectionGenerator2.java
--- a/artifacts/src/main/java/org/dive4elements/river/exports/LongitudinalSectionGenerator2.java Wed May 21 11:43:10 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/LongitudinalSectionGenerator2.java Mon Jun 30 11:29:45 2014 +0200
@@ -63,22 +63,29 @@
* actually does the output and accesses the facet data.
*/
D4EArtifact artifact = (D4EArtifact)bundle.getArtifact();
-
+ if (context.getContextValue("bounds_defined") != null &&
+ (Boolean)context.getContextValue("bounds_defined")) {
+ super.doOut(bundle, theme, visible);
+ return;
+ }
if (getXBounds(0) != null && getDomainAxisRange() != null) {
Bounds bounds =
calculateZoom(getXBounds(0), getDomainAxisRange());
context.putContextValue("startkm", bounds.getLower());
context.putContextValue("endkm", bounds.getUpper());
+ context.putContextValue("bounds_defined", true);
}
else if (getXBounds(0) != null && getDomainAxisRange() == null) {
context.putContextValue("startkm", getXBounds(0).getLower());
context.putContextValue("endkm", getXBounds(0).getUpper());
+ context.putContextValue("bounds_defined", true);
}
else if (getXBounds(0) == null && getDomainAxisRange() == null) {
RangeAccess access = new RangeAccess(artifact);
if (access.hasFrom() && access.hasTo()) {
context.putContextValue("startkm", access.getFrom());
context.putContextValue("endkm", access.getTo());
+ context.putContextValue("bounds_defined", true);
}
}
else if (getXBounds(0) == null && getDomainAxisRange() != null){
@@ -89,6 +96,7 @@
calculateZoom(b, getDomainAxisRange());
context.putContextValue("startkm", bounds.getLower());
context.putContextValue("endkm", bounds.getUpper());
+ context.putContextValue("bounds_defined", true);
}
}
super.doOut(bundle, theme, visible);
diff -r 42076d94977e -r 45cced06490c artifacts/src/main/java/org/dive4elements/river/exports/TimeseriesChartGenerator.java
--- a/artifacts/src/main/java/org/dive4elements/river/exports/TimeseriesChartGenerator.java Wed May 21 11:43:10 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/TimeseriesChartGenerator.java Mon Jun 30 11:29:45 2014 +0200
@@ -46,7 +46,7 @@
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.data.Range;
import org.jfree.data.general.Series;
-import org.jfree.data.time.Day;
+import org.jfree.data.time.FixedMillisecond;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import org.jfree.data.xy.XYDataset;
@@ -634,7 +634,7 @@
// Add text annotations for single points.
List<XYTextAnnotation> xy = new ArrayList<XYTextAnnotation>();
- HashMap<Day, String> names = new HashMap<Day, String>();
+ HashMap<FixedMillisecond, String> names = new HashMap<FixedMillisecond, String>();
try {
JSONArray points = new JSONArray((String) o);
@@ -649,8 +649,12 @@
}
Date date = decodeXAxisValue(array);
+ long ms = date.getTime();
- Day day = new Day(date);
+ FixedMillisecond day = new FixedMillisecond(ms);
+ while (names.containsKey(day)) {
+ day = new FixedMillisecond(++ms);
+ }
series.add(day, y, false);
names.put(day, name);
}
diff -r 42076d94977e -r 45cced06490c artifacts/src/main/java/org/dive4elements/river/exports/minfo/BedDiffEpochInfoGenerator.java
--- a/artifacts/src/main/java/org/dive4elements/river/exports/minfo/BedDiffEpochInfoGenerator.java Wed May 21 11:43:10 2014 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-/* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
- * Software engineering by Intevation GmbH
- *
- * This file is Free Software under the GNU AGPL (>=v3)
- * and comes with ABSOLUTELY NO WARRANTY! Check out the
- * documentation coming with Dive4Elements River for details.
- */
-
-package org.dive4elements.river.exports.minfo;
-
-import org.dive4elements.river.exports.ChartInfoGenerator;
-
-
-public class BedDiffEpochInfoGenerator
-extends ChartInfoGenerator
-{
- public BedDiffEpochInfoGenerator() {
- super(new BedDifferenceEpochGenerator());
- }
-}
diff -r 42076d94977e -r 45cced06490c artifacts/src/main/java/org/dive4elements/river/exports/minfo/BedDifferenceEpochGenerator.java
--- a/artifacts/src/main/java/org/dive4elements/river/exports/minfo/BedDifferenceEpochGenerator.java Wed May 21 11:43:10 2014 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,269 +0,0 @@
-/* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
- * Software engineering by Intevation GmbH
- *
- * This file is Free Software under the GNU AGPL (>=v3)
- * and comes with ABSOLUTELY NO WARRANTY! Check out the
- * documentation coming with Dive4Elements River for details.
- */
-
-package org.dive4elements.river.exports.minfo;
-
-import org.apache.log4j.Logger;
-import org.jfree.data.xy.XYSeries;
-
-import org.dive4elements.artifactdatabase.state.ArtifactAndFacet;
-import org.dive4elements.artifactdatabase.state.Facet;
-import org.dive4elements.river.artifacts.D4EArtifact;
-import org.dive4elements.river.artifacts.access.FlowVelocityAccess;
-import org.dive4elements.river.artifacts.model.FacetTypes;
-import org.dive4elements.river.artifacts.model.WKms;
-import org.dive4elements.river.artifacts.model.minfo.BedDiffEpochResult;
-import org.dive4elements.river.exports.StyledSeriesBuilder;
-import org.dive4elements.river.exports.fixings.FixChartGenerator;
-import org.dive4elements.river.exports.process.KMIndexProcessor;
-import org.dive4elements.river.exports.process.Processor;
-import org.dive4elements.river.exports.process.WOutProcessor;
-import org.dive4elements.river.jfree.Bounds;
-import org.dive4elements.river.jfree.DoubleBounds;
-import org.dive4elements.river.jfree.RiverAnnotation;
-import org.dive4elements.river.jfree.StyledXYSeries;
-import org.dive4elements.river.themes.ThemeDocument;
-import org.dive4elements.river.utils.RiverUtils;
-
-
-public class BedDifferenceEpochGenerator
-extends FixChartGenerator
-implements FacetTypes
-{
- public enum YAXIS {
- D(0), H(1), dW(2), W(3);
-
- protected int idx;
-
- private YAXIS(int c) {
- idx = c;
- }
- }
-
- /** The logger that is used in this generator. */
- private static Logger logger = Logger.getLogger(BedDifferenceEpochGenerator.class);
-
- public static final String I18N_CHART_TITLE = "chart.beddifference.epoch.title";
- public static final String I18N_XAXIS_LABEL = "chart.beddifference.xaxis.label";
- public static final String I18N_YAXIS_LABEL = "chart.beddifference.yaxis.label.diff";
- public static final String I18N_SECOND_YAXIS_LABEL = "chart.beddifference.yaxis.label.height";
-
- public static final String I18N_CHART_TITLE_DEFAULT = "Sohlenhöhen Differenz";
- public static final String I18N_XAXIS_LABEL_DEFAULT = "Fluss-Km";
- public static final String I18N_YAXIS_LABEL_DEFAULT = "delta S [m]";
- public static final String I18N_SECOND_YAXIS_LABEL_DEFAULT = "Höhe [m]";
- public static final String I18N_DW_YAXIS_LABEL_DEFAULT =
- "delta W [cm]";
- public static final String I18N_DW_YAXIS_LABEL =
- "chart.fixings.longitudinalsection.yaxis.label";
-
- private static final String I18N_W_YAXIS_LABEL =
- "chart.longitudinal.section.yaxis.label";
- private static final String I18N_W_YAXIS_LABEL_DEFAULT = "W [NN + m]";
-
-
- @Override
- protected YAxisWalker getYAxisWalker() {
- return new YAxisWalker() {
-
- @Override
- public int length() {
- return YAXIS.values().length;
- }
-
- @Override
- public String getId(int idx) {
- YAXIS[] yaxes = YAXIS.values();
- return yaxes[idx].toString();
- }
- };
- }
-
- @Override
- public void doOut(ArtifactAndFacet bundle, ThemeDocument attr, boolean visible) {
- String name = bundle.getFacetName();
-
- logger.debug("doOut: " + name);
-
- if (name == null) {
- logger.error("No facet name for doOut(). No output generated!");
- return;
- }
-
- Facet facet = bundle.getFacet();
-
- if (facet == null) {
- return;
- }
-
- setContextBoundsEpoch(bundle);
-
- Processor processor = new KMIndexProcessor();
- Processor woutp = new WOutProcessor();
- if (name.equals(BED_DIFFERENCE_EPOCH)) {
- doBedDifferenceEpochOut(
- (BedDiffEpochResult) bundle.getData(context),
- bundle, attr, visible);
- }
- else if (name.equals(BED_DIFFERENCE_EPOCH_HEIGHT1)) {
- doBedDifferenceHeightsOut((BedDiffEpochResult)bundle.getData(context),
- bundle, attr, visible, 0);
- }
- else if (name.equals(BED_DIFFERENCE_EPOCH_HEIGHT2)) {
- doBedDifferenceHeightsOut((BedDiffEpochResult)bundle.getData(context),
- bundle, attr, visible, 1);
- }
- else if (name.equals(BED_DIFFERENCE_EPOCH_FILTERED)) {
- doBedDifferenceEpochOut(
- (BedDiffEpochResult) bundle.getData(context),
- bundle, attr, visible);
- }
- else if (name.equals(BED_DIFFERENCE_EPOCH_HEIGHT1_FILTERED)) {
- doBedDifferenceHeightsOut((BedDiffEpochResult)bundle.getData(context),
- bundle, attr, visible, 0);
- }
- else if (name.equals(BED_DIFFERENCE_EPOCH_HEIGHT2_FILTERED)) {
- doBedDifferenceHeightsOut((BedDiffEpochResult)bundle.getData(context),
- bundle, attr, visible, 1);
- }
- else if (processor.canHandle(name)) {
- processor.doOut(this, bundle, attr, visible, YAXIS.dW.idx);
- }
- else if (woutp.canHandle(name)) {
- woutp.doOut(this, bundle, attr, visible, YAXIS.W.idx);
- }
- else if (name.equals(W_DIFFERENCES)) {
- doWDifferencesOut(
- (WKms) bundle.getData(context),
- bundle,
- attr,
- visible);
- }
- else if (name.equals(LONGITUDINAL_ANNOTATION)) {
- doAnnotations(
- (RiverAnnotation) bundle.getData(context),
- bundle,
- attr,
- visible);
- }
- else {
- logger.warn("Unknown facet name " + name);
- }
- }
-
- protected void setContextBoundsEpoch(ArtifactAndFacet bundle) {
- if (getXBounds(0) != null && getDomainAxisRange() != null) {
- Bounds bounds =
- calculateZoom(getXBounds(0), getDomainAxisRange());
- context.putContextValue("startkm", bounds.getLower());
- context.putContextValue("endkm", bounds.getUpper());
- }
- else if (getXBounds(0) != null && getDomainAxisRange() == null) {
- context.putContextValue("startkm", getXBounds(0).getLower());
- context.putContextValue("endkm", getXBounds(0).getUpper());
- }
- else if (getXBounds(0) == null && getDomainAxisRange() == null) {
- D4EArtifact artifact = (D4EArtifact)bundle.getArtifact();
- FlowVelocityAccess access = new FlowVelocityAccess(artifact);
- context.putContextValue("startkm", access.getLowerKM());
- context.putContextValue("endkm", access.getUpperKM());
- }
- else if (getXBounds(0) == null && getDomainAxisRange() != null){
- D4EArtifact artifact = (D4EArtifact)bundle.getArtifact();
- FlowVelocityAccess access = new FlowVelocityAccess(artifact);
- Bounds b = new DoubleBounds(access.getLowerKM(), access.getUpperKM());
- Bounds bounds =
- calculateZoom(b, getDomainAxisRange());
- context.putContextValue("startkm", bounds.getLower());
- context.putContextValue("endkm", bounds.getUpper());
- }
- }
-
- @Override
- protected String getDefaultChartTitle() {
- return msg(I18N_CHART_TITLE, I18N_CHART_TITLE_DEFAULT);
- }
-
- @Override
- protected String getDefaultXAxisLabel() {
- return msg(I18N_XAXIS_LABEL,
- I18N_XAXIS_LABEL_DEFAULT,
- new Object[] {getRiverName()});
- }
-
- @Override
- protected String getDefaultYAxisLabel(int pos) {
- String label = "default";
- if (pos == YAXIS.D.idx) {
- label = msg(I18N_YAXIS_LABEL, I18N_YAXIS_LABEL_DEFAULT);
- }
- else if (pos == YAXIS.H.idx) {
- D4EArtifact flys = (D4EArtifact) master;
- label = msg(I18N_SECOND_YAXIS_LABEL,
- I18N_SECOND_YAXIS_LABEL_DEFAULT,
- new Object[]
- { RiverUtils.getRiver(flys).getWstUnit().getName() });
- }
- else if (pos == YAXIS.dW.idx) {
- return msg(I18N_DW_YAXIS_LABEL, I18N_DW_YAXIS_LABEL_DEFAULT);
- }
- else if (pos == YAXIS.W.idx) {
- return msg(I18N_W_YAXIS_LABEL, I18N_W_YAXIS_LABEL_DEFAULT);
- }
- return label;
- }
-
- protected void doBedDifferenceEpochOut(BedDiffEpochResult data,
- ArtifactAndFacet aandf, ThemeDocument theme, boolean visible) {
-
- XYSeries series = new StyledXYSeries(aandf.getFacetDescription(), theme);
- StyledSeriesBuilder.addPoints(series, data.getDifferencesData(), true);
-
- addAxisSeries(series, YAXIS.D.idx, visible);
- }
-
- private void doBedDifferenceHeightsOut(
- BedDiffEpochResult data,
- ArtifactAndFacet bundle,
- ThemeDocument attr,
- boolean visible,
- int idx) {
- logger.debug("doBedDifferenceHeightOut()");
-
- XYSeries series = new StyledXYSeries(bundle.getFacetDescription(), attr);
- if (idx == 0) {
- StyledSeriesBuilder.addPoints(series, data.getHeights1Data(), true);
- }
- else {
- StyledSeriesBuilder.addPoints(series, data.getHeights2Data(), true);
- }
-
- addAxisSeries(series, YAXIS.H.idx, visible);
- }
-
- protected void doWDifferencesOut(
- WKms wkms,
- ArtifactAndFacet aandf,
- ThemeDocument theme,
- boolean visible
- ) {
- if (wkms == null) {
- logger.warn("No data to add to WDifferencesChart.");
- return;
- }
-
- XYSeries series = new StyledXYSeries(aandf.getFacetDescription(), theme);
- StyledSeriesBuilder.addPoints(series, wkms);
-
- addAxisSeries(series, YAXIS.D.idx, visible);
- if (wkms.guessWaterIncreasing()) {
- setInverted(true);
- }
- }
-}
-// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
diff -r 42076d94977e -r 45cced06490c artifacts/src/main/java/org/dive4elements/river/exports/minfo/BedDifferenceExporter.java
--- a/artifacts/src/main/java/org/dive4elements/river/exports/minfo/BedDifferenceExporter.java Wed May 21 11:43:10 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/minfo/BedDifferenceExporter.java Mon Jun 30 11:29:45 2014 +0200
@@ -11,7 +11,7 @@
import java.io.IOException;
import java.io.OutputStream;
import java.text.NumberFormat;
-import java.util.LinkedList;
+import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.HashMap;
@@ -30,6 +30,7 @@
import org.dive4elements.artifacts.CallMeta;
import org.dive4elements.river.artifacts.D4EArtifact;
import org.dive4elements.river.artifacts.access.BedDifferencesAccess;
+import org.dive4elements.river.artifacts.access.RiverAccess;
import org.dive4elements.artifacts.common.utils.Config;
import org.dive4elements.river.artifacts.resources.Resources;
import org.dive4elements.river.artifacts.model.CalculationResult;
@@ -38,7 +39,6 @@
import org.dive4elements.river.artifacts.model.minfo.BedDifferenceJRDataSource;
import org.dive4elements.river.exports.AbstractExporter;
import org.dive4elements.river.utils.Formatter;
-import org.dive4elements.river.utils.RiverUtils;
import au.com.bytecode.opencsv.CSVWriter;
@@ -56,6 +56,9 @@
private static final String CSV_HEADER_DIFF =
"export.minfo.beddifference.diff";
+ private static final String CSV_HEADER_DIFF_PAIR =
+ "export.minfo.beddifference.diff.pair";
+
private static final String CSV_HEADER_MORPH1 =
"export.minfo.beddifference.morph1";
@@ -86,23 +89,29 @@
for (BedDifferencesResult result : results) {
if (result instanceof BedDiffYearResult) {
BedDiffYearResult yResult = (BedDiffYearResult) result;
+ String desc = result.getDiffDescription();
double[][] kms = yResult.getDifferencesData();
double[][] morph1 = yResult.getMorphWidth1Data();
double[][] morph2 = yResult.getMorphWidth2Data();
for (int j = 0; j < kms[0].length; j++) {
writer.writeNext(new String[] {
kmf.format(kms[0][j]),
+ desc,
mf.format(kms[1][j]),
mf.format(morph1[1][j]),
- mf.format(morph2[1][j])});
+ mf.format(morph2[1][j]),
+ });
}
}
else {
double[][] kms = result.getDifferencesData();
+ String desc = result.getDiffDescription();
for (int j = 0; j < kms[0].length; j++) {
writer.writeNext(new String[] {
kmf.format(kms[0][j]),
- mf.format(kms[1][j])});
+ desc,
+ mf.format(kms[1][j]),
+ });
}
}
}
@@ -128,7 +137,8 @@
D4EArtifact arti = (D4EArtifact) master;
- source.addMetaData ("river", RiverUtils.getRivername(arti));
+ //source.addMetaData ("river", RiverUtils.getRivername(arti));
+ source.addMetaData ("river", new RiverAccess(arti).getRiverName());
Locale locale = Resources.getLocale(meta);
DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, locale);
@@ -143,22 +153,30 @@
// Now the dynamic parts
BedDifferencesAccess access = new BedDifferencesAccess(arti);
- source.addMetaData("ye_mode", Resources.getMsg(locale,
- "state.minfo." + access.getYearEpoch(),
- access.getYearEpoch()));
source.addMetaData("differences", StringUtils.join(
access.getDifferenceArtifactNamePairs(), "\n"));
+
+ source.addMetaData("kmheader",
+ msg(CSV_HEADER_KM, "km"));
+ source.addMetaData("diffpairheader",
+ msg(CSV_HEADER_DIFF_PAIR, "Difference pair"));
+ source.addMetaData("diffheader", msg(CSV_HEADER_DIFF, "cm"));
+ source.addMetaData("morph1header",
+ msg(CSV_HEADER_MORPH1, "Morph. active width minuend"));
+ source.addMetaData("morph2header",
+ msg(CSV_HEADER_MORPH2, "Morph. active width subtrahend"));
}
protected void writeCSVHeader(CSVWriter writer) {
logger.debug("writeCSVHeader()");
- List<String> header = new LinkedList<String>();
+ List<String> header = new ArrayList<String>();
if (results != null) {
header.add(msg(CSV_HEADER_KM, "km"));
- header.add(msg(CSV_HEADER_DIFF, "m"));
+ header.add(msg(CSV_HEADER_DIFF_PAIR, "difference pair"));
+ header.add(msg(CSV_HEADER_DIFF, "cm"));
if (results.length > 0 &&
results[0] instanceof BedDiffYearResult) {
header.add(msg(CSV_HEADER_MORPH1, "morph width minuend [m]"));
@@ -175,10 +193,19 @@
NumberFormat kmf = Formatter.getCalculationKm(context.getMeta());
NumberFormat mf = Formatter.getMeterFormat(context);
for (BedDifferencesResult result: results) {
+ BedDiffYearResult yResult = (BedDiffYearResult) result;
double[][] kms = result.getDifferencesData();
+ String desc = result.getDiffDescription();
+ double[][] morph1 = yResult.getMorphWidth1Data();
+ double[][] morph2 = yResult.getMorphWidth2Data();
for (int j = 0; j < kms[0].length; j++) {
source.addData(new String[] {
- kmf.format(kms[0][j]), mf.format(kms[1][j])});
+ kmf.format(kms[0][j]),
+ desc,
+ mf.format(kms[1][j]),
+ mf.format(morph1[1][j]),
+ mf.format(morph2[1][j])
+ });
}
}
return source;
@@ -196,7 +223,7 @@
String confPath = Config.getConfigDirectory().toString();
- Map parameters = new HashMap();
+ Map<String, Object> parameters = new HashMap<String, Object>();
parameters.put("ReportTitle", Resources.getMsg(
context.getMeta(), PDF_TITLE, "Exported Data"));
try {
diff -r 42076d94977e -r 45cced06490c artifacts/src/main/java/org/dive4elements/river/exports/process/BedWidthProcessor.java
--- a/artifacts/src/main/java/org/dive4elements/river/exports/process/BedWidthProcessor.java Wed May 21 11:43:10 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/process/BedWidthProcessor.java Mon Jun 30 11:29:45 2014 +0200
@@ -19,6 +19,7 @@
import org.dive4elements.river.artifacts.model.FacetTypes;
import org.dive4elements.river.exports.DiagramGenerator;
import org.dive4elements.river.exports.StyledSeriesBuilder;
+import org.dive4elements.river.jfree.GapInserter;
import org.dive4elements.river.jfree.StyledXYSeries;
import org.dive4elements.river.themes.ThemeDocument;
@@ -39,6 +40,9 @@
"chart.beddifference.yaxis.label.morph";
protected String yAxisLabel;
+
+ public static final double GAP_WIDTH = 100.0;
+
@Override
public void doOut(
DiagramGenerator generator,
@@ -78,8 +82,10 @@
double[] width = bData.getSoundingWidths();
double[] stations = bData.getStations().toNativeArray();
+ GapInserter gi = new GapInserter(series, GAP_WIDTH);
+
for (int i = 0; i < width.length; i++) {
- series.add(stations[i], width[i], false);
+ gi.add(stations[i], width[i]);
}
} else if (data instanceof List<?>) {
List<BedHeightSingleValue> bData = (List<BedHeightSingleValue>)data;
diff -r 42076d94977e -r 45cced06490c artifacts/src/main/java/org/dive4elements/river/exports/process/FlowVelocityProcessor.java
--- a/artifacts/src/main/java/org/dive4elements/river/exports/process/FlowVelocityProcessor.java Wed May 21 11:43:10 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/process/FlowVelocityProcessor.java Mon Jun 30 11:29:45 2014 +0200
@@ -15,7 +15,11 @@
import org.dive4elements.artifactdatabase.state.ArtifactAndFacet;
import org.dive4elements.artifacts.CallContext;
+import org.dive4elements.river.artifacts.D4EArtifact;
+import org.dive4elements.river.artifacts.access.RiverAccess;
+import org.dive4elements.river.artifacts.context.RiverContext;
import org.dive4elements.river.artifacts.model.FacetTypes;
+import org.dive4elements.river.artifacts.model.ZoomScale;
import org.dive4elements.river.exports.DiagramGenerator;
import org.dive4elements.river.exports.StyledSeriesBuilder;
import org.dive4elements.river.jfree.StyledXYSeries;
@@ -23,6 +27,7 @@
import org.dive4elements.river.model.FlowVelocityMeasurementValue.FastFlowVelocityMeasurementValue;
import org.dive4elements.river.artifacts.model.FlowVelocityData;
+import org.dive4elements.river.artifacts.resources.Resources;
public class FlowVelocityProcessor extends DefaultProcessor {
@@ -33,6 +38,8 @@
"chart.flow_velocity.section.yaxis.label";
public static final String I18N_AXIS_LABEL_DEFAULT =
"Geschwindigkeit v [m/s]";
+ public static final String I18N_SUBTITLE_RADIUS =
+ "chart.subtitle.radius";
protected String yAxisLabel;
@@ -76,7 +83,24 @@
return;
}
StyledSeriesBuilder.addPoints(series, points, true);
+ Double start = (Double)context.getContextValue("startkm");
+ Double end = (Double)context.getContextValue("endkm");
+ if (start != null && end != null) {
+ logger.debug("start: " + start + " end: " + end);
+ D4EArtifact artifact = (D4EArtifact)bundle.getArtifact();
+ RiverContext fc = (RiverContext)context.globalContext();
+ // Adaptive smoothing, based on zoom factor/diagram extents.
+ ZoomScale scales = (ZoomScale)fc.get("zoomscale");
+ RiverAccess access = new RiverAccess((D4EArtifact)artifact);
+ String river = access.getRiverName();
+ double radius = scales.getRadius(river, start, end);
+ logger.debug("add a subtitle");
+ generator.addSubtitle(Resources.getMsg(
+ context.getMeta(),
+ I18N_SUBTITLE_RADIUS,
+ new Object[] { radius }));
+ }
generator.addAxisSeries(series, axisName, visible);
}
diff -r 42076d94977e -r 45cced06490c artifacts/src/main/java/org/dive4elements/river/exports/sq/SQRelationExporter.java
--- a/artifacts/src/main/java/org/dive4elements/river/exports/sq/SQRelationExporter.java Wed May 21 11:43:10 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/sq/SQRelationExporter.java Mon Jun 30 11:29:45 2014 +0200
@@ -57,6 +57,50 @@
private static final Logger logger =
Logger.getLogger(SQRelationExporter.class);
+ public static final String INFO_COEFF_A =
+ "export.sqrelation.csv.info.coeff.a";
+
+ public static final String INFO_COEFF_B =
+ "export.sqrelation.csv.info.coeff.b";
+
+ public static final String INFO_QMAX =
+ "export.sqrelation.csv.info.qmax";
+
+ public static final String INFO_STDERR =
+ "export.sqrelation.csv.info.stderr";
+
+ public static final String INFO_R2 =
+ "export.sqrelation.csv.info.r2";
+
+ public static final String INFO_NTOT =
+ "export.sqrelation.csv.info.ntot";
+
+ public static final String INFO_NOUTL =
+ "export.sqrelation.csv.info.noutl";
+
+ public static final String INFO_CFERGUSON =
+ "export.sqrelation.csv.info.cferguson";
+
+ public static final String INFO_CDUAN =
+ "export.sqrelation.csv.info.cduan";
+
+ public static final String INFO_PARAM_A =
+ "export.sqrelation.csv.info.param.a";
+
+ public static final String INFO_PARAM_B =
+ "export.sqrelation.csv.info.param.b";
+
+ public static final String INFO_PARAM_C =
+ "export.sqrelation.csv.info.param.c";
+
+ public static final String INFO_PARAM_D =
+ "export.sqrelation.csv.info.param.d";
+
+ public static final String INFO_PARAM_E =
+ "export.sqrelation.csv.info.param.e";
+
+ public static final String INFO_PARAM_F =
+ "export.sqrelation.csv.info.param.f";
public static final String CSV_PARAMETER =
"export.sqrelation.csv.header.parameter";
@@ -130,17 +174,17 @@
protected void writeCSVHeader(CSVWriter writer) {
writer.writeNext(new String[] {
- msg(CSV_KM , CSV_KM),
- msg(CSV_PARAMETER, CSV_PARAMETER),
- msg(CSV_COEFF_A , CSV_COEFF_A),
- msg(CSV_COEFF_B , CSV_COEFF_B),
- msg(CSV_SD, CSV_SD),
- msg(CSV_QMAX, CSV_QMAX),
- msg(CSV_COEFF_R, CSV_COEFF_R),
- msg(CSV_N_TOTAL , CSV_N_TOTAL),
- msg(CSV_N_OUTLIERS, CSV_N_OUTLIERS),
- msg(CSV_C_DUAN, CSV_C_DUAN),
- msg(CSV_C_FERGUSON, CSV_C_FERGUSON)
+ msg(CSV_KM),
+ msg(CSV_PARAMETER),
+ msg(CSV_COEFF_A),
+ msg(CSV_COEFF_B),
+ msg(CSV_SD),
+ msg(CSV_QMAX),
+ msg(CSV_COEFF_R),
+ msg(CSV_N_TOTAL),
+ msg(CSV_N_OUTLIERS),
+ msg(CSV_C_DUAN),
+ msg(CSV_C_FERGUSON)
});
}
@@ -148,6 +192,24 @@
protected void writeCSVData(CSVWriter writer) {
logger.debug("writeCSVData");
+ writeCSVInfo(writer, new String[] {
+ msg(INFO_COEFF_A),
+ msg(INFO_COEFF_B),
+ msg(INFO_QMAX),
+ msg(INFO_STDERR),
+ msg(INFO_R2),
+ msg(INFO_NTOT),
+ msg(INFO_NOUTL),
+ msg(INFO_CFERGUSON),
+ msg(INFO_CDUAN),
+ msg(INFO_PARAM_A),
+ msg(INFO_PARAM_B),
+ msg(INFO_PARAM_C),
+ msg(INFO_PARAM_D),
+ msg(INFO_PARAM_E),
+ msg(INFO_PARAM_F)
+ });
+
writeCSVHeader(writer);
for (SQResult [] results: data) {
diff -r 42076d94977e -r 45cced06490c artifacts/src/main/java/org/dive4elements/river/jfree/AnnotationHelper.java
--- a/artifacts/src/main/java/org/dive4elements/river/jfree/AnnotationHelper.java Wed May 21 11:43:10 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/jfree/AnnotationHelper.java Mon Jun 30 11:29:45 2014 +0200
@@ -83,6 +83,11 @@
color = Color.BLACK;
}
+ Color textColor = theme.parseTextColor();
+ if (textColor == null) {
+ textColor = Color.BLACK;
+ }
+
LegendItem newItem = new LegendItem(fa.getLabel(), color);
LegendSection ls = (settings != null ?
settings.getLegendSection() : null);
@@ -92,6 +97,8 @@
ls != null ? ls.getFontSize() : null)
);
+ newItem.setLabelPaint(textColor);
+
lic.add(newItem);
// (Re-)Add prior legend entries.
if (old != null) {
diff -r 42076d94977e -r 45cced06490c artifacts/src/main/java/org/dive4elements/river/jfree/GapInserter.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/artifacts/src/main/java/org/dive4elements/river/jfree/GapInserter.java Mon Jun 30 11:29:45 2014 +0200
@@ -0,0 +1,27 @@
+package org.dive4elements.river.jfree;
+
+import org.jfree.data.xy.XYSeries;
+
+public class GapInserter {
+
+ private XYSeries series;
+ private double gap;
+ private double lastX;
+
+ public GapInserter() {
+ }
+
+ public GapInserter(XYSeries series, double gap) {
+ lastX = Double.NaN;
+ this.series = series;
+ this.gap = Math.abs(gap);
+ }
+
+ public void add(double x, double y) {
+ if (!Double.isNaN(lastX) && !Double.isNaN(x) && Math.abs(x - lastX) > gap) {
+ series.add((x + lastX)/2.0, Double.NaN, false);
+ }
+ series.add(x, y, false);
+ lastX = x;
+ }
+}
diff -r 42076d94977e -r 45cced06490c artifacts/src/main/java/org/dive4elements/river/jfree/StableXYDifferenceRenderer.java
--- a/artifacts/src/main/java/org/dive4elements/river/jfree/StableXYDifferenceRenderer.java Wed May 21 11:43:10 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/jfree/StableXYDifferenceRenderer.java Mon Jun 30 11:29:45 2014 +0200
@@ -157,7 +157,7 @@
/** For serialization. */
private static final long serialVersionUID = -8447915602375584857L;
- /** The paint used to highlight positive differences (y(0) > y(1)). */
+ /** The paint used to highlight positive differences (y(0) > y(1)). */
private transient Paint positivePaint;
/** The paint used to highlight negative differences (y(0) < y(1)). */
diff -r 42076d94977e -r 45cced06490c artifacts/src/main/java/org/dive4elements/river/utils/RiverMapfileGenerator.java
--- a/artifacts/src/main/java/org/dive4elements/river/utils/RiverMapfileGenerator.java Wed May 21 11:43:10 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/utils/RiverMapfileGenerator.java Mon Jun 30 11:29:45 2014 +0200
@@ -32,9 +32,6 @@
public class RiverMapfileGenerator extends MapfileGenerator {
- public static final String XPATH_RIVERMAP_RIVER_PROJECTION =
- "/artifact-database/rivermap/river[@name=$name]/srid/@value";
-
public static final String XPATH_RIVERMAP_SHAPEFILE_DIR =
"/artifact-database/rivermap/shapefile-path/@value";
diff -r 42076d94977e -r 45cced06490c artifacts/src/main/resources/messages.properties
--- a/artifacts/src/main/resources/messages.properties Wed May 21 11:43:10 2014 +0200
+++ b/artifacts/src/main/resources/messages.properties Mon Jun 30 11:29:45 2014 +0200
@@ -333,6 +333,8 @@
facet.gauge_discharge_curve.gauge_location = Location of the gauge
facet.morphologic.width = morphologic Width
+facet.porosity = {0}
+
chart.beddifference.height.title = Bedheight Difference
chart.beddifference.height.xaxis.label = {0}-km
chart.beddifference.height.yaxis.label = Difference [cm/year]
@@ -343,8 +345,7 @@
chart.beddifference.year.title = Bedheight Difference
chart.beddifference.yaxis.label.morph = Width [m]
chart.beddifference.yaxis.label.heights = Absolute Height [{0}]
-chart.beddifference.subtitle.radius = Fensterbreite für gewichtete Mittel: {0}km
-chart.subtitle.radius = Radius for weighted Average: {0}km
+chart.subtitle.radius = Width of sample window for moving average: {0} km
export.waterlevel.csv.header.km = River-Km
export.waterlevel.csv.header.w = W [{0}]
@@ -423,6 +424,21 @@
export.sedimentload_ls.csv.header.suspsediment = susp. sediment
export.sedimentload_ls.csv.header.suspsandbb = susp. sand (BB)
export.sedimentload_ls.csv.header.total = total
+export.sqrelation.csv.info.coeff.a = a: coefficient of transport curve
+export.sqrelation.csv.info.coeff.b = b: exponent of transport curve
+export.sqrelation.csv.info.qmax = Q max, measured: maximum measured discharge [m\u00b3/s]
+export.sqrelation.csv.info.stderr = standard error: natural logarithm of standard deviation
+export.sqrelation.csv.info.r2 = r^2: coefficient of determination
+export.sqrelation.csv.info.ntot = n total: number of measurements
+export.sqrelation.csv.info.noutl = n outliers: number of outliers
+export.sqrelation.csv.info.cferguson = CFERGUSON: bias correction (Ferguson, 1986)
+export.sqrelation.csv.info.cduan = CDUAN: bias correction (Duan, 1983)
+export.sqrelation.csv.info.param.a = Parameter A: transport of fine material (< 0.063 mm)
+export.sqrelation.csv.info.param.b = Parameter B: transport of suspended sand (0.063-2 mm)
+export.sqrelation.csv.info.param.c = Parameter C: transport of sand (0.063-2 mm)
+export.sqrelation.csv.info.param.d = Parameter D: transport of fine and medium gravel (2-16 mm)
+export.sqrelation.csv.info.param.e = Parameter E: transport of coarse gravel (> Mittelkies)(16-125 mm)
+export.sqrelation.csv.info.param.f = Parameter F: transport of bed load (0.063-125 mm)
export.sqrelation.csv.header.parameter = Parameter
export.sqrelation.csv.header.station = Station
export.sqrelation.csv.header.km = River-Km
@@ -437,7 +453,7 @@
export.sqrelation.csv.header.c.duan = C (Duan)
export.sqrelation.csv.header.c.ferguson = C (Ferguson)
export.sqrelation.csv.header.sd = Standard error
-export.sqrelation.csv.header.qmax = Q max,measured
+export.sqrelation.csv.header.qmax = Q max, measured [m\u00b3/s]
export.sqrelation.pdf.file = /jasper/sqrelation_en.jasper
export.sqrelation.pdf.mode = Load Discharge Relation
export.minfo.bedquality.km = km
@@ -449,7 +465,8 @@
export.minfo.bedquality.bed_cap = Bed Diameter Toplayer
export.minfo.bedquality.bed_sub = Bed Diameter Sublayer
export.minfo.beddifference.km = km
-export.minfo.beddifference.diff = m
+export.minfo.beddifference.diff = Bedheight Difference [cm]
+export.minfo.beddifference.diff.pair = Difference pair
export.minfo.beddifference.pdf.file = /jasper/beddifference_en.jasper
export.minfo.beddifference.pdf.title = Bedheight Difference
export.minfo.beddifference.pdf.mode = Bedheight Difference
@@ -572,6 +589,7 @@
help.state.minfo.dischargestate=${help.url}/OnlineHilfe/MINFO#help.state.minfo.dischargestate
help.state.minfo.soundings=${help.url}/OnlineHilfe/MINFO#help.state.minfo.soundings
help.state.minfo.bed.difference_select=${help.url}/OnlineHilfe/MINFO#help.state.minfo.bed.difference_select
+help.state.minfo.sq.outliermethod=${help.url}/OnlineHilfe/MINFO#help.state.minfo.sq.outliermethod
help.state.minfo.sq.outliers=${help.url}/OnlineHilfe/MINFO#help.state.minfo.sq.outliers
help.state.minfo.sediment.load.year_epoch=${help.url}/OnlineHilfe/MINFO#help.state.minfo.sediment.load.year_epoch
help.state.minfo.sediment.load.location=${help.url}/OnlineHilfe/MINFO#help.state.minfo.sediment.load.location
diff -r 42076d94977e -r 45cced06490c artifacts/src/main/resources/messages_de.properties
--- a/artifacts/src/main/resources/messages_de.properties Wed May 21 11:43:10 2014 +0200
+++ b/artifacts/src/main/resources/messages_de.properties Mon Jun 30 11:29:45 2014 +0200
@@ -315,7 +315,6 @@
facet.bedheight.sounding_width = gepeilte Breite ({0})
facet.bedheight.diff.morph1 = Morph. aktive Breite Minuend
facet.bedheight.diff.morph2 = Morph. aktive Breite Subtrahend
-facet.bedheight.sounding_width = gepeilte Breite ({0})
facet.bedheight.diff.sounding = gepeilte Breite
facet.bedheight.diff.height1 = H\u00f6he Minuend {0}
facet.bedheight.diff.height2 = H\u00f6he Subtrahend {0}
@@ -334,6 +333,8 @@
facet.gauge_discharge_curve.gauge_location = Pegelort
facet.morphologic.width = Morphologische Breite
+facet.porosity = {0}
+
chart.beddifference.height.title = Sohlh\u00f6hendifferenz
chart.beddifference.height.xaxis.label = {0}-km
chart.beddifference.height.yaxis.label = Differenz [cm/Jahr]
@@ -344,7 +345,7 @@
chart.beddifference.year.title = Sohlh\u00f6hendifferenz
chart.beddifference.yaxis.label.morph = Breite [m]
chart.beddifference.yaxis.label.heights = Absolute H\u00f6he [m]
-chart.subtitle.radius = Fensterbreite f\u00fcr gewichtete Mittel: {0}km
+chart.subtitle.radius = Fensterbreite f\u00fcr gleitenden Mittelwert: {0} km
export.waterlevel.csv.header.km = Fluss-Km
export.waterlevel.csv.header.w = W [{0}]
@@ -424,6 +425,21 @@
export.sedimentload_ls.csv.header.suspsandbb = susp.Sand(BB)
export.sedimentload_ls.csv.header.suspsediment = Schwebst.
export.sedimentload_ls.csv.header.total = Gesamt
+export.sqrelation.csv.info.coeff.a = a: Transportkurvenkoeffizient
+export.sqrelation.csv.info.coeff.b = b: Transportkurvenexponent
+export.sqrelation.csv.info.qmax = Q max, gemessen: maximal gemessener Abfluss [m\u00b3/s]
+export.sqrelation.csv.info.stderr = Standardfehler: nat\u00fcrlicher Logarithmus der Standardabweichung
+export.sqrelation.csv.info.r2 = r^2: Bestimmtheitsma\u00df
+export.sqrelation.csv.info.ntot = n Gesamt: Anzahl Messwerte
+export.sqrelation.csv.info.noutl = n Ausrei\u00dfer: Anzahl Ausrei\u00dfer
+export.sqrelation.csv.info.cferguson = CFERGUSON: Bias Korrektur nach Ferguson 1986
+export.sqrelation.csv.info.cduan = CDUAN: Bias Korrektur nach Duan 1983
+export.sqrelation.csv.info.param.a = Parameter A: Sedimenttransport von Feinkornanteil (< 0.063 mm)
+export.sqrelation.csv.info.param.b = Parameter B: Sedimenttransport von Sand (Suspensionstransort)(0.063-2 mm)
+export.sqrelation.csv.info.param.c = Parameter C: Sedimenttransport von Sand (Geschiebetransport) (0.063-2 mm)
+export.sqrelation.csv.info.param.d = Parameter D: Sedimenttransport von Fein- und Mittelkies (2-16 mm)
+export.sqrelation.csv.info.param.e = Parameter E: Sedimenttransport von Grobkornanteil (> Mittelkies)(16-125 mm)
+export.sqrelation.csv.info.param.f = Parameter F: Sedimenttransport von Geschiebtransportgesamt (0.063-125 mm)
export.sqrelation.csv.header.parameter = Parameter
export.sqrelation.csv.header.station = Station
export.sqrelation.csv.header.km = Fluss-Km
@@ -438,7 +454,7 @@
export.sqrelation.csv.header.c.duan = C (Duan)
export.sqrelation.csv.header.c.ferguson = C (Ferguson)
export.sqrelation.csv.header.sd = Standardfehler
-export.sqrelation.csv.header.qmax = Q max,gemessen
+export.sqrelation.csv.header.qmax = Q max, gemessen [m\u00b3/s]
export.sqrelation.pdf.file = /jasper/sqrelation.jasper
export.sqrelation.pdf.mode = Transport-Abfluss Beziehung
export.minfo.bedquality.km = km
@@ -450,7 +466,8 @@
export.minfo.bedquality.bed_cap = Sohldurchmesser Deckschicht [mm]
export.minfo.bedquality.bed_sub = Sohldurchmesser Unterschicht [mm]
export.minfo.beddifference.km = Fluss-km
-export.minfo.beddifference.diff = m
+export.minfo.beddifference.diff = Sohlh\u00f6hendifferenz [cm]
+export.minfo.beddifference.diff.pair = Differenzenpaar
export.minfo.beddifference.pdf.file = /jasper/beddifference.jasper
export.minfo.beddifference.pdf.title = Sohlh\u00f6hendifferenz
export.minfo.beddifference.pdf.mode = Sohlh\u00f6hendifferenz
@@ -575,6 +592,7 @@
help.state.minfo.dischargestate=${help.url}/OnlineHilfe/MINFO#help.state.minfo.dischargestate
help.state.minfo.soundings=${help.url}/OnlineHilfe/MINFO#help.state.minfo.soundings
help.state.minfo.bed.difference_select=${help.url}/OnlineHilfe/MINFO#help.state.minfo.bed.difference_select
+help.state.minfo.sq.outliermethod=${help.url}/OnlineHilfe/MINFO#help.state.minfo.sq.outliermethod
help.state.minfo.sq.outliers=${help.url}/OnlineHilfe/MINFO#help.state.minfo.sq.outliers
help.state.minfo.sediment.load.year_epoch=${help.url}/OnlineHilfe/MINFO#help.state.minfo.sediment.load.year_epoch
help.state.minfo.sediment.load.location=${help.url}/OnlineHilfe/MINFO#help.state.minfo.sediment.load.location
@@ -647,7 +665,7 @@
fix.cannot.load.data=Daten konnten nicht aus der Datenbank geladen werden
fix.realize.missing.is.q=Kein Q-Wert verf\u00fcgbar
-fix.realize.missing.segments=Werte für Pegelstrecken nicht angegeben
+fix.realize.missing.segments=Werte f\u00fcr Pegelstrecken nicht angegeben
fix.no.such.river=Gew\u00e4sser nicht gefunden
fix.cannot.find.segment=Au\u00dferhalb der Pegelg\u00fcltigkeit
fix.cannot.calculate.function=Funktionsauswerung fehlgeschlagen
diff -r 42076d94977e -r 45cced06490c artifacts/src/main/resources/messages_de_DE.properties
--- a/artifacts/src/main/resources/messages_de_DE.properties Wed May 21 11:43:10 2014 +0200
+++ b/artifacts/src/main/resources/messages_de_DE.properties Mon Jun 30 11:29:45 2014 +0200
@@ -331,6 +331,8 @@
facet.gauge_discharge_curve.gauge_location = Pegelort
facet.morphologic.width = Morphologische Breite
+facet.porosity = {0}
+
chart.beddifference.height.title = Sohlh\u00f6hendifferenz
chart.beddifference.height.xaxis.label = {0}-km
chart.beddifference.height.yaxis.label = Differenz [cm/Jahr]
@@ -341,7 +343,7 @@
chart.beddifference.year.title = Sohlh\u00f6hendifferenz
chart.beddifference.yaxis.label.morph = Breite [m]
chart.beddifference.yaxis.label.heights = Absolute H\u00f6he [{0}]
-chart.subtitle.radius = Fensterbreite f\u00fcr gewichtete Mittel: {0}km
+chart.subtitle.radius = Fensterbreite f\u00fcr gleitenden Mittelwert: {0} km
export.waterlevel.csv.header.km = Fluss-Km
export.waterlevel.csv.header.w = W [{0}]
@@ -420,6 +422,21 @@
export.sedimentload_ls.csv.header.suspsandbb = susp.Sand(BB)
export.sedimentload_ls.csv.header.suspsediment = Schwebst.
export.sedimentload_ls.csv.header.total = Gesamt
+export.sqrelation.csv.info.coeff.a = a: Transportkurvenkoeffizient
+export.sqrelation.csv.info.coeff.b = b: Transportkurvenexponent
+export.sqrelation.csv.info.qmax = Q max, gemessen: maximal gemessener Abfluss [m\u00b3/s]
+export.sqrelation.csv.info.stderr = Standardfehler: nat\u00fcrlicher Logarithmus der Standardabweichung
+export.sqrelation.csv.info.r2 = r^2: Bestimmtheitsma\u00df
+export.sqrelation.csv.info.ntot = n Gesamt: Anzahl Messwerte
+export.sqrelation.csv.info.noutl = n Ausrei\u00dfer: Anzahl Ausrei\u00dfer
+export.sqrelation.csv.info.cferguson = CFERGUSON: Bias Korrektur nach Ferguson 1986
+export.sqrelation.csv.info.cduan = CDUAN: Bias Korrektur nach Duan 1983
+export.sqrelation.csv.info.param.a = Parameter A: Sedimenttransport von Feinkornanteil (< 0.063 mm)
+export.sqrelation.csv.info.param.b = Parameter B: Sedimenttransport von Sand (Suspensionstransort)(0.063-2 mm)
+export.sqrelation.csv.info.param.c = Parameter C: Sedimenttransport von Sand (Geschiebetransport) (0.063-2 mm)
+export.sqrelation.csv.info.param.d = Parameter D: Sedimenttransport von Fein- und Mittelkies (2-16 mm)
+export.sqrelation.csv.info.param.e = Parameter E: Sedimenttransport von Grobkornanteil (> Mittelkies)(16-125 mm)
+export.sqrelation.csv.info.param.f = Parameter F: Sedimenttransport von Geschiebtransportgesamt (0.063-125 mm)
export.sqrelation.csv.header.parameter = Parameter
export.sqrelation.csv.header.station = Station
export.sqrelation.csv.header.km = Fluss-Km
@@ -434,7 +451,7 @@
export.sqrelation.csv.header.c.duan = C (Duan)
export.sqrelation.csv.header.c.ferguson = C (Ferguson)
export.sqrelation.csv.header.sd = Standardfehler
-export.sqrelation.csv.header.qmax = Q max,gemessen
+export.sqrelation.csv.header.qmax = Q max, gemessen [m\u00b3/s]
export.sqrelation.pdf.file = /jasper/sqrelation.jasper
export.sqrelation.pdf.mode = Transport-Abfluss Beziehung
export.minfo.bedquality.km = km
@@ -446,7 +463,8 @@
export.minfo.bedquality.bed_cap = Sohldurchmesser Deckschicht [mm]
export.minfo.bedquality.bed_sub = Sohldurchmesser Unterschicht [mm]
export.minfo.beddifference.km = Fluss-km
-export.minfo.beddifference.diff = m
+export.minfo.beddifference.diff = Sohlh\u00f6hendifferenz [cm]
+export.minfo.beddifference.diff.pair = Differenzenpaar
export.minfo.beddifference.pdf.file = /jasper/beddifference.jasper
export.minfo.beddifference.pdf.title = Sohlh\u00f6hendifferenz
export.minfo.beddifference.pdf.mode = Sohlh\u00f6hendifferenz
@@ -645,7 +663,7 @@
fix.cannot.load.data=Daten konnten nicht aus der Datenbank geladen werden
fix.realize.missing.is.q=Kein Q-Wert verf\u00fcgbar
-fix.realize.missing.segments=Werte für Pegelstrecken nicht angegeben
+fix.realize.missing.segments=Werte f\u00fcr Pegelstrecken nicht angegeben
fix.no.such.river=Gew\u00e4sser nicht gefunden
fix.cannot.find.segment=Au\u00dferhalb der Pegelg\u00fcltigkeit
fix.cannot.calculate.function=Funktionsauswerung fehlgeschlagen
diff -r 42076d94977e -r 45cced06490c artifacts/src/main/resources/messages_en.properties
--- a/artifacts/src/main/resources/messages_en.properties Wed May 21 11:43:10 2014 +0200
+++ b/artifacts/src/main/resources/messages_en.properties Mon Jun 30 11:29:45 2014 +0200
@@ -165,7 +165,6 @@
chart.longitudinal.section.yaxis.label = W [{0}]
chart.longitudinal.section.yaxis.second.label = Q [m\u00b3/s]
chart.longitudinal.annotations.label = {0}.km
-chart.computed.discharge.curve.gauge = Discharge curve at gauge {0} (km {1})
chart.discharge.curve.title = Discharge Curve
chart.discharge.curve.xaxis.label = Q [m\u00b3/s]
chart.discharge.curve.yaxis.label = W [cm]
@@ -337,6 +336,8 @@
facet.gauge_discharge_curve.gauge_location = Location of the gauge
facet.morphologic.width = morphologic Width
+facet.porosity = {0}
+
chart.beddifference.height.title = Bedheight Difference
chart.beddifference.height.xaxis.label = {0}-km
chart.beddifference.height.yaxis.label = Difference [cm/year]
@@ -347,7 +348,7 @@
chart.beddifference.year.title = Bedheight Difference
chart.beddifference.yaxis.label.morph = Width [m]
chart.beddifference.yaxis.label.heights = Absolute Height [m]
-chart.subtitle.radius = Radius for weighted Average: {0}km
+chart.subtitle.radius = Radius for weighted Average: {0} km
export.waterlevel.csv.header.km = River-Km
export.waterlevel.csv.header.w = W [{0}]
@@ -426,6 +427,21 @@
export.sedimentload_ls.csv.header.suspsand = susp. sand
export.sedimentload_ls.csv.header.suspsediment = susp. sediment
export.sedimentload_ls.csv.header.total = total
+export.sqrelation.csv.info.coeff.a = a: coefficient of transport curve
+export.sqrelation.csv.info.coeff.b = b: exponent of transport curve
+export.sqrelation.csv.info.qmax = Q max, measured: maximum measured discharge [m\u00b3/s]
+export.sqrelation.csv.info.stderr = standard error: natural logarithm of standard deviation
+export.sqrelation.csv.info.r2 = r^2: coefficient of determination
+export.sqrelation.csv.info.ntot = n total: number of measurements
+export.sqrelation.csv.info.noutl = n outliers: number of outliers
+export.sqrelation.csv.info.cferguson = CFERGUSON: bias correction (Ferguson, 1986)
+export.sqrelation.csv.info.cduan = CDUAN: bias correction (Duan, 1983)
+export.sqrelation.csv.info.param.a = Parameter A: transport of fine material (< 0.063 mm)
+export.sqrelation.csv.info.param.b = Parameter B: transport of suspended sand (0.063-2 mm)
+export.sqrelation.csv.info.param.c = Parameter C: transport of sand (0.063-2 mm)
+export.sqrelation.csv.info.param.d = Parameter D: transport of fine and medium gravel (2-16 mm)
+export.sqrelation.csv.info.param.e = Parameter E: transport of coarse gravel (> Mittelkies)(16-125 mm)
+export.sqrelation.csv.info.param.f = Parameter F: transport of bed load (0.063-125 mm)
export.sqrelation.csv.header.parameter = Parameter
export.sqrelation.csv.header.station = Station
export.sqrelation.csv.header.km = River-Km
@@ -440,7 +456,7 @@
export.sqrelation.csv.header.c.duan = C (Duan)
export.sqrelation.csv.header.c.ferguson = C (Ferguson)
export.sqrelation.csv.header.sd = Standard error
-export.sqrelation.csv.header.qmax = Q max,measured
+export.sqrelation.csv.header.qmax = Q max, measured [m\u00b3/s]
export.sqrelation.pdf.file = /jasper/sqrelation_en.jasper
export.sqrelation.pdf.mode = Load Discharge Relation
export.minfo.bedquality.km = km
@@ -452,7 +468,8 @@
export.minfo.bedquality.bed_cap = Bed Diameter Toplayer [mm]
export.minfo.bedquality.bed_sub = Bed Diameter Sublayer [mm]
export.minfo.beddifference.km = km
-export.minfo.beddifference.diff = m
+export.minfo.beddifference.diff = Bedheight Difference [cm]
+export.minfo.beddifference.diff.pair = Difference pair
export.minfo.beddifference.pdf.file = /jasper/beddifference_en.jasper
export.minfo.beddifference.pdf.title = Bedheight Difference
export.minfo.beddifference.pdf.mode = Bedheight Difference
@@ -576,6 +593,7 @@
help.state.minfo.dischargestate=${help.url}/OnlineHilfe/MINFO#help.state.minfo.dischargestate
help.state.minfo.soundings=${help.url}/OnlineHilfe/MINFO#help.state.minfo.soundings
help.state.minfo.bed.difference_select=${help.url}/OnlineHilfe/MINFO#help.state.minfo.bed.difference_select
+help.state.minfo.sq.outliermethod=${help.url}/OnlineHilfe/MINFO#help.state.minfo.sq.outliermethod
help.state.minfo.sq.outliers=${help.url}/OnlineHilfe/MINFO#help.state.minfo.sq.outliers
help.state.minfo.sediment.load.year_epoch=${help.url}/OnlineHilfe/MINFO#help.state.minfo.sediment.load.year_epoch
help.state.minfo.sediment.load.location=${help.url}/OnlineHilfe/MINFO#help.state.minfo.sediment.load.location
diff -r 42076d94977e -r 45cced06490c backend/contrib/import_river.sh
--- a/backend/contrib/import_river.sh Wed May 21 11:43:10 2014 +0200
+++ b/backend/contrib/import_river.sh Mon Jun 30 11:29:45 2014 +0200
@@ -239,7 +239,6 @@
-Dflys.backend.importer.skip.morphological.width=true \
-Dflys.backend.importer.skip.flow.velocity=true \
-Dflys.backend.importer.skip.bed.height.single=true \
- -Dflys.backend.importer.skip.bed.height.epoch=true \
$JAR
}
@@ -287,7 +286,6 @@
-Dflys.backend.importer.skip.morphological.width=false \
-Dflys.backend.importer.skip.flow.velocity=false \
-Dflys.backend.importer.skip.bed.height.single=false \
- -Dflys.backend.importer.skip.bed.height.epoch=false \
$JAR
}
@@ -335,7 +333,6 @@
-Dflys.backend.importer.skip.morphological.width=true \
-Dflys.backend.importer.skip.flow.velocity=true \
-Dflys.backend.importer.skip.bed.height.single=true \
- -Dflys.backend.importer.skip.bed.height.epoch=true \
$JAR
}
diff -r 42076d94977e -r 45cced06490c backend/contrib/run_hydr_morph.sh
--- a/backend/contrib/run_hydr_morph.sh Wed May 21 11:43:10 2014 +0200
+++ b/backend/contrib/run_hydr_morph.sh Mon Jun 30 11:29:45 2014 +0200
@@ -43,9 +43,9 @@
IMPORTER_SKIP_MEASUREMENT_STATIONS=false
IMPORTER_SKIP_BED_HEIGHT_SINGLE=false
-IMPORTER_SKIP_BED_HEIGHT_EPOCH=false
IMPORTER_SKIP_FLOW_VELOCITY=false
IMPORTER_SKIP_MORPHOLOGICAL_WIDTH=false
+IMPORTER_SKIP_POROSITY=false
IMPORTER_SKIP_SEDIMENT_DENSITY=false
IMPORTER_SKIP_SEDIMENT_YIELD=false
IMPORTER_SKIP_SQ_RELATION=false
@@ -78,7 +78,6 @@
-Dflys.backend.importer.dry.run=$IMPORTER_DRY_RUN \
-Dflys.backend.importer.skip.annotations=$IMPORTER_SKIP_ANNOTATIONS \
-Dflys.backend.importer.skip.bed.height.single=$IMPORTER_SKIP_BED_HEIGHT_SINGLE \
- -Dflys.backend.importer.skip.bed.height.epoch=$IMPORTER_SKIP_BED_HEIGHT_EPOCH \
-Dflys.backend.importer.skip.bwastr=$IMPORTER_SKIP_BWASTR \
-Dflys.backend.importer.skip.da50s=$IMPORTER_SKIP_DA50S \
-Dflys.backend.importer.skip.da66s=$IMPORTER_SKIP_DA66S \
@@ -92,6 +91,7 @@
-Dflys.backend.importer.skip.historical.discharge.tables=$IMPORTER_SKIP_HISTORICAL_DISCHARGE_GAUGES \
-Dflys.backend.importer.skip.hyks=$IMPORTER_SKIP_HYKS \
-Dflys.backend.importer.skip.morphological.width=$IMPORTER_SKIP_MORPHOLOGICAL_WIDTH \
+ -Dflys.backend.importer.skip.porosity=$IMPORTER_SKIP_POROSITY \
-Dflys.backend.importer.skip.official.lines=$IMPORTER_SKIP_OFFICIAL_LINES \
-Dflys.backend.importer.skip.prfs=$IMPORTER_SKIP_PRFS \
-Dflys.backend.importer.skip.sediment.density=$IMPORTER_SKIP_SEDIMENT_DENSITY \
diff -r 42076d94977e -r 45cced06490c backend/doc/documentation/de/importer-hydr-morph.tex
--- a/backend/doc/documentation/de/importer-hydr-morph.tex Wed May 21 11:43:10 2014 +0200
+++ b/backend/doc/documentation/de/importer-hydr-morph.tex Mon Jun 30 11:29:45 2014 +0200
@@ -186,17 +186,18 @@
Es werden die CSV-Dateien aus dem Verzeichnis
\textit{Morphologie/Sohlhoehen/Einzeljahre} geladen.
-\subsubsection{Sohlhöhen (Epochen)}
-Der Import Sohlhöhen-Epochen kann mit \textbf{-Dflys.backend.importer.skip.bed.height.epoch=true}
-unterdrückt werden. Es werden die CSV-Dateien aus dem Verzeichnis
-\textit{Morphologie/Sohlhoehen/Epochen} geladen.
-
\subsubsection{Sedimentdichte}
Der Import der Sedimentdichte kann mit
\textbf{-Dflys.backend.importer.skip.sediment.density=true}
unterdrückt werden. Es werden die CSV-Dateien aus dem Verzeichnis
\textit{Morphologie/Sedimentdichte} geladen.
+\subsubsection{Porosität}
+Der Import der Porositätsdaten kann mit
+\textbf{-Dflys.backend.importer.skip.porosity=true}
+unterdrückt werden. Es werden die CSV-Dateien aus dem Verzeichnis
+\textit{Morphologie/Porositaet} geladen.
+
\subsubsection{Morphologische Breite}
Mit \textbf{-Dflys.backend.importer.skip.morphological.width=true}
kann der Import der morphologischen Breite unterdrückt werden.
@@ -882,7 +883,7 @@
\subsection{Starten des Fachdaten Importers}
\label{start-hydr}
Der Fachdaten Importer wird mit Hilfe eines Shellskripts von einer Konsole
-gestartet. Dazu führen folgenden Befehl aus:\\
+gestartet. Dazu folgenden Befehl ausführen:\\
\begin{lstlisting}
./run_hydr_morph.sh pfad/zur/beispiel.gew
@@ -896,6 +897,13 @@
Ebenfalls wichtig ist die Zeile beginnend mit \textit{Gewässer:}
in der der Name des Gewässers festgelegt wird.
+Zusätzlich kann die Datei eine Zeile beginnend mit \textit{uuid:}
+enthalten. Dahinter kann eine
+UUID\footnote{\url{http://de.wikipedia.org/wiki/UUID}} stehen,
+die als eindeutiger Bezeichner des Datensatzes verwendet wird
+(derzeit für die Zuordnung der Darstellung von Gewässern in der
+interaktiven Einstiegskarte zu Datensätzen in der Datenbank).
+
Nachdem der Prompt der Konsole zurückkehrt, ist der Import abgeschlossen oder es
ist ein Fehler aufgetreten. Weitere Informationen entnehmen Sie der Log-Datei.
diff -r 42076d94977e -r 45cced06490c backend/doc/schema/oracle-minfo.sql
--- a/backend/doc/schema/oracle-minfo.sql Wed May 21 11:43:10 2014 +0200
+++ b/backend/doc/schema/oracle-minfo.sql Mon Jun 30 11:29:45 2014 +0200
@@ -59,27 +59,6 @@
);
-CREATE SEQUENCE BED_HEIGHT_EPOCH_ID_SEQ;
-
-CREATE TABLE bed_height_epoch (
- id NUMBER(38,0) NOT NULL,
- river_id NUMBER(38,0) NOT NULL,
- time_interval_id NUMBER(38,0) NOT NULL,
- -- sounding_with NUMBER(38,0) NOT NULL,
- -- type_id NUMBER(38,0) NOT NULL,
- cur_elevation_model_id NUMBER(38,0) NOT NULL,
- old_elevation_model_id NUMBER(38,0),
- range_id NUMBER(38,0),
- evaluation_by VARCHAR(255),
- description VARCHAR(255),
- PRIMARY KEY(id),
- CONSTRAINT fk_time_interval FOREIGN KEY (time_interval_id) REFERENCES time_intervals(id),
- CONSTRAINT fk_epoch_cur_elevation_model FOREIGN KEY (cur_elevation_model_id) REFERENCES elevation_model(id),
- CONSTRAINT fk_epoch_old_elevation_model FOREIGN KEY (old_elevation_model_id) REFERENCES elevation_model(id),
- CONSTRAINT fk_epoch_range FOREIGN KEY (range_id) REFERENCES ranges(id) ON DELETE CASCADE
-);
-
-
CREATE SEQUENCE BED_SINGLE_VALUES_ID_SEQ;
CREATE TABLE bed_height_single_values (
@@ -97,18 +76,6 @@
);
-CREATE SEQUENCE BED_EPOCH_VALUES_ID_SEQ;
-
-CREATE TABLE bed_height_epoch_values (
- id NUMBER(38,0) NOT NULL,
- bed_height_epoch_id NUMBER(38,0) NOT NULL,
- station NUMBER(38,2) NOT NULL,
- height NUMBER(38,2),
- PRIMARY KEY(id),
- CONSTRAINT fk_bed_epoch_values_parent FOREIGN KEY (bed_height_epoch_id) REFERENCES bed_height_epoch(id) ON DELETE CASCADE
-);
-
-
CREATE SEQUENCE DEPTHS_ID_SEQ;
CREATE TABLE depths (
diff -r 42076d94977e -r 45cced06490c backend/doc/schema/postgresql-minfo.sql
--- a/backend/doc/schema/postgresql-minfo.sql Wed May 21 11:43:10 2014 +0200
+++ b/backend/doc/schema/postgresql-minfo.sql Mon Jun 30 11:29:45 2014 +0200
@@ -59,27 +59,6 @@
);
-CREATE SEQUENCE BED_HEIGHT_EPOCH_ID_SEQ;
-
-CREATE TABLE bed_height_epoch (
- id int NOT NULL,
- river_id int NOT NULL,
- time_interval_id int NOT NULL,
- -- sounding_width int,
- -- type_id int NOT NULL,
- cur_elevation_model_id int NOT NULL,
- old_elevation_model_id int,
- range_id int,
- evaluation_by VARCHAR(255),
- description VARCHAR(255),
- PRIMARY KEY(id),
- CONSTRAINT fk_time_interval FOREIGN KEY (time_interval_id) REFERENCES time_intervals(id),
- CONSTRAINT fk_epoch_cur_elevation_model FOREIGN KEY (cur_elevation_model_id) REFERENCES elevation_model(id),
- CONSTRAINT fk_epoch_old_elevation_model FOREIGN KEY (old_elevation_model_id) REFERENCES elevation_model(id),
- CONSTRAINT fk_epoch_range FOREIGN KEY (range_id) REFERENCES ranges(id) ON DELETE CASCADE
-);
-
-
CREATE SEQUENCE BED_SINGLE_VALUES_ID_SEQ;
CREATE TABLE bed_height_single_values (
@@ -97,18 +76,6 @@
);
-CREATE SEQUENCE BED_EPOCH_VALUES_ID_SEQ;
-
-CREATE TABLE bed_height_epoch_values (
- id int NOT NULL,
- bed_height_epoch_id int NOT NULL,
- station NUMERIC NOT NULL,
- height NUMERIC,
- PRIMARY KEY(id),
- CONSTRAINT fk_bed_epoch_values_parent FOREIGN KEY (bed_height_epoch_id) REFERENCES bed_height_epoch(id) ON DELETE CASCADE
-);
-
-
CREATE SEQUENCE DEPTHS_ID_SEQ;
CREATE TABLE depths (
diff -r 42076d94977e -r 45cced06490c backend/src/main/java/org/dive4elements/river/backend/FLYSCredentials.java
--- a/backend/src/main/java/org/dive4elements/river/backend/FLYSCredentials.java Wed May 21 11:43:10 2014 +0200
+++ b/backend/src/main/java/org/dive4elements/river/backend/FLYSCredentials.java Mon Jun 30 11:29:45 2014 +0200
@@ -14,8 +14,6 @@
import org.dive4elements.river.model.AnnotationType;
import org.dive4elements.river.model.Attribute;
import org.dive4elements.river.model.AxisKind;
-import org.dive4elements.river.model.BedHeightEpoch;
-import org.dive4elements.river.model.BedHeightEpochValue;
import org.dive4elements.river.model.BedHeightSingle;
import org.dive4elements.river.model.BedHeightSingleValue;
import org.dive4elements.river.model.BedHeightType;
@@ -139,8 +137,6 @@
AnnotationType.class,
Attribute.class,
AxisKind.class,
- BedHeightEpoch.class,
- BedHeightEpochValue.class,
BedHeightSingle.class,
BedHeightSingleValue.class,
BedHeightType.class,
diff -r 42076d94977e -r 45cced06490c backend/src/main/java/org/dive4elements/river/importer/Config.java
--- a/backend/src/main/java/org/dive4elements/river/importer/Config.java Wed May 21 11:43:10 2014 +0200
+++ b/backend/src/main/java/org/dive4elements/river/importer/Config.java Mon Jun 30 11:29:45 2014 +0200
@@ -73,9 +73,6 @@
public static final String SKIP_DA66S =
"flys.backend.importer.skip.da66s";
- public static final String SKIP_BED_HEIGHT_EPOCH =
- "flys.backend.importer.skip.bed.height.epoch";
-
public static final String SKIP_SEDIMENT_DENSITY =
"flys.backend.importer.skip.sediment.density";
@@ -214,10 +211,6 @@
return getFlag(SKIP_BED_HEIGHT_SINGLE);
}
- public boolean skipBedHeightEpoch() {
- return getFlag(SKIP_BED_HEIGHT_EPOCH);
- }
-
public boolean skipSedimentDensity() {
return getFlag(SKIP_SEDIMENT_DENSITY);
}
diff -r 42076d94977e -r 45cced06490c backend/src/main/java/org/dive4elements/river/importer/ImportBedHeightEpoch.java
--- a/backend/src/main/java/org/dive4elements/river/importer/ImportBedHeightEpoch.java Wed May 21 11:43:10 2014 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,206 +0,0 @@
-/* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
- * Software engineering by Intevation GmbH
- *
- * This file is Free Software under the GNU AGPL (>=v3)
- * and comes with ABSOLUTELY NO WARRANTY! Check out the
- * documentation coming with Dive4Elements River for details.
- */
-
-package org.dive4elements.river.importer;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.log4j.Logger;
-import org.hibernate.Query;
-import org.hibernate.Session;
-
-import org.dive4elements.river.model.BedHeightEpoch;
-import org.dive4elements.river.model.ElevationModel;
-import org.dive4elements.river.model.Range;
-import org.dive4elements.river.model.River;
-import org.dive4elements.river.model.TimeInterval;
-
-
-/** Import Bed Height Data, 'epoch' type from csv file. */
-public class ImportBedHeightEpoch implements ImportBedHeight {
-
- /** Private logger. */
- private static Logger log = Logger.getLogger(ImportBedHeightEpoch.class);
-
- protected String evaluationBy;
-
- /** De facto the file name. */
- protected String description;
-
- protected ImportTimeInterval timeInterval;
- protected ImportRange range;
- protected ImportElevationModel curElevationModel;
- protected ImportElevationModel oldElevationModel;
-
- protected List<ImportBedHeightEpochValue> values;
-
- protected BedHeightEpoch peer;
-
- public ImportBedHeightEpoch(String description) {
- this.description = description;
- this.values = new ArrayList<ImportBedHeightEpochValue>();
- }
-
- public String getDescription() {
- return description;
- }
-
- public int getValueCount() {
- return values.size();
- }
-
- public void setTimeInterval(ImportTimeInterval timeInterval) {
- this.timeInterval = timeInterval;
- }
-
- public void setEvaluationBy(String evaluationBy) {
- this.evaluationBy = evaluationBy;
- }
-
- public void setDescription(String description) {
- this.description = description;
- }
-
- public void setRange(ImportRange range) {
- this.range = range;
- }
-
- public void setCurElevationModel(ImportElevationModel curElevationModel) {
- this.curElevationModel = curElevationModel;
- }
-
- public void setOldElevationModel(ImportElevationModel oldElevationModel) {
- this.oldElevationModel = oldElevationModel;
- }
-
- /** Does nothing. */
- public void setYear(int year) {
- // do nothing
- }
-
- /** Does nothing. */
- public void setSoundingWidth(int soundingWidth) {
- // do nothing
- }
-
-
- /** Does nothing. */
- public void setLocationSystem(ImportLocationSystem locationSystem) {
- // do nothing
- }
-
-
- /** Does nothing. */
- public void setType(ImportBedHeightType type) {
- // do nothing
- }
-
- @Override
- public void addValue(ImportBedHeightValue value) {
- values.add((ImportBedHeightEpochValue) value);
- }
-
- @Override
- public void storeDependencies(River river) {
- log.info("Store dependencies for epoch: '" + getDescription() + "'");
-
- BedHeightEpoch peer = getPeer(river);
-
- if (curElevationModel != null) {
- curElevationModel.storeDependencies();
- }
-
- if (oldElevationModel != null) {
- oldElevationModel.storeDependencies();
- }
-
- if (peer != null) {
- log.debug("store values now...");
-
- for (ImportBedHeightEpochValue value : values) {
- value.storeDependencies(peer);
- }
- }
-
- Session session = ImporterSession.getInstance().getDatabaseSession();
- session.flush();
- }
-
- /**
- * Asserts all dependent entities (ElevationModel, TimeInterval, Range,
- * BedHeighEpoch) are in db and returns bound (either newly created or
- * freshly fetched) BedHeightEpoch.
- */
- @Override
- public BedHeightEpoch getPeer(River river) {
- if (peer == null) {
- ElevationModel theCurModel = null;
- if (curElevationModel != null) {
- curElevationModel.storeDependencies();
- theCurModel = curElevationModel.getPeer();
- }
-
- if (theCurModel == null) {
- log.warn("BHE: Skip file - invalid current elevation model.");
- return null;
- }
-
- TimeInterval theTime = null;
- if (timeInterval != null) {
- theTime = timeInterval.getPeer();
- }
-
- if (theTime == null) {
- log.warn("BHE: Skip file - invalid time range.");
- return null;
- }
-
- Range theRange = range != null ? range.getPeer(river) : null;
-
- if (theRange == null) {
- log.warn("BHE: invalid km range.");
- }
-
- Session session = ImporterSession.getInstance()
- .getDatabaseSession();
-
- Query query = session.createQuery("from BedHeightEpoch where "
- + " river=:river and " + " timeInterval=:timeInterval and "
- + " curElevationModel=:curElevationModel and "
- + " range=:range and " + " evaluationBy=:evaluationBy and "
- + " description=:description");
-
- query.setParameter("river", river);
- query.setParameter("timeInterval", theTime);
- query.setParameter("curElevationModel", theCurModel);
- query.setParameter("range", theRange);
- query.setParameter("evaluationBy", evaluationBy);
- query.setParameter("description", description);
-
- List<BedHeightEpoch> bedHeights = query.list();
-
- if (bedHeights.isEmpty()) {
- log.info("Create new BedHeightEpoch DB instance.");
-
- peer = new BedHeightEpoch(river, theTime, theRange,
- theCurModel,
- oldElevationModel != null ? oldElevationModel.getPeer()
- : null, evaluationBy, description);
-
- session.save(peer);
- }
- else {
- peer = bedHeights.get(0);
- }
- }
-
- return peer;
- }
-}
-// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
diff -r 42076d94977e -r 45cced06490c backend/src/main/java/org/dive4elements/river/importer/ImportBedHeightEpochValue.java
--- a/backend/src/main/java/org/dive4elements/river/importer/ImportBedHeightEpochValue.java Wed May 21 11:43:10 2014 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,83 +0,0 @@
-/* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
- * Software engineering by Intevation GmbH
- *
- * This file is Free Software under the GNU AGPL (>=v3)
- * and comes with ABSOLUTELY NO WARRANTY! Check out the
- * documentation coming with Dive4Elements River for details.
- */
-
-package org.dive4elements.river.importer;
-
-import java.util.List;
-
-import java.math.BigDecimal;
-
-import org.apache.log4j.Logger;
-
-import org.hibernate.Session;
-import org.hibernate.Query;
-
-import org.dive4elements.river.model.BedHeightEpoch;
-import org.dive4elements.river.model.BedHeightEpochValue;
-
-
-public class ImportBedHeightEpochValue implements ImportBedHeightValue {
-
- private static final Logger log =
- Logger.getLogger(ImportBedHeightEpochValue.class);
-
-
- private BigDecimal station;
- private BigDecimal height;
-
- private BedHeightEpochValue peer;
-
-
- public ImportBedHeightEpochValue() {
- }
-
-
- public ImportBedHeightEpochValue(BigDecimal station, BigDecimal height) {
- this.station = station;
- this.height = height;
- }
-
-
- public void storeDependencies(BedHeightEpoch bedHeight) {
- getPeer(bedHeight);
- }
-
-
- public BedHeightEpochValue getPeer(BedHeightEpoch bedHeight) {
- if (peer == null) {
- Session session = ImporterSession.getInstance().getDatabaseSession();
-
- Query query = session.createQuery(
- "from BedHeightEpochValue where " +
- " bedHeight=:bedHeight and " +
- " station=:station and " +
- " height=:height");
-
- query.setParameter("bedHeight", bedHeight);
- query.setParameter("station", station);
- query.setParameter("height", height);
-
- List<BedHeightEpochValue> values = query.list();
-
- if (values.isEmpty()) {
- peer = new BedHeightEpochValue(
- bedHeight,
- station,
- height
- );
- session.save(peer);
- }
- else {
- peer = values.get(0);
- }
- }
-
- return peer;
- }
-}
-// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
diff -r 42076d94977e -r 45cced06490c backend/src/main/java/org/dive4elements/river/importer/ImportRiver.java
--- a/backend/src/main/java/org/dive4elements/river/importer/ImportRiver.java Wed May 21 11:43:10 2014 +0200
+++ b/backend/src/main/java/org/dive4elements/river/importer/ImportRiver.java Mon Jun 30 11:29:45 2014 +0200
@@ -14,7 +14,6 @@
import org.dive4elements.river.importer.parsers.AnnotationClassifier;
import org.dive4elements.river.importer.parsers.AnnotationsParser;
-import org.dive4elements.river.importer.parsers.BedHeightEpochParser;
import org.dive4elements.river.importer.parsers.BedHeightSingleParser;
import org.dive4elements.river.importer.parsers.CrossSectionParser;
import org.dive4elements.river.importer.parsers.DA50Parser;
@@ -93,8 +92,6 @@
public static final String BED_HEIGHT_SINGLE_DIR = "Einzeljahre";
- public static final String BED_HEIGHT_EPOCH_DIR = "Epochen";
-
public static final String SEDIMENT_DENSITY_DIR = "Sedimentdichte";
public static final String POROSITY_DIR = "Porositaet";
@@ -450,7 +447,6 @@
File minfoDir = getMinfoDir();
File bedHeightDir = new File(minfoDir, BED_HEIGHT_DIR);
File singlesDir = new File(bedHeightDir, BED_HEIGHT_SINGLE_DIR);
- File epochDir = new File(bedHeightDir, BED_HEIGHT_EPOCH_DIR);
if (Config.INSTANCE.skipBedHeightSingle()) {
log.info("skip parsing bed height single.");
@@ -459,14 +455,6 @@
log.info("Parse bed height single.");
parseBedHeightSingles(singlesDir);
}
-
- if (Config.INSTANCE.skipBedHeightEpoch()) {
- log.info("skip parsing bed height epochs.");
- }
- else {
- log.info("Parse bed height epochs.");
- parseBedHeightEpochs(epochDir);
- }
}
@@ -815,27 +803,6 @@
bedHeightSingles = parser.getBedHeights();
}
-
- protected void parseBedHeightEpochs(File dir) throws IOException {
- log.debug("Parse bed height epochs");
-
- File[] files = dir.listFiles();
-
- if (files == null) {
- log.warn("Cannot read directory '" + dir + "'");
- return;
- }
-
- BedHeightEpochParser parser = new BedHeightEpochParser();
-
- for (File file: files) {
- parser.parse(file);
- }
-
- bedHeightEpochs = parser.getBedHeights();
- }
-
-
public void parseFloodWater() throws IOException {
if (Config.INSTANCE.skipFloodWater()) {
log.info("skip parsing flod water");
@@ -1444,11 +1411,6 @@
log.info("store bed heights single");
storeBedHeightSingle();
}
-
- if (!Config.INSTANCE.skipBedHeightEpoch()) {
- log.info("store bed height epoch.");
- storeBedHeightEpoch();
- }
}
@@ -1472,25 +1434,6 @@
}
- private void storeBedHeightEpoch() {
- River river = getPeer();
-
- if (bedHeightEpochs != null) {
- for (ImportBedHeight tmp: bedHeightEpochs) {
- ImportBedHeightEpoch epoch = (ImportBedHeightEpoch) tmp;
-
- String desc = epoch.getDescription();
-
- log.debug("name: " + desc);
-
- epoch.storeDependencies(river);
- }
- }
- else {
- log.info("No epoch bed heights to store.");
- }
- }
-
public void storeSedimentDensity() {
if (!Config.INSTANCE.skipSedimentDensity()) {
log.info("store sediment density");
diff -r 42076d94977e -r 45cced06490c backend/src/main/java/org/dive4elements/river/importer/parsers/BedHeightEpochParser.java
--- a/backend/src/main/java/org/dive4elements/river/importer/parsers/BedHeightEpochParser.java Wed May 21 11:43:10 2014 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +0,0 @@
-/* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
- * Software engineering by Intevation GmbH
- *
- * This file is Free Software under the GNU AGPL (>=v3)
- * and comes with ABSOLUTELY NO WARRANTY! Check out the
- * documentation coming with Dive4Elements River for details.
- */
-
-package org.dive4elements.river.importer.parsers;
-
-import java.math.BigDecimal;
-
-import java.text.ParseException;
-
-import org.apache.log4j.Logger;
-
-import org.dive4elements.river.importer.ImportBedHeight;
-import org.dive4elements.river.importer.ImportBedHeightEpoch;
-import org.dive4elements.river.importer.ImportBedHeightEpochValue;
-
-
-/** Parses BedHeightEpochs from csv file. */
-public class BedHeightEpochParser extends BedHeightParser {
-
- /** Our own logger. */
- private static final Logger log =
- Logger.getLogger(BedHeightEpochParser.class);
-
-
- @Override
- protected ImportBedHeight newImportBedHeight(String description) {
- return new ImportBedHeightEpoch(description);
- }
-
-
- /**
- * Handle a non-comment, none-Metadata line of csv file, adding
- * ImportBedHeightEpochValues to the given ImportBedHeight object.
- */
- @Override
- protected void handleDataLine(ImportBedHeight obj, String line) {
- String[] values = line.split(SEPERATOR_CHAR);
-
- if (values == null || values.length == 0 || values[0].length() == 0) {
- // There might be quite some ";" found.
- //log.warn("Skip invalid data line: " + line);
- return;
- }
-
- BigDecimal km;
-
- try {
- km = new BigDecimal(nf.parse(values[0]).doubleValue());
- }
- catch (ParseException e) {
- log.warn("Unparseable number in data row: " + line);
- return;
- }
-
-
- // Handle "gap" lines like '255,0;'
- if (values.length < 2) {
- ImportBedHeightEpochValue value = new ImportBedHeightEpochValue(
- km,
- null
- );
-
- obj.addValue(value);
- return;
- }
-
- try {
- ImportBedHeightEpochValue value = new ImportBedHeightEpochValue(
- km,
- new BigDecimal(nf.parse(values[1]).doubleValue())
- );
-
- obj.addValue(value);
- }
- catch (ParseException e) {
- log.warn("Unparseable number in data row: " + line);
- }
- }
-}
-// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
diff -r 42076d94977e -r 45cced06490c backend/src/main/java/org/dive4elements/river/importer/parsers/BedHeightParser.java
--- a/backend/src/main/java/org/dive4elements/river/importer/parsers/BedHeightParser.java Wed May 21 11:43:10 2014 +0200
+++ b/backend/src/main/java/org/dive4elements/river/importer/parsers/BedHeightParser.java Mon Jun 30 11:29:45 2014 +0200
@@ -41,6 +41,7 @@
import org.dive4elements.river.model.BedHeightType;
import org.dive4elements.river.importer.ImporterSession;
import org.dive4elements.river.utils.EpsilonComparator;
+import org.dive4elements.river.utils.DateUtil;
public abstract class BedHeightParser {
@@ -233,8 +234,8 @@
int lower = Integer.valueOf(lo);
int upper = Integer.valueOf(up);
- Date fromYear = LineParser.getStartDateFromYear(lower);
- Date toYear = LineParser.getEndDateFromYear(upper);
+ Date fromYear = DateUtil.getStartDateFromYear(lower);
+ Date toYear = DateUtil.getEndDateFromYear(upper);
obj.setTimeInterval(new ImportTimeInterval(fromYear, toYear));
}
diff -r 42076d94977e -r 45cced06490c backend/src/main/java/org/dive4elements/river/importer/parsers/LineParser.java
--- a/backend/src/main/java/org/dive4elements/river/importer/parsers/LineParser.java Wed May 21 11:43:10 2014 +0200
+++ b/backend/src/main/java/org/dive4elements/river/importer/parsers/LineParser.java Mon Jun 30 11:29:45 2014 +0200
@@ -14,7 +14,6 @@
import java.text.NumberFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
-import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
@@ -135,25 +134,5 @@
return df.parse(dateString);
}
-
-
- /** Create Date on first moment (1st jan) of given year. */
- public static Date getStartDateFromYear(int year) {
- Calendar cal = Calendar.getInstance();
- cal.clear();
- cal.set(year, 0, 1, 0, 0, 0);
-
- return cal.getTime();
- }
-
-
- /** Create Date on last moment (31st dec) of given year. */
- public static Date getEndDateFromYear(int year) {
- Calendar cal = Calendar.getInstance();
- cal.clear();
- cal.set(year, 11, 31, 23, 59, 59);
-
- return cal.getTime();
- }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
diff -r 42076d94977e -r 45cced06490c backend/src/main/java/org/dive4elements/river/importer/parsers/PorosityParser.java
--- a/backend/src/main/java/org/dive4elements/river/importer/parsers/PorosityParser.java Wed May 21 11:43:10 2014 +0200
+++ b/backend/src/main/java/org/dive4elements/river/importer/parsers/PorosityParser.java Mon Jun 30 11:29:45 2014 +0200
@@ -12,6 +12,7 @@
import org.dive4elements.river.importer.ImportPorosity;
import org.dive4elements.river.importer.ImportPorosityValue;
import org.dive4elements.river.importer.ImportTimeInterval;
+import org.dive4elements.river.utils.DateUtil;
import java.io.File;
import java.io.IOException;
@@ -38,7 +39,7 @@
NumberFormat.getInstance(DEFAULT_LOCALE);
public static final Pattern META_DEPTH =
- Pattern.compile("^Tiefe: (\\w++)-(\\w++)( (\\w++))?.*");
+ Pattern.compile("^Tiefe: (\\d++)-(\\d++).*");
public static final Pattern META_TIMEINTERVAL =
Pattern.compile("^Zeitraum: (\\d{4})-(\\d{4}).*");
@@ -56,7 +57,7 @@
@Override
public void parse(File file) throws IOException {
- currentDescription = file.getName();
+ currentDescription = file.getName().replaceAll("\\.csv", "");
super.parse(file);
}
@@ -110,8 +111,8 @@
int lower = Integer.valueOf(lo);
int upper = Integer.valueOf(up);
- Date fromYear = LineParser.getStartDateFromYear(lower);
- Date toYear = LineParser.getEndDateFromYear(upper);
+ Date fromYear = DateUtil.getStartDateFromYear(lower);
+ Date toYear = DateUtil.getEndDateFromYear(upper);
current.setTimeInterval(new ImportTimeInterval(fromYear, toYear));
}
diff -r 42076d94977e -r 45cced06490c backend/src/main/java/org/dive4elements/river/importer/parsers/SQRelationParser.java
--- a/backend/src/main/java/org/dive4elements/river/importer/parsers/SQRelationParser.java Wed May 21 11:43:10 2014 +0200
+++ b/backend/src/main/java/org/dive4elements/river/importer/parsers/SQRelationParser.java Mon Jun 30 11:29:45 2014 +0200
@@ -22,6 +22,7 @@
import org.dive4elements.river.importer.ImportSQRelation;
import org.dive4elements.river.importer.ImportSQRelationValue;
import org.dive4elements.river.importer.ImportTimeInterval;
+import org.dive4elements.river.utils.DateUtil;
public class SQRelationParser extends LineParser {
@@ -99,8 +100,8 @@
int high = nf.parse(hi).intValue();
current.setTimeInterval(new ImportTimeInterval(
- getStartDateFromYear(low),
- getEndDateFromYear(high)
+ DateUtil.getStartDateFromYear(low),
+ DateUtil.getEndDateFromYear(high)
));
}
catch (ParseException nfe) {
diff -r 42076d94977e -r 45cced06490c backend/src/main/java/org/dive4elements/river/importer/parsers/SedimentDensityParser.java
--- a/backend/src/main/java/org/dive4elements/river/importer/parsers/SedimentDensityParser.java Wed May 21 11:43:10 2014 +0200
+++ b/backend/src/main/java/org/dive4elements/river/importer/parsers/SedimentDensityParser.java Mon Jun 30 11:29:45 2014 +0200
@@ -37,7 +37,7 @@
NumberFormat.getInstance(DEFAULT_LOCALE);
public static final Pattern META_DEPTH =
- Pattern.compile("^Tiefe: (\\w++)-(\\w++)( (\\w++))?.*");
+ Pattern.compile("^Tiefe: (\\d++)-(\\d++).*");
public static final Pattern META_YEAR =
Pattern.compile("^Jahr: (\\d{4}).*");
diff -r 42076d94977e -r 45cced06490c backend/src/main/java/org/dive4elements/river/importer/parsers/SedimentYieldParser.java
--- a/backend/src/main/java/org/dive4elements/river/importer/parsers/SedimentYieldParser.java Wed May 21 11:43:10 2014 +0200
+++ b/backend/src/main/java/org/dive4elements/river/importer/parsers/SedimentYieldParser.java Mon Jun 30 11:29:45 2014 +0200
@@ -27,6 +27,7 @@
import org.dive4elements.river.importer.ImportTimeInterval;
import org.dive4elements.river.importer.ImportUnit;
import org.dive4elements.river.model.GrainFraction;
+import org.dive4elements.river.utils.DateUtil;
/** Parses Sediment Yield files. */
@@ -190,7 +191,7 @@
String newLine = line.replace(FRAKTION_START, "").trim();
if (newLine.length() == 0) {
log.debug("Found total grain fraction.");
- this.grainFraction = new ImportGrainFraction(GrainFraction.TOTAL);
+ this.grainFraction = new ImportGrainFraction(GrainFraction.UNKNOWN);
return true;
}
@@ -275,8 +276,8 @@
int yearB = nf.parse(a.group(2)).intValue();
return new ImportTimeInterval(
- getStartDateFromYear(yearA),
- getEndDateFromYear(yearB)
+ DateUtil.getStartDateFromYear(yearA),
+ DateUtil.getEndDateFromYear(yearB)
);
}
@@ -284,7 +285,7 @@
if (b.matches()) {
int year = nf.parse(b.group(1)).intValue();
- return new ImportTimeInterval(getStartDateFromYear(year));
+ return new ImportTimeInterval(DateUtil.getStartDateFromYear(year));
}
log.warn("SYP: Unknown time interval string: '" + column + "'");
@@ -372,8 +373,7 @@
}
log.warn("SYP: Unknown grain fraction: '" + gfStr + "'");
-
- return null;
+ return new ImportGrainFraction(GrainFraction.UNKNOWN);
}
@@ -402,7 +402,7 @@
}
else {
log.warn("SYP: Unknown grain fraction '" + filename + "'");
- return "unknown";
+ return GrainFraction.UNKNOWN;
}
}
diff -r 42076d94977e -r 45cced06490c backend/src/main/java/org/dive4elements/river/importer/parsers/WaterlevelDifferencesParser.java
--- a/backend/src/main/java/org/dive4elements/river/importer/parsers/WaterlevelDifferencesParser.java Wed May 21 11:43:10 2014 +0200
+++ b/backend/src/main/java/org/dive4elements/river/importer/parsers/WaterlevelDifferencesParser.java Mon Jun 30 11:29:45 2014 +0200
@@ -27,6 +27,7 @@
import org.dive4elements.river.importer.ImportWstQRange;
import org.dive4elements.river.importer.ImportWstColumn;
import org.dive4elements.river.importer.ImportWstColumnValue;
+import org.dive4elements.river.utils.DateUtil;
/**
@@ -102,8 +103,8 @@
// For all differences columns, add a single Q-Range with
// -1.
// Expand range to minimal length in case it would be 0
- // TODO: should otherwise be extended to
- // (first station of next range - INTERVAL_GAP),
+ // TODO: should otherwise be extended to
+ // (first station of next range - INTERVAL_GAP),
// assuming always ascending stations
for (ImportWstColumn column: columns) {
List<ImportWstColumnValue> cValues = column.getColumnValues();
@@ -199,8 +200,8 @@
int startYear = Integer.parseInt(m.group(1));
int endYear = Integer.parseInt(m.group(2));
ImportTimeInterval time = new ImportTimeInterval(
- getStartDateFromYear(startYear),
- getEndDateFromYear(endYear)
+ DateUtil.getStartDateFromYear(startYear),
+ DateUtil.getEndDateFromYear(endYear)
);
column.setTimeInterval(time);
} else {
diff -r 42076d94977e -r 45cced06490c backend/src/main/java/org/dive4elements/river/importer/parsers/WaterlevelParser.java
--- a/backend/src/main/java/org/dive4elements/river/importer/parsers/WaterlevelParser.java Wed May 21 11:43:10 2014 +0200
+++ b/backend/src/main/java/org/dive4elements/river/importer/parsers/WaterlevelParser.java Mon Jun 30 11:29:45 2014 +0200
@@ -28,6 +28,7 @@
import org.dive4elements.river.importer.ImportWstColumn;
import org.dive4elements.river.importer.ImportWstColumnValue;
import org.dive4elements.river.importer.ImportWstQRange;
+import org.dive4elements.river.utils.DateUtil;
/**
@@ -102,8 +103,8 @@
int startYear = Integer.parseInt(m.group(1));
int endYear = Integer.parseInt(m.group(2));
ImportTimeInterval time = new ImportTimeInterval(
- getStartDateFromYear(startYear),
- getEndDateFromYear(endYear)
+ DateUtil.getStartDateFromYear(startYear),
+ DateUtil.getEndDateFromYear(endYear)
);
column.setTimeInterval(time);
} else {
@@ -121,12 +122,12 @@
List<ImportWstColumnValue> cValues = column.getColumnValues();
// Set end of range to last station
// or expand range to minimal length in case it would be 0
- // TODO: should otherwise be extended to
- // (first station of next range - INTERVAL_GAP),
+ // TODO: should otherwise be extended to
+ // (first station of next range - INTERVAL_GAP),
// assuming always ascending stations
BigDecimal lastStation = cValues.get(cValues.size() -1).getPosition();
if (lastStation.compareTo(currentRange.getA()) == 0) {
- currentRange.setB(new BigDecimal(lastStation.doubleValue()
+ currentRange.setB(new BigDecimal(lastStation.doubleValue()
+ INTERVAL_GAP));
}
else {
diff -r 42076d94977e -r 45cced06490c backend/src/main/java/org/dive4elements/river/importer/parsers/WstParser.java
--- a/backend/src/main/java/org/dive4elements/river/importer/parsers/WstParser.java Wed May 21 11:43:10 2014 +0200
+++ b/backend/src/main/java/org/dive4elements/river/importer/parsers/WstParser.java Mon Jun 30 11:29:45 2014 +0200
@@ -152,7 +152,7 @@
boolean columnHeaderChecked = false;
- /* Default string for altitude reference
+ /* Default string for altitude reference
* if none is found in WST-file.
* Use in case no unit comment is found in file */
String einheit = "m ü. unbekannte Referenz";
@@ -343,10 +343,10 @@
}
// check consistence of station ordering in file
- if (kmHist2 != null &&
+ if (kmHist2 != null &&
kmHist2.compareTo(kmHist1) != kmHist1.compareTo(kaem)) {
- throw new ParseException("WST: Stations in " + file +
- " near line " + in.getLineNumber() +
+ throw new ParseException("WST: Stations in " + file +
+ " near line " + in.getLineNumber() +
" not ordered. File rejected.");
}
@@ -381,7 +381,7 @@
i, i+colNaWidths[j]).trim();
}
}
- else { // fetch column names from non-comment header line
+ else { // fetch column names from non-comment header line
// (above first Qs)
// first column begins at position 8 in line
for (int i = 8, col = 0; i < input.length(); i += 9) {
@@ -389,7 +389,7 @@
// but the last one may be shorter
if (col < lsBezeichner.length) {
lsBezeichner[col++] =
- input.substring(i,
+ input.substring(i,
Math.min(i + 9, input.length())).trim();
}
if (col == lsBezeichner.length) {
@@ -406,7 +406,7 @@
}
wst.setUnit(new ImportUnit(einheit));
- // add Q-ranges obtained from previous lines
+ // add Q-ranges obtained from previous lines
// in case there was no further Q-line
// but only if there were values following the last Q-line
if (minKm != MAX_RANGE && maxKm != MIN_RANGE) {
@@ -535,7 +535,7 @@
if (pos >= line.length()) {
break;
}
- strings.add(line.substring(pos,
+ strings.add(line.substring(pos,
Math.min(pos + 8, line.length())));
}
diff -r 42076d94977e -r 45cced06490c backend/src/main/java/org/dive4elements/river/model/BedHeightEpoch.java
--- a/backend/src/main/java/org/dive4elements/river/model/BedHeightEpoch.java Wed May 21 11:43:10 2014 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,219 +0,0 @@
-/* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
- * Software engineering by Intevation GmbH
- *
- * This file is Free Software under the GNU AGPL (>=v3)
- * and comes with ABSOLUTELY NO WARRANTY! Check out the
- * documentation coming with Dive4Elements River for details.
- */
-
-package org.dive4elements.river.model;
-
-import java.io.Serializable;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.Table;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Column;
-import javax.persistence.SequenceGenerator;
-import javax.persistence.GenerationType;
-import javax.persistence.JoinColumn;
-import javax.persistence.OneToOne;
-import javax.persistence.OneToMany;
-
-import org.hibernate.Session;
-import org.hibernate.Query;
-
-import org.dive4elements.river.backend.SessionHolder;
-
-
- at Entity
- at Table(name = "bed_height_epoch")
-public class BedHeightEpoch implements Serializable {
-
- private Integer id;
-
- private River river;
-
- private TimeInterval timeInterval;
-
- private ElevationModel curElevationModel;
- private ElevationModel oldElevationModel;
-
- private Range range;
-
- private String evaluationBy;
- private String description;
-
- private List<BedHeightEpochValue> values;
-
-
- public BedHeightEpoch() {
- }
-
-
- public BedHeightEpoch(
- River river,
- TimeInterval timeInterval,
- Range range,
- ElevationModel curElevationModel,
- ElevationModel oldElevationModel,
- String evaluationBy,
- String description
- ) {
- this.river = river;
- this.timeInterval = timeInterval;
- this.range = range;
- this.curElevationModel = curElevationModel;
- this.oldElevationModel = oldElevationModel;
- this.evaluationBy = evaluationBy;
- this.description = description;
- this.values = new ArrayList<BedHeightEpochValue>();
- }
-
-
- @Id
- @SequenceGenerator(
- name = "SEQUENCE_BED_HEIGHT_EPOCH_ID_SEQ",
- sequenceName = "BED_HEIGHT_EPOCH_ID_SEQ",
- allocationSize = 1)
- @GeneratedValue(
- strategy = GenerationType.SEQUENCE,
- generator = "SEQUENCE_BED_HEIGHT_EPOCH_ID_SEQ")
- @Column(name = "id")
- public Integer getId() {
- return id;
- }
-
- public void setId(Integer id) {
- this.id = id;
- }
-
- @OneToOne
- @JoinColumn(name = "river_id" )
- public River getRiver() {
- return river;
- }
-
- public void setRiver(River river) {
- this.river = river;
- }
-
- @OneToOne
- @JoinColumn(name = "time_interval_id")
- public TimeInterval getTimeInterval() {
- return timeInterval;
- }
-
- public void setTimeInterval(TimeInterval timeInterval) {
- this.timeInterval = timeInterval;
- }
-
- @OneToOne
- @JoinColumn(name = "cur_elevation_model_id")
- public ElevationModel getCurElevationModel() {
- return curElevationModel;
- }
-
- public void setCurElevationModel(ElevationModel curElevationModel) {
- this.curElevationModel = curElevationModel;
- }
-
- @OneToOne
- @JoinColumn(name = "old_elevation_model_id")
- public ElevationModel getOldElevationModel() {
- return oldElevationModel;
- }
-
- public void setOldElevationModel(ElevationModel oldElevationModel) {
- this.oldElevationModel = oldElevationModel;
- }
-
- @OneToOne
- @JoinColumn(name = "range_id")
- public Range getRange() {
- return range;
- }
-
- public void setRange(Range range) {
- this.range = range;
- }
-
- @Column(name = "evaluation_by")
- public String getEvaluationBy() {
- return evaluationBy;
- }
-
- public void setEvaluationBy(String evaluationBy) {
- this.evaluationBy = evaluationBy;
- }
-
- @Column(name = "description")
- public String getDescription() {
- return description;
- }
-
- public void setDescription(String description) {
- this.description = description;
- }
-
- @OneToMany
- @JoinColumn(name = "bed_height_epoch_id")
- public List<BedHeightEpochValue> getValues() {
- return values;
- }
-
- public void setValues(List<BedHeightEpochValue> values) {
- this.values = values;
- }
-
-
- public static List<BedHeightEpoch> getBedHeightEpochs(
- River river,
- double kmLo,
- double kmHi
- ) {
- Session session = SessionHolder.HOLDER.get();
-
- Query query = session.createQuery(
- "from BedHeightEpoch where river=:river");
-
- query.setParameter("river", river);
-
- // TODO Do km range filtering in SQL statement
-
- List<BedHeightEpoch> epochs = query.list();
- List<BedHeightEpoch> good = new ArrayList<BedHeightEpoch>();
-
- OUTER: for (BedHeightEpoch e: epochs) {
- for (BedHeightEpochValue value: e.getValues()) {
- double station = value.getStation().doubleValue();
-
- if (station >= kmLo && station <= kmHi) {
- good.add(e);
- continue OUTER;
- }
- }
- }
-
- return good;
- }
-
-
- public static BedHeightEpoch getBedHeightEpochById(int id) {
- Session session = SessionHolder.HOLDER.get();
-
- Query query = session.createQuery(
- "from BedHeightEpoch where id=:id");
-
- query.setParameter("id", id);
-
- List<BedHeightEpoch> singles = query.list();
-
- return singles != null ? singles.get(0) : null;
- }
-}
-// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
diff -r 42076d94977e -r 45cced06490c backend/src/main/java/org/dive4elements/river/model/BedHeightEpochValue.java
--- a/backend/src/main/java/org/dive4elements/river/model/BedHeightEpochValue.java Wed May 21 11:43:10 2014 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,127 +0,0 @@
-/* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
- * Software engineering by Intevation GmbH
- *
- * This file is Free Software under the GNU AGPL (>=v3)
- * and comes with ABSOLUTELY NO WARRANTY! Check out the
- * documentation coming with Dive4Elements River for details.
- */
-
-package org.dive4elements.river.model;
-
-import java.util.List;
-
-import java.io.Serializable;
-import java.math.BigDecimal;
-
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.Table;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Column;
-import javax.persistence.SequenceGenerator;
-import javax.persistence.GenerationType;
-import javax.persistence.JoinColumn;
-import javax.persistence.OneToOne;
-
-import org.apache.log4j.Logger;
-
-import org.hibernate.Session;
-import org.hibernate.Query;
-
-import org.dive4elements.river.backend.SessionHolder;
-
-
- at Entity
- at Table(name = "bed_height_epoch_values")
-public class BedHeightEpochValue
-implements Serializable
-{
- private static Logger logger =
- Logger.getLogger(BedHeightEpochValue.class);
-
- private Integer id;
-
- private BedHeightEpoch bedHeight;
-
- private BigDecimal station;
- private BigDecimal height;
-
-
- public BedHeightEpochValue() {
- }
-
- public BedHeightEpochValue(
- BedHeightEpoch bedHeight,
- BigDecimal station,
- BigDecimal height
- ) {
- this.bedHeight = bedHeight;
- this.station = station;
- this.height = height;
- }
-
- @Id
- @SequenceGenerator(
- name = "SEQUENCE_BED_EPOCH_VALUE_ID_SEQ",
- sequenceName = "BED_EPOCH_VALUES_ID_SEQ",
- allocationSize = 1)
- @GeneratedValue(
- strategy = GenerationType.SEQUENCE,
- generator = "SEQUENCE_BED_EPOCH_VALUE_ID_SEQ")
- @Column(name = "id")
- public Integer getId() {
- return id;
- }
-
- public void setId(Integer id) {
- this.id = id;
- }
-
- @OneToOne
- @JoinColumn(name = "bed_height_epoch_id" )
- public BedHeightEpoch getBedHeight() {
- return bedHeight;
- }
-
- public void setBedHeight(BedHeightEpoch bedHeight) {
- this.bedHeight = bedHeight;
- }
-
- @Column(name = "station")
- public BigDecimal getStation() {
- return station;
- }
-
- public void setStation(BigDecimal station) {
- this.station = station;
- }
-
- @Column(name = "height")
- public BigDecimal getHeight() {
- return height;
- }
-
- public void setHeight(BigDecimal height) {
- this.height = height;
- }
-
-
- public static List<BedHeightEpochValue> getBedHeightEpochValues(
- BedHeightEpoch epoch,
- double kmLo,
- double kmHi
- ) {
- Session session = SessionHolder.HOLDER.get();
-
- Query query = session.createQuery(
- "from BedHeightEpochValue where bedHeight=:epoch " +
- " and station >= :kmLo and station <= :kmHi");
-
- query.setParameter("epoch", epoch);
- query.setParameter("kmLo", new BigDecimal(kmLo));
- query.setParameter("kmHi", new BigDecimal(kmHi));
-
- return query.list();
- }
-}
-// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
diff -r 42076d94977e -r 45cced06490c backend/src/main/java/org/dive4elements/river/model/GrainFraction.java
--- a/backend/src/main/java/org/dive4elements/river/model/GrainFraction.java Wed May 21 11:43:10 2014 +0200
+++ b/backend/src/main/java/org/dive4elements/river/model/GrainFraction.java Mon Jun 30 11:29:45 2014 +0200
@@ -33,6 +33,7 @@
public static final String SUSP_SAND = "susp_sand";
public static final String SUSP_SAND_BED = "susp_sand_bed";
public static final String SUSPENDED_SEDIMENT = "suspended_sediment";
+ public static final String UNKNOWN = "unknown";
private static Logger logger = Logger.getLogger(GrainFraction.class);
diff -r 42076d94977e -r 45cced06490c backend/src/main/java/org/dive4elements/river/utils/DateUtil.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/backend/src/main/java/org/dive4elements/river/utils/DateUtil.java Mon Jun 30 11:29:45 2014 +0200
@@ -0,0 +1,37 @@
+/* Copyright (C) 2014 by Bundesanstalt für Gewässerkunde
+ * Software engineering by Intevation GmbH
+ *
+ * This file is Free Software under the GNU AGPL (>=v3)
+ * and comes with ABSOLUTELY NO WARRANTY! Check out the
+ * documentation coming with Dive4Elements River for details.
+ */
+
+package org.dive4elements.river.utils;
+
+import java.util.Date;
+import java.util.Calendar;
+
+public final class DateUtil {
+
+ private DateUtil() {
+ }
+
+ /** Create Date on first moment (1st jan) of given year. */
+ public static Date getStartDateFromYear(int year) {
+ Calendar cal = Calendar.getInstance();
+ cal.clear();
+ cal.set(year, 0, 1, 0, 0, 0);
+
+ return cal.getTime();
+ }
+
+
+ /** Create Date on last moment (31st dec) of given year. */
+ public static Date getEndDateFromYear(int year) {
+ Calendar cal = Calendar.getInstance();
+ cal.clear();
+ cal.set(year, 11, 31, 23, 59, 59);
+
+ return cal.getTime();
+ }
+}
diff -r 42076d94977e -r 45cced06490c contrib/make_flys_release/make_release.sh
--- a/contrib/make_flys_release/make_release.sh Wed May 21 11:43:10 2014 +0200
+++ b/contrib/make_flys_release/make_release.sh Mon Jun 30 11:29:45 2014 +0200
@@ -65,7 +65,7 @@
# --seddb-pass Sediment db password. Default: $SEDDBPASS
# --seddb-back Sediment db backend. Default: $SEDDBBACK
TOMCAT_PORT=${TOMCAT_PORT:-8282}
-MAPSERVER_URL=${MAPSERVER_URL:-http://flys-devel.intevation.de}
+MAPSERVER_URL=${MAPSERVER_URL:-http://flys-devel.intevation.de/cgi-bin/flys}
WIKI_URL=${WIKI_URL:-https://flys3-devel.bafg.de/wiki}
# Prefix to FreeSans.ttf
FONT_PATH=${FONT_PATH:-/opt/flys}
@@ -264,6 +264,9 @@
fi
cp -r $FLYS_SOURCE_DIR/OpenLayers-2.11 $FLYS_SOURCE_DIR/river/gwt-client/src/main/webapp/
+echo "INFO: Downloading smartGWT"
+mvn com.isomorphic:isc-maven-plugin:install -Dproduct=SMARTGWT -Dlicense=LGPL -DbuildNumber=4.1p -DbuildDate=2014-06-17 -Dworkdir=$WORK_DIR
+
echo "INFO: compile and build sources"
mvn -f $FLYS_SOURCE_DIR/framework/pom.xml clean compile package install
mvn -f $FLYS_SOURCE_DIR/river/backend/pom.xml clean compile package install
@@ -271,6 +274,9 @@
mvn -f $FLYS_SOURCE_DIR/http-client/pom.xml clean compile package install
mvn -f $FLYS_SOURCE_DIR/river/gwt-client/pom.xml clean compile package
+# remove unused Version of JFreeChart (it's a dependency of JasperReports
+# that prevents diagram generation in D4E river)
+rm $FLYS_SOURCE_DIR/river/artifacts/target/dependency/jfreechart-1.0.12.jar
echo "INFO: copy dependencies and libs"
cp $FLYS_SOURCE_DIR/framework/artifact-database/target/artifact-database-1.0-SNAPSHOT.jar $WORK_DIR/server/bin/lib/own/
@@ -321,10 +327,10 @@
sed -i "s/8181/$ARTIFACT_PORT/g" \
$WORK_DIR/server/conf/rest-server.xml
-sed -i -e "s at http://yourhost:8081/@${MAPSERVER_URL}/@g" \
+sed -i -e "s at http://yourhost:8081/cgi-bin@${MAPSERVER_URL}-${VERSION}@g" \
$WORK_DIR/server/conf/floodmap.xml
-sed -i -e "s at http://yourhost:8081/@${MAPSERVER_URL}/@g" \
+sed -i -e "s at http://yourhost:8081/cgi-bin@${MAPSERVER_URL}-${VERSION}@g" \
$WORK_DIR/server/conf/rivermap.xml
sed -i -e "s@/usr/share/fonts/truetype/freefont@${FONT_PATH}@g" \
@@ -422,7 +428,7 @@
mv $WORK_DIR/server $WORK_DIR/client $WORK_DIR/flys-$VERSION
cd $WORK_DIR
tar cfz flys-$VERSION.tar.gz flys-$VERSION
-echo "INFO: cleanup"
+#echo "INFO: cleanup"
#rm -r $WORK_DIR/flys-$VERSION
echo "DONE: $WORK_DIR/flys-$VERSION.tar.gz"
diff -r 42076d94977e -r 45cced06490c doc/INSTALL_DE
--- a/doc/INSTALL_DE Wed May 21 11:43:10 2014 +0200
+++ b/doc/INSTALL_DE Mon Jun 30 11:29:45 2014 +0200
@@ -56,10 +56,22 @@
Installation von D4E-river aus Binärpaket
=========================================
-Entpacken des Dive4Elements-river Installer-Pakets
---------------------------------------------------
- $ tar -xzf d4e-river.tar.gz
- @TODO: eventuell anpassen
+ Herunterladen von
+ - d4e-river-3.1.2.tar.bz2
+ - d4river-3.1.2.war
+
+ Als root-User:
+ # cd /opt/
+ # tar xvjf d4e-river-3.1.2.tar.bz2
+ # chown -R d4e d4e-river
+
+ In das Verzeichnis /opt/d4e-river/dgm/ müssen noch die DGMs der
+ Demo-Daten kopiert werden. (s.u.)
+
+ # mv d4river-3.1.2.war /var/lib/tomcat6/webapps/d4e-river.war
+
+ Der Tomcat muss wie unten dokumentiert konfiguriert werden.
+ Gleiches gilt für die MapServer-Installation.
Erfolgt die Installation von D4E-river aus den Binärpaketen, können die
folgenden Schritte übersprungen werden.
diff -r 42076d94977e -r 45cced06490c gwt-client/pom.xml
--- a/gwt-client/pom.xml Wed May 21 11:43:10 2014 +0200
+++ b/gwt-client/pom.xml Mon Jun 30 11:29:45 2014 +0200
@@ -38,9 +38,9 @@
<version>2.5</version>
</dependency-->
<dependency>
- <groupId>com.smartgwt</groupId>
- <artifactId>smartgwt</artifactId>
- <version>3.0</version>
+ <groupId>com.isomorphic.smartgwt.lgpl</groupId>
+ <artifactId>smartgwt-lgpl</artifactId>
+ <version>[4.1,5.0)</version>
</dependency>
<dependency>
<groupId>org.dive4elements</groupId>
diff -r 42076d94977e -r 45cced06490c gwt-client/src/main/java/org/dive4elements/river/client/client/FLYSConstants.java
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/FLYSConstants.java Wed May 21 11:43:10 2014 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/FLYSConstants.java Mon Jun 30 11:29:45 2014 +0200
@@ -108,6 +108,8 @@
String legend();
+ String wms_legend();
+
String chart_title();
String chart_subtitle();
@@ -610,6 +612,8 @@
String soundings_width();
+ String porosities();
+
String bed_difference_year();
String bed_difference_epoch();
@@ -1371,5 +1375,9 @@
String suggested_label();
String negative_values_not_allowed_for_to();
+
+ String analyzed_range();
+
+ String minfo_type();
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
diff -r 42076d94977e -r 45cced06490c gwt-client/src/main/java/org/dive4elements/river/client/client/FLYSConstants.properties
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/FLYSConstants.properties Wed May 21 11:43:10 2014 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/FLYSConstants.properties Mon Jun 30 11:29:45 2014 +0200
@@ -39,6 +39,7 @@
diagram = Chart
axes = Axes
legend = Legend
+wms_legend= WMS Legend
chart_title = Title
chart_subtitle = Subtitle
grid = Grid
@@ -165,6 +166,8 @@
wq_value_q = Q [m\u00b3/s]
river_km = River-Km
uesk_profile_distance = Distance [m]
+minfo_type = Type
+analyzed_range = Analyzed Range
wqTitle = Input for W/Q Data
wqadaptedTitle = Input for W/Q Data
@@ -260,6 +263,7 @@
bed_diameter = Bed Diameter
soundings = Soundings
soundings_width = Soundings Width
+porosities = Porosity
bed_difference_year = Bedheight Differences
bed_difference_epoch = Epoch Bedheight Differences
bed_difference_height_year = Bedheight Differences per year
@@ -667,7 +671,7 @@
gauge_info_link = Gaugeinfo
gauge_url = /PegelInfo/
gauge_river_url = /GewaesserInfo/
-gauge_curve_link = Dischargecurve/-table
+gauge_curve_link = model dischargecurve/-table
discharge_timeranges = DC-Timeranges
discharge_chart = W/Q-Preview
diff -r 42076d94977e -r 45cced06490c gwt-client/src/main/java/org/dive4elements/river/client/client/FLYSConstants_de.properties
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/FLYSConstants_de.properties Wed May 21 11:43:10 2014 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/FLYSConstants_de.properties Mon Jun 30 11:29:45 2014 +0200
@@ -39,6 +39,7 @@
diagram = Diagramm
axes = Achsen
legend = Legende
+wms_legend= WMS Legende
chart_title = Titel
chart_subtitle = Untertitel
grid = Gitternetz
@@ -81,6 +82,7 @@
cancelCalculationLabel = Aktuelle Berechnung abbrechen.
calculationCanceled = Die Berechnung wurde abgebrochen.
range = Bereich
+analyzed_range = ausgewertete Strecke
resultCount = Treffer
bfg_id = BfG-ID
start_year = Start
@@ -142,6 +144,7 @@
riverside = Flussseite
name = Name
type = Typ
+minfo_type = Aufnahmeart
starttime = Reihe von
stoptime = Reihe bis
wq_waterlevel_label = Kennzeichnender Wassterstand
@@ -261,6 +264,7 @@
bed_diameter = Sohldurchmesser
soundings = Peilungen
soundings_width = Gepeilte Breite
+porosities = Porosit\u00e4t
bed_difference_year = Sohlh\u00f6hendifferenz
bed_difference_epoch = Sohlh\u00f6hendifferenz (Epoche)
bed_difference_height_year = Sohlh\u00f6hendifferenz pro Jahr
@@ -666,7 +670,7 @@
gauge_info_link = Pegelinfo
gauge_url = /PegelInfo/
gauge_river_url = /GewaesserInfo/
-gauge_curve_link = Abflusskurve/-tafel
+gauge_curve_link = Modell-Abflusskurve/-tafel
discharge_timeranges = AK-Zeitr\u00e4ume
discharge_chart = W/Q-Vorschau
diff -r 42076d94977e -r 45cced06490c gwt-client/src/main/java/org/dive4elements/river/client/client/FLYSConstants_en.properties
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/FLYSConstants_en.properties Wed May 21 11:43:10 2014 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/FLYSConstants_en.properties Mon Jun 30 11:29:45 2014 +0200
@@ -39,6 +39,7 @@
diagram = Chart
axes = Axes
legend = Legend
+wms_legend= WMS Legend
chart_title = Title
chart_subtitle = Subtitle
grid = Grid
@@ -166,6 +167,9 @@
river_km = River-Km
uesk_profile_distance = Distance [m]
+minfo_type = Type
+analyzed_range = Analyzed Range
+
wqTitle = Input for W/Q Data
wqadaptedTitle = Input for W/Q Data
noMainValueAtGauge = Selected main value not present at all gauges
@@ -259,6 +263,7 @@
bed_diameter = Bed Diameter
soundings = Soundings
soundings_width = Soundings Width
+porosities = Porosity
bed_difference_year = Bedheight Differences
bed_difference_epoch = Epoch Bedheight Differences
bed_difference_height_year = Bedheight Difference per year
@@ -641,7 +646,7 @@
gauge_info_link = Gaugeinfo
gauge_url = /PegelInfo/
gauge_river_url = /GewaesserInfo/
-gauge_curve_link = Dischargecurve/-table
+gauge_curve_link = model dischargecurve/-table
discharge_timeranges = DC-Timeranges
discharge_chart = W/Q-Preview
diff -r 42076d94977e -r 45cced06490c gwt-client/src/main/java/org/dive4elements/river/client/client/ui/CollectionView.java
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/CollectionView.java Wed May 21 11:43:10 2014 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/CollectionView.java Mon Jun 30 11:29:45 2014 +0200
@@ -513,7 +513,6 @@
if (export.getFacet("csv") != null) {
hasCSV = true;
- parameterList.contractInfoPanel();
}
}
}
diff -r 42076d94977e -r 45cced06490c gwt-client/src/main/java/org/dive4elements/river/client/client/ui/DatacageWidget.java
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/DatacageWidget.java Wed May 21 11:43:10 2014 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/DatacageWidget.java Mon Jun 30 11:29:45 2014 +0200
@@ -292,6 +292,20 @@
}
+ public List<TreeNode> getPlainSelection() {
+ ListGridRecord [] selection = treeGrid.getSelectedRecords();
+ List<TreeNode> nodes = new ArrayList<TreeNode>();
+ if (selection != null) {
+ for (ListGridRecord record: selection) {
+ if (record instanceof TreeNode) {
+ nodes.add((TreeNode)record);
+ }
+ }
+ }
+ return nodes;
+ }
+
+
/**
* Returns the titles of selected items (if any).
*/
diff -r 42076d94977e -r 45cced06490c gwt-client/src/main/java/org/dive4elements/river/client/client/ui/GaugeTimeRangePanel.java
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/GaugeTimeRangePanel.java Wed May 21 11:43:10 2014 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/GaugeTimeRangePanel.java Mon Jun 30 11:29:45 2014 +0200
@@ -295,9 +295,9 @@
};
- ListGridField addstart = new ListGridField ("", MESSAGES.from());
+ ListGridField addstart = new ListGridField ("addstart", MESSAGES.from());
addstart.setType (ListGridFieldType.ICON);
- addstart.setWidth (20);
+ addstart.setWidth (30);
addstart.setCellIcon(baseUrl + MESSAGES.markerGreen());
addstart.addRecordClickHandler(new RecordClickHandler() {
@Override
@@ -312,9 +312,9 @@
}
});
- ListGridField addend = new ListGridField ("", MESSAGES.to());
+ ListGridField addend = new ListGridField ("addend", MESSAGES.to());
addend.setType (ListGridFieldType.ICON);
- addend.setWidth (20);
+ addend.setWidth (30);
addend.setCellIcon(baseUrl + MESSAGES.markerRed());
addend.addRecordClickHandler(new RecordClickHandler() {
@Override
diff -r 42076d94977e -r 45cced06490c gwt-client/src/main/java/org/dive4elements/river/client/client/ui/LinkSelection.java
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/LinkSelection.java Wed May 21 11:43:10 2014 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/LinkSelection.java Mon Jun 30 11:29:45 2014 +0200
@@ -186,6 +186,7 @@
int counter = 0;
for (DataItem item: d.getItems()) {
HLayout row = new HLayout();
+ row.setTitle(item.getLabel());
LinkItem link = new LinkItem("river");
link.setHoverDelay(0);
link.setLinkTitle(item.getLabel());
@@ -312,7 +313,8 @@
private static void selectCallback(String name) {
if (availableRiver(name)) {
- trigger.trigger(name);
+ String river = riverList.get(name).getTitle();
+ trigger.trigger(river);
}
}
diff -r 42076d94977e -r 45cced06490c gwt-client/src/main/java/org/dive4elements/river/client/client/ui/LocationDistancePanel.java
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/LocationDistancePanel.java Wed May 21 11:43:10 2014 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/LocationDistancePanel.java Mon Jun 30 11:29:45 2014 +0200
@@ -250,7 +250,7 @@
ListGridField addDistance = new ListGridField ("", "");
addDistance.setType (ListGridFieldType.ICON);
- addDistance.setWidth (20);
+ addDistance.setWidth (30);
addDistance.addRecordClickHandler (new RecordClickHandler () {
@Override
public void onRecordClick (RecordClickEvent e) {
@@ -463,12 +463,12 @@
}
};
- ListGridField addfrom = new ListGridField ("from", MESSAGES.from());
+ ListGridField addfrom = new ListGridField ("fromIcon", MESSAGES.from());
addfrom.setType (ListGridFieldType.ICON);
addfrom.setWidth (30);
addfrom.setCellIcon(baseUrl + MESSAGES.markerGreen());
- ListGridField addto2 = new ListGridField ("to", MESSAGES.to());
+ ListGridField addto2 = new ListGridField ("toIcon", MESSAGES.to());
addto2.setType (ListGridFieldType.ICON);
addto2.setWidth (30);
addto2.setCellIcon(baseUrl + MESSAGES.markerRed());
diff -r 42076d94977e -r 45cced06490c gwt-client/src/main/java/org/dive4elements/river/client/client/ui/LocationPicker.java
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/LocationPicker.java Wed May 21 11:43:10 2014 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/LocationPicker.java Mon Jun 30 11:29:45 2014 +0200
@@ -156,13 +156,13 @@
locationTable.setEmptyMessage(MSG.empty_filter());
locationTable.setCanReorderFields(false);
- ListGridField addLocation = new ListGridField ("", "");
+ ListGridField addLocation = new ListGridField ("addlocation", "");
addLocation.setType (ListGridFieldType.ICON);
- addLocation.setWidth (20);
+ addLocation.setWidth (30);
addLocation.setCellIcon (baseUrl + MSG.markerGreen());
- ListGridField addTo = new ListGridField ("", "");
+ ListGridField addTo = new ListGridField ("addto", "");
addTo.setType (ListGridFieldType.ICON);
- addTo.setWidth (20);
+ addTo.setWidth (30);
addTo.setCellIcon (baseUrl + MSG.markerRed());
ListGridField ldescr = new ListGridField("description",
diff -r 42076d94977e -r 45cced06490c gwt-client/src/main/java/org/dive4elements/river/client/client/ui/MultiPeriodPanel.java
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/MultiPeriodPanel.java Wed May 21 11:43:10 2014 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/MultiPeriodPanel.java Mon Jun 30 11:29:45 2014 +0200
@@ -11,6 +11,7 @@
import com.google.gwt.core.client.GWT;
import com.google.gwt.i18n.client.DateTimeFormat;
+import com.smartgwt.client.data.DateRange;
import com.smartgwt.client.types.ListGridFieldType;
import com.smartgwt.client.widgets.Button;
import com.smartgwt.client.widgets.Canvas;
@@ -70,8 +71,9 @@
add.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent ce) {
- Date f = inputPanel.getFromDate();
- Date t = inputPanel.getToDate();
+ DateRange range = inputPanel.getValue();
+ Date f = range.getStartDate();
+ Date t = range.getEndDate();
if (f == null || t == null) {
return;
}
diff -r 42076d94977e -r 45cced06490c gwt-client/src/main/java/org/dive4elements/river/client/client/ui/ParameterList.java
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/ParameterList.java Wed May 21 11:43:10 2014 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/ParameterList.java Mon Jun 30 11:29:45 2014 +0200
@@ -11,6 +11,7 @@
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.smartgwt.client.types.Overflow;
import com.smartgwt.client.types.VerticalAlignment;
import com.smartgwt.client.types.VisibilityMode;
import com.smartgwt.client.util.SC;
@@ -225,6 +226,7 @@
stack.setHeight100();
stack.setCanResizeSections(true);
stack.setVisibilityMode(VisibilityMode.MULTIPLE);
+ stack.setOverflow(Overflow.SCROLL);
// This canvas is used to render helper widgets.
final SectionStackSection helperSection = new SectionStackSection();
@@ -256,6 +258,7 @@
public void addMember(Canvas component) {
super.addMember(component);
tableSection.setExpanded(true);
+ stack.getSection(InfoPanel.SECTION_ID).setExpanded(false);
}
@Override
@@ -979,12 +982,17 @@
GWT.log("ParameterList - showInfoPanel");
/* Don't add InfoPanel twice */
- SectionStackSection exists = stack.getSection(InfoPanel.SECTION_ID);
- if (exists == null) {
- stack.addSection(infoPanel.getSection(), 0);
+ SectionStackSection info = stack.getSection(InfoPanel.SECTION_ID);
+ if (info == null) {
+ info = new SectionStackSection();
+ info.setTitle(infoPanel.getSectionTitle());
+ info.setID(InfoPanel.SECTION_ID);
+ info.setName(InfoPanel.SECTION_ID);
+ info.setItems(infoPanel);
+ stack.addSection(info, 0);
}
- infoPanel.show();
+ info.setExpanded(true);
}
private void hideInfoPanel() {
@@ -1017,16 +1025,5 @@
hideInfoPanel();
}
}
-
- /**
- * Allow to close all folds of the info panel.
- * This is necessary e.g. if a csv result should be shown.
- */
- public void contractInfoPanel() {
- if (infoPanel != null) {
- infoPanel.contract();
- }
- }
-
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
diff -r 42076d94977e -r 45cced06490c gwt-client/src/main/java/org/dive4elements/river/client/client/ui/PeriodPanel.java
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/PeriodPanel.java Wed May 21 11:43:10 2014 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/PeriodPanel.java Mon Jun 30 11:29:45 2014 +0200
@@ -11,6 +11,7 @@
import com.google.gwt.core.client.GWT;
import com.google.gwt.i18n.client.DateTimeFormat;
+import com.smartgwt.client.data.DateRange;
import com.smartgwt.client.util.SC;
import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.Label;
@@ -182,8 +183,9 @@
protected boolean saveDateValues() {
- Date st = inputPanel.getFromDate();
- Date en = inputPanel.getToDate();
+ DateRange range = inputPanel.getValue();
+ Date st = range.getStartDate();
+ Date en = range.getEndDate();
if (st == null || en == null) {
SC.warn(MSG.error_wrong_date());
return false;
diff -r 42076d94977e -r 45cced06490c gwt-client/src/main/java/org/dive4elements/river/client/client/ui/ProjectList.java
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/ProjectList.java Wed May 21 11:43:10 2014 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/ProjectList.java Mon Jun 30 11:29:45 2014 +0200
@@ -494,7 +494,7 @@
SC.warn(msg);
ListGridRecord[] rs = grid.getRecords();
- rs[row] = (ListGridRecord) event.getOldRecord();
+ rs[row] = (ListGridRecord) event.getOldValues();
grid.setRecords(rs);
return;
diff -r 42076d94977e -r 45cced06490c gwt-client/src/main/java/org/dive4elements/river/client/client/ui/RiverInfoPanel.java
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/RiverInfoPanel.java Wed May 21 11:43:10 2014 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/RiverInfoPanel.java Mon Jun 30 11:29:45 2014 +0200
@@ -10,12 +10,11 @@
import com.google.gwt.core.client.GWT;
import com.google.gwt.i18n.client.NumberFormat;
-import com.google.gwt.user.client.ui.HorizontalPanel;
-import com.google.gwt.user.client.ui.Label;
-import com.google.gwt.user.client.ui.Widget;
+import com.smartgwt.client.types.Alignment;
+import com.smartgwt.client.types.VerticalAlignment;
+import com.smartgwt.client.widgets.Label;
import com.smartgwt.client.widgets.form.DynamicForm;
-
-import java.util.Iterator;
+import com.smartgwt.client.widgets.layout.HLayout;
import org.dive4elements.river.client.client.Config;
import org.dive4elements.river.client.client.FLYS;
@@ -26,7 +25,7 @@
* Panel to display information about a river.
* @author <a href="mailto:bjoern.ricks at intevation.de">Björn Ricks</a>
*/
-public class RiverInfoPanel extends HorizontalPanel {
+public class RiverInfoPanel extends HLayout {
/** The flys instance */
protected FLYS flys;
@@ -43,9 +42,9 @@
this.flys = flys;
setStyleName("riverinfopanel");
- setHeight("" + HEIGHT + "px");
- setVerticalAlignment(ALIGN_MIDDLE);
-
+ setHeight(HEIGHT + "px");
+ setAlign(VerticalAlignment.CENTER);
+ setAlign(Alignment.LEFT);
setRiverInfo(riverinfo);
}
@@ -54,7 +53,7 @@
NumberFormat nf = NumberFormat.getDecimalFormat();
- removeAllLabels();
+ //removeAllLabels();
addLabel(riverinfo.getName(), false);
@@ -101,7 +100,8 @@
DynamicForm infoLink = WikiLinks.linkDynamicForm(this.flys, wikiBaseUrl + url,
MSG.gauge_river_info_link());
infoLink.setTop(5);
- add(infoLink);
+ infoLink.setMargin(5);
+ addMember(infoLink);
}
public static int getStaticHeight() {
@@ -112,21 +112,9 @@
}
private void addLabel(String text, boolean wordwrap) {
- Label label = new Label(text, wordwrap);
- add(label);
- setCellHeight(label, "" + HEIGHT + "px");
- }
-
- private void removeAllLabels() {
- GWT.log("RiverInfoPanel - removeAllLabels");
-
- Iterator<Widget> it = this.iterator();
- while(it.hasNext()) {
- it.next();
- it.remove();
- }
- /* for (Widget wid: this) { */
- /* this.remove(wid); */
- /* } */
+ Label label = new Label("<span style='font-size:1.3em'>" + text + "</span>");
+ label.setWrap(wordwrap);
+ label.setMargin(5);
+ addMember(label);
}
}
diff -r 42076d94977e -r 45cced06490c gwt-client/src/main/java/org/dive4elements/river/client/client/ui/WikiLinks.java
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/WikiLinks.java Wed May 21 11:43:10 2014 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/WikiLinks.java Mon Jun 30 11:29:45 2014 +0200
@@ -74,7 +74,9 @@
DynamicForm form = new DynamicForm();
LinkItem item = new LinkItem(quotedText);
item.setShowTitle(false);
+ item.setLinkTitle(quotedText);
item.setTarget(quotedUrl);
+ form.setItems(item);
return form;
}
diff -r 42076d94977e -r 45cced06490c gwt-client/src/main/java/org/dive4elements/river/client/client/ui/WspDatacagePanel.java
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/WspDatacagePanel.java Wed May 21 11:43:10 2014 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/WspDatacagePanel.java Mon Jun 30 11:29:45 2014 +0200
@@ -161,7 +161,7 @@
protected String createDataString(String artifact, Recommendation recommendation) {
Facet f = null;
-
+
// The filter will only be available or previous calculation artifacts.
Filter filter = recommendation.getFilter();
diff -r 42076d94977e -r 45cced06490c gwt-client/src/main/java/org/dive4elements/river/client/client/ui/map/ElevationWindow.java
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/map/ElevationWindow.java Wed May 21 11:43:10 2014 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/map/ElevationWindow.java Mon Jun 30 11:29:45 2014 +0200
@@ -219,7 +219,7 @@
catch (NumberFormatException nfe) {
SC.warn(MSG.ele_window_format_error() + " " + z);
- PointRecord old = (PointRecord) evt.getOldRecord();
+ PointRecord old = (PointRecord) evt.getOldValues();
ListGridRecord[] records = grid.getRecords();
records[evt.getRowNum()] = old;
diff -r 42076d94977e -r 45cced06490c gwt-client/src/main/java/org/dive4elements/river/client/client/ui/map/LegendWindow.java
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/map/LegendWindow.java Wed May 21 11:43:10 2014 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/map/LegendWindow.java Mon Jun 30 11:29:45 2014 +0200
@@ -10,6 +10,8 @@
import java.util.List;
+import com.google.gwt.core.client.GWT;
+
import com.smartgwt.client.types.ImageStyle;
import com.smartgwt.client.types.VerticalAlignment;
import com.smartgwt.client.widgets.Canvas;
@@ -19,6 +21,8 @@
import com.smartgwt.client.widgets.layout.HLayout;
import com.smartgwt.client.widgets.layout.VLayout;
+import org.dive4elements.river.client.client.FLYSConstants;
+
import org.dive4elements.river.client.shared.MapUtils;
import org.dive4elements.river.client.shared.model.AttributedTheme;
import org.dive4elements.river.client.shared.model.Theme;
@@ -27,10 +31,13 @@
public class LegendWindow extends Window {
+ protected FLYSConstants MSG = GWT.create(FLYSConstants.class);
+
private ThemeList themeList;
private VLayout legendContainer;
+
public LegendWindow(ThemeList themeList) {
this.themeList = themeList;
this.legendContainer = new VLayout();
@@ -92,7 +99,7 @@
legendContainer.setLayoutAlign(VerticalAlignment.TOP);
legendContainer.setAlign(VerticalAlignment.CENTER);
- setTitle("WMS Legend");
+ setTitle(MSG.wms_legend());
setAutoSize(true);
setCanDragResize(true);
setIsModal(false);
diff -r 42076d94977e -r 45cced06490c gwt-client/src/main/java/org/dive4elements/river/client/client/ui/minfo/BedHeightsDatacagePanel.java
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/minfo/BedHeightsDatacagePanel.java Wed May 21 11:43:10 2014 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/minfo/BedHeightsDatacagePanel.java Mon Jun 30 11:29:45 2014 +0200
@@ -14,14 +14,17 @@
import com.smartgwt.client.data.Record;
+import com.smartgwt.client.util.SC;
+import com.smartgwt.client.widgets.Button;
import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.events.ClickEvent;
-
+import com.smartgwt.client.widgets.events.ClickHandler;
import com.smartgwt.client.widgets.grid.ListGridRecord;
import com.smartgwt.client.widgets.layout.HLayout;
import com.smartgwt.client.widgets.layout.VLayout;
+import com.smartgwt.client.widgets.tree.TreeNode;
import org.dive4elements.river.client.client.Config;
import org.dive4elements.river.client.client.FLYSConstants;
@@ -35,6 +38,7 @@
import org.dive4elements.river.client.client.ui.DatacagePairWidget;
import org.dive4elements.river.client.client.ui.DatacageTwinPanel;
+import org.dive4elements.river.client.client.ui.DatacageWidget;
import org.dive4elements.river.client.client.ui.RecommendationPairRecord;
import org.dive4elements.river.client.shared.model.Artifact;
@@ -42,6 +46,7 @@
import org.dive4elements.river.client.shared.model.Data;
import org.dive4elements.river.client.shared.model.DataItem;
import org.dive4elements.river.client.shared.model.DataList;
+import org.dive4elements.river.client.shared.model.ToLoad;
import org.dive4elements.river.client.shared.model.Recommendation.Facet;
import org.dive4elements.river.client.shared.model.Recommendation.Filter;
@@ -80,6 +85,7 @@
RemoveArtifactServiceAsync removeArtifactService = GWT.create(
org.dive4elements.river.client.client.services.RemoveArtifactService.class);
+ protected DatacageWidget datacage;
public BedHeightsDatacagePanel(User user) {
super(user);
@@ -120,22 +126,25 @@
public Canvas create(DataList dataList) {
GWT.log("createData()");
- Data data = dataList.get(0);
- DataItem[] items = data.getItems();
-
- String value = items[0].getStringValue();
-
- String filter = "minfo-heights";
- if (value.equals("epoch")) {
- filter = "minfo-heights-epoch";
- }
+ String filter = "minfo-heights-diff";
Canvas widget = createWidget();
Canvas submit = getNextButton();
+ datacage = new DatacageWidget(
+ this.artifact, user, filter, "load-system:true", false);
+
+ Button plusBtn = new Button(MSG.datacage_add_pair());
+ plusBtn.setAutoFit(true);
+ plusBtn.addClickHandler(new ClickHandler() {
+ @Override
+ public void onClick(ClickEvent event) {
+ plusClicked();
+ }
+ });
VLayout layout = new VLayout();
- HLayout helperLayout = new HLayout();
- helperLayout.addMember(new DatacagePairWidget(this.artifact,
- user, filter, differencesList));
+ VLayout helperLayout = new VLayout();
+ helperLayout.addMember(datacage);
+ helperLayout.addMember(plusBtn);
layout.addMember(widget);
layout.addMember(submit);
@@ -314,5 +323,53 @@
+ recommendation.getDisplayName() + "]";
}
}
+
+ /**
+ * Callback for add-button.
+ * Fires to load for every selected element and handler.
+ */
+ public void plusClicked() {
+ List<TreeNode> selection = datacage.getPlainSelection();
+
+ if (selection == null || selection.isEmpty()) {
+ SC.say(MSG.warning());
+ return;
+ }
+
+ for (TreeNode node : selection) {
+ ToLoad toLoad1 = new ToLoad();
+ ToLoad toLoad2 = new ToLoad();
+
+ String factory = node.getAttribute("factory");
+ if (factory != null) { // we need at least a factory
+ String artifact = node.getAttribute("artifact-id");
+ String out = node.getAttribute("out");
+ String name = node.getAttribute("facet");
+ String ids = node.getAttribute("ids");
+ String info = node.getAttribute("info");
+ String targetOut = node.getAttribute("target_out");
+
+ String[] splitIds = ids.split("#");
+ String[] splitInfo = info.split("#");
+ toLoad1.add(artifact,
+ factory,
+ out,
+ name,
+ splitIds[0],
+ splitInfo[0],
+ targetOut);
+ toLoad2.add(artifact,
+ factory,
+ out,
+ name,
+ splitIds[1],
+ splitInfo[1],
+ targetOut);
+ }
+ differencesList.addData(new RecommendationPairRecord(
+ toLoad1.toRecommendations().get(0),
+ toLoad2.toRecommendations().get(0)));
+ }
+ }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
diff -r 42076d94977e -r 45cced06490c gwt-client/src/main/java/org/dive4elements/river/client/client/ui/minfo/SedLoadEpochPanel.java
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/minfo/SedLoadEpochPanel.java Wed May 21 11:43:10 2014 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/minfo/SedLoadEpochPanel.java Mon Jun 30 11:29:45 2014 +0200
@@ -93,7 +93,7 @@
catch(NumberFormatException nfe) {
return;
}
- Record r = new Record();
+ ListGridRecord r = new ListGridRecord();
r.setAttribute("from", v1);
r.setAttribute("to", v2);
elements.addData(r);
diff -r 42076d94977e -r 45cced06490c gwt-client/src/main/java/org/dive4elements/river/client/client/ui/range/LocationsTable.java
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/range/LocationsTable.java Wed May 21 11:43:10 2014 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/range/LocationsTable.java Mon Jun 30 11:29:45 2014 +0200
@@ -44,12 +44,12 @@
setEmptyMessage(MSG.empty_filter());
setCanReorderFields(false);
- ListGridField addfrom = new ListGridField ("from", MSG.from());
+ ListGridField addfrom = new ListGridField ("fromIcon", MSG.from());
addfrom.setType(ListGridFieldType.ICON);
addfrom.setWidth(30);
addfrom.setCellIcon(baseUrl + MSG.markerGreen());
- ListGridField addto = new ListGridField("to", MSG.to());
+ ListGridField addto = new ListGridField("toIcon", MSG.to());
addto.setType(ListGridFieldType.ICON);
addto.setWidth(30);
addto.setCellIcon(baseUrl + MSG.markerRed());
diff -r 42076d94977e -r 45cced06490c gwt-client/src/main/java/org/dive4elements/river/client/client/ui/stationinfo/GaugeInfoPanel.java
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/stationinfo/GaugeInfoPanel.java Wed May 21 11:43:10 2014 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/stationinfo/GaugeInfoPanel.java Mon Jun 30 11:29:45 2014 +0200
@@ -9,10 +9,11 @@
package org.dive4elements.river.client.client.ui.stationinfo;
import com.google.gwt.core.client.GWT;
-import com.google.gwt.event.dom.client.ClickEvent;
-import com.google.gwt.event.dom.client.ClickHandler;
+import com.smartgwt.client.widgets.form.DynamicForm;
+import com.smartgwt.client.widgets.form.fields.events.ClickEvent;
+import com.smartgwt.client.widgets.form.fields.events.ClickHandler;
+import com.smartgwt.client.widgets.form.fields.LinkItem;
import com.google.gwt.i18n.client.NumberFormat;
-import com.google.gwt.user.client.ui.Anchor;
import com.smartgwt.client.widgets.layout.HLayout;
import com.smartgwt.client.widgets.layout.VLayout;
import com.smartgwt.client.widgets.Label;
@@ -83,7 +84,9 @@
}
HLayout line5 = new HLayout();
- line5.addMember(new GaugeMainValueAnchor(flys, gauge));
+ DynamicForm line5Form = new DynamicForm();
+ line5Form.setItems(new GaugeMainValueAnchor(flys, gauge));
+ line5.addMember(line5Form);
if (minw != null && maxw != null) {
grid.addMember(line1);
@@ -105,16 +108,17 @@
* Clickable anchor that asks application to show window with
* main values for gauge.
*/
- class GaugeMainValueAnchor extends Anchor implements ClickHandler {
+ class GaugeMainValueAnchor extends LinkItem implements ClickHandler {
private FLYS flys;
private GaugeInfo gauge;
public GaugeMainValueAnchor(FLYS flys, GaugeInfo gauge) {
- super(MSG.show_mainvalues());
+ super();
+ this.setLinkTitle(MSG.show_mainvalues());
+ this.setShowTitle(false);
this.flys = flys;
this.gauge = gauge;
- this.setHeight("5");
addClickHandler(this);
}
diff -r 42076d94977e -r 45cced06490c gwt-client/src/main/java/org/dive4elements/river/client/client/ui/stationinfo/GaugeListGrid.java
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/stationinfo/GaugeListGrid.java Wed May 21 11:43:10 2014 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/stationinfo/GaugeListGrid.java Mon Jun 30 11:29:45 2014 +0200
@@ -304,7 +304,7 @@
@Override
protected Canvas getExpandPanel(ListGridRecord record) {
GaugeRecord item = (GaugeRecord)record;
- return new WidgetCanvas(new GaugeInfoPanel(item, flys));
+ return new GaugeInfoPanel(item, flys);
}
/**
diff -r 42076d94977e -r 45cced06490c gwt-client/src/main/java/org/dive4elements/river/client/client/ui/stationinfo/GaugePanel.java
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/stationinfo/GaugePanel.java Wed May 21 11:43:10 2014 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/stationinfo/GaugePanel.java Mon Jun 30 11:29:45 2014 +0200
@@ -42,7 +42,6 @@
* Loads the river info and renders it afterwards.
*/
public void refresh() {
- contract();
riverInfoService.getGauges(this.river, new AsyncCallback<RiverInfo>() {
@Override
@@ -54,7 +53,6 @@
public void onSuccess(RiverInfo riverinfo) {
GWT.log("Loaded river info");
render(riverinfo);
- expand();
}
});
}
diff -r 42076d94977e -r 45cced06490c gwt-client/src/main/java/org/dive4elements/river/client/client/ui/stationinfo/InfoListGrid.java
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/stationinfo/InfoListGrid.java Wed May 21 11:43:10 2014 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/stationinfo/InfoListGrid.java Mon Jun 30 11:29:45 2014 +0200
@@ -79,10 +79,7 @@
@Override
protected Canvas getExpansionComponent(ListGridRecord record) {
- VLayout layout = new VLayout();
- layout.setPadding(5);
- layout.addMember(this.getExpandPanel(record));
- return layout;
+ return this.getExpandPanel(record);
}
public abstract void open();
diff -r 42076d94977e -r 45cced06490c gwt-client/src/main/java/org/dive4elements/river/client/client/ui/stationinfo/InfoPanel.java
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/stationinfo/InfoPanel.java Wed May 21 11:43:10 2014 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/stationinfo/InfoPanel.java Mon Jun 30 11:29:45 2014 +0200
@@ -11,8 +11,6 @@
import com.google.gwt.core.client.GWT;
import com.smartgwt.client.types.Overflow;
-import com.smartgwt.client.widgets.Canvas;
-import com.smartgwt.client.widgets.layout.SectionStackSection;
import com.smartgwt.client.widgets.layout.VLayout;
import org.dive4elements.river.client.client.FLYS;
import org.dive4elements.river.client.client.FLYSConstants;
@@ -30,9 +28,6 @@
/** The instance of FLYS */
protected FLYS flys;
- /** SectionStackSection where this InfoPanel belongs in*/
- protected SectionStackSection section;
-
/** Name of the river */
protected String river;
@@ -49,20 +44,11 @@
public final static String SECTION_ID = "InfoPanelSection";
public InfoPanel(FLYS flys, InfoListGrid listgrid) {
- SectionStackSection section = new SectionStackSection();
- section.setExpanded(false);
- section.setTitle(getSectionTitle());
- section.setName(SECTION_ID);
- section.setID(SECTION_ID);
-
setOverflow(Overflow.HIDDEN);
setStyleName("infopanel");
this.flys = flys;
- section.setHidden(true);
- section.setItems(this);
- this.section = section;
this.listgrid = listgrid;
this.addMember(listgrid);
}
@@ -96,59 +82,11 @@
this.listgrid.setRiverInfo(riverinfo);
}
- /**
- * Hide the section stack section.
- */
- @Override
- public void hide() {
- GWT.log("InfoPanel - hide");
- this.section.setHidden(true);
- }
-
- /**
- * Show the section stack section.
- */
- @Override
- public void show() {
- GWT.log("InfoPanel - show");
- this.section.setHidden(false);
- }
-
- @Override
- public void addMember(Canvas component) {
- super.addMember(component);
- expand();
- }
-
- @Override
- public void removeMembers(Canvas[] components) {
- super.removeMembers(components);
- contract();
- }
-
- public SectionStackSection getSection() {
- return this.section;
- }
-
protected void removeAllMembers() {
removeMembers(getMembers());
}
- /**
- * Expands the gauge section.
- */
- public void expand() {
- section.setExpanded(true);
- }
-
- /**
- * Contracts/shrinks the expanded gauge section.
- */
- public void contract() {
- section.setExpanded(false);
- }
-
protected abstract void refresh();
- protected abstract String getSectionTitle();
+ public abstract String getSectionTitle();
}
diff -r 42076d94977e -r 45cced06490c gwt-client/src/main/java/org/dive4elements/river/client/client/ui/stationinfo/MeasurementStationInfoPanel.java
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/stationinfo/MeasurementStationInfoPanel.java Wed May 21 11:43:10 2014 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/stationinfo/MeasurementStationInfoPanel.java Mon Jun 30 11:29:45 2014 +0200
@@ -13,7 +13,8 @@
import com.google.gwt.core.client.GWT;
import com.google.gwt.i18n.client.DateTimeFormat;
import com.google.gwt.i18n.client.DateTimeFormat.PredefinedFormat;
-import com.google.gwt.user.client.ui.Grid;
+import com.smartgwt.client.widgets.Label;
+import com.smartgwt.client.widgets.layout.HLayout;
import com.smartgwt.client.widgets.layout.VLayout;
import org.dive4elements.river.client.client.FLYSConstants;
@@ -28,39 +29,64 @@
setStyleName("infopanel");
setWidth100();
- Grid grid = new Grid(5, 2);
+ VLayout grid = new VLayout();
+ HLayout line1 = new HLayout();
String type = station.getMeasurementType();
if (type != null) {
- grid.setText(0, 0, MSG.measurement_station_type());
- grid.setText(0, 1, type);
+ Label key = new Label(MSG.measurement_station_type());
+ Label value = new Label(type);
+ key.setWidth(150);
+ line1.addMember(key);
+ line1.addMember(value);
+ grid.addMember(line1);
}
+ HLayout line2 = new HLayout();
String riverside = station.getRiverSide();
if (riverside != null) {
- grid.setText(1, 0, MSG.riverside());
- grid.setText(1, 1, riverside);
+ Label key = new Label(MSG.riverside());
+ Label value = new Label(riverside);
+ key.setWidth(150);
+ line2.addMember(key);
+ line2.addMember(value);
+ grid.addMember(line2);
}
+ HLayout line3 = new HLayout();
String gaugename = station.getGaugeName();
if (gaugename != null) {
- grid.setText(2, 0, MSG.measurement_station_gauge_name());
- grid.setText(2, 1, gaugename);
+ Label key = new Label(MSG.measurement_station_gauge_name());
+ Label value = new Label(gaugename);
+ key.setWidth(150);
+ line3.addMember(key);
+ line3.addMember(value);
+ grid.addMember(line3);
}
+ HLayout line4 = new HLayout();
DateTimeFormat df = DateTimeFormat.getFormat(
- PredefinedFormat.DATE_MEDIUM);
+ PredefinedFormat.DATE_MEDIUM);
Date starttime = station.getStartTime();
if (starttime != null) {
- grid.setText(3, 0, MSG.measurement_station_start_time());
- grid.setText(3, 1, df.format(starttime));
+ Label key = new Label(MSG.measurement_station_start_time());
+ Label value = new Label(df.format(starttime));
+ key.setWidth(150);
+ line4.addMember(key);
+ line4.addMember(value);
+ grid.addMember(line4);
}
+ HLayout line5 = new HLayout();
String moperator = station.getOperator();
if (moperator != null) {
- grid.setText(4, 0, MSG.measurement_station_operator());
- grid.setText(4, 1, moperator);
+ Label key = new Label(MSG.measurement_station_operator());
+ Label value = new Label(moperator);
+ key.setWidth(150);
+ line5.addMember(key);
+ line5.addMember(value);
+ grid.addMember(line5);
}
addMember(grid);
diff -r 42076d94977e -r 45cced06490c gwt-client/src/main/java/org/dive4elements/river/client/client/ui/stationinfo/MeasurementStationListGrid.java
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/stationinfo/MeasurementStationListGrid.java Wed May 21 11:43:10 2014 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/stationinfo/MeasurementStationListGrid.java Mon Jun 30 11:29:45 2014 +0200
@@ -11,7 +11,6 @@
import com.google.gwt.core.client.GWT;
import com.smartgwt.client.widgets.Canvas;
-import com.smartgwt.client.widgets.WidgetCanvas;
import com.smartgwt.client.widgets.grid.ListGridField;
import com.smartgwt.client.widgets.grid.ListGridRecord;
import com.smartgwt.client.widgets.grid.events.RecordClickEvent;
@@ -38,8 +37,8 @@
ListGridField sfield = new ListGridField("kmstart", "Start [km]", 60);
ListGridField efield = new ListGridField("kmend", "Ende [km]", 60);
ListGridField stfield = new ListGridField("station", "Station [km]");
- ListGridField lfield = new ListGridField("infolink", "Link");
- ListGridField cfield = new ListGridField("curvelink", "SQ");
+ ListGridField lfield = new ListGridField("infolink", "Info");
+ ListGridField cfield = new ListGridField("curvelink", "Feststofftransport-Abfluss-Beziehung");
cfield.addRecordClickHandler(this);
this.setShowRecordComponents(true);
@@ -102,7 +101,7 @@
@Override
protected Canvas getExpandPanel(ListGridRecord record) {
MeasurementStationRecord station = (MeasurementStationRecord)record;
- return new WidgetCanvas(new MeasurementStationInfoPanel(station));
+ return new MeasurementStationInfoPanel(station);
}
@Override
diff -r 42076d94977e -r 45cced06490c gwt-client/src/main/java/org/dive4elements/river/client/client/ui/stationinfo/MeasurementStationPanel.java
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/stationinfo/MeasurementStationPanel.java Wed May 21 11:43:10 2014 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/stationinfo/MeasurementStationPanel.java Mon Jun 30 11:29:45 2014 +0200
@@ -44,7 +44,6 @@
@Override
public void refresh() {
GWT.log("MeasurementStationPanel - refresh");
- contract();
riverInfoService.getMeasurementStations(this.river,
new AsyncCallback<RiverInfo>() {
@@ -57,7 +56,6 @@
public void onSuccess(RiverInfo riverinfo) {
GWT.log("MeasurementStationPanel - Loaded river info");
render(riverinfo);
- expand();
}
});
}
More information about the Dive4Elements-commits
mailing list