changeset 9058:d3bef221b7d9

sinfo.collision states
author gernotbelger
date Fri, 04 May 2018 16:13:10 +0200
parents 2be202a8cb89 (diff) ddebd4c2fe93 (current diff)
children c49b95820d60
files artifacts/doc/conf/artifacts/sinfo.xml artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/collision/CollisionLoadYearEpochAccess.java artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/collision/LoadYearSelect.java
diffstat 5 files changed, 346 insertions(+), 215 deletions(-) [+]
line wrap: on
line diff
--- a/artifacts/doc/conf/artifacts/sinfo.xml	Fri May 04 14:05:21 2018 +0200
+++ b/artifacts/doc/conf/artifacts/sinfo.xml	Fri May 04 16:13:10 2018 +0200
@@ -3,84 +3,85 @@
 
   <states>
     <state id="state.sinfo.river" description="state.sinfo.river" state="org.dive4elements.river.artifacts.states.RiverSelect" helpText="help.state.sinfo.river">
-      <data name="river" type="String"/>
+      <data name="river" type="String" />
     </state>
 
     <transition transition="org.dive4elements.river.artifacts.transitions.DefaultTransition">
-      <from state="state.sinfo.river"/>
-      <to state="state.sinfo.calculation_mode"/>
+      <from state="state.sinfo.river" />
+      <to state="state.sinfo.calculation_mode" />
     </transition>
 
     <state id="state.sinfo.calculation_mode" description="state.sinfo.calculation_mode" state="org.dive4elements.river.artifacts.sinfo.CalculationSelectSinfo" helpText="help.state.sinfo.calculation_mode">
-      <data name="calculation_mode" type="String"/>
+      <data name="calculation_mode" type="String" />
     </state>
 
     <!-- Calculation Mode: Fließtiefen (Flow Depth) -->
     <transition transition="org.dive4elements.river.artifacts.transitions.ValueCompareTransition">
-      <from state="state.sinfo.calculation_mode"/>
-      <to state="state.sinfo.distance_only"/>
-      <condition data="calculation_mode" value="sinfo_calc_flow_depth" operator="equal"/>
+      <from state="state.sinfo.calculation_mode" />
+      <to state="state.sinfo.distance_only" />
+      <condition data="calculation_mode" value="sinfo_calc_flow_depth" operator="equal" />
     </transition>
 
     <state id="state.sinfo.distance_only" description="state.sinfo.distance_only" state="org.dive4elements.river.artifacts.states.DistanceOnlySelect" helpText="help.state.sinfo.distance_only">
-      <data name="ld_from" type="Double"/>
-      <data name="ld_to" type="Double"/>
+      <data name="ld_from" type="Double" />
+      <data name="ld_to" type="Double" />
     </state>
 
     <transition transition="org.dive4elements.river.artifacts.transitions.ValueCompareTransition">
-      <from state="state.sinfo.distance_only"/>
-      <to state="state.sinfo.waterlevel_soundings_select"/>
-      <condition data="calculation_mode" value="sinfo_calc_flow_depth" operator="equal"/>
+      <from state="state.sinfo.distance_only" />
+      <to state="state.sinfo.waterlevel_soundings_select" />
+      <condition data="calculation_mode" value="sinfo_calc_flow_depth" operator="equal" />
     </transition>
 
     <state id="state.sinfo.waterlevel_soundings_select" description="state.sinfo.waterlevel_soundings_select" state="org.dive4elements.river.artifacts.sinfo.flowdepth.FlowDepthPairSelectState" helpText="help.state.sinfo.waterlevel_soundings_select">
-      <data name="diffids" type="String"/>
+      <data name="diffids" type="String" />
     </state>
 
     <transition transition="org.dive4elements.river.artifacts.transitions.ValueCompareTransition">
-      <from state="state.sinfo.waterlevel_soundings_select"/>
-      <to state="state.sinfo.use_transport_bodies"/>
-      <condition data="calculation_mode" value="sinfo_calc_flow_depth" operator="equal"/>
+      <from state="state.sinfo.waterlevel_soundings_select" />
+      <to state="state.sinfo.use_transport_bodies" />
+      <condition data="calculation_mode" value="sinfo_calc_flow_depth" operator="equal" />
     </transition>
 
     <!-- FIXME: Nur Anzeigen, wenn Transportkörperhöhen vorliegen! -->
     <state id="state.sinfo.use_transport_bodies" description="state.sinfo.use_transport_bodies" state="org.dive4elements.river.artifacts.sinfo.flowdepth.UseTransportBodiesChoice" helpText="help.state.sinfo.use_transport_bodies">
-      <data name="use_transport_bodies" type="Boolean"/>
+      <data name="use_transport_bodies" type="Boolean" />
     </state>
 
     <transition transition="org.dive4elements.river.artifacts.transitions.ValueCompareTransition">
-      <from state="state.sinfo.use_transport_bodies"/>
-      <to state="state.sinfo.flow_depth"/>
-      <condition data="calculation_mode" value="sinfo_calc_flow_depth" operator="equal"/>
+      <from state="state.sinfo.use_transport_bodies" />
+      <to state="state.sinfo.flow_depth" />
+      <condition data="calculation_mode" value="sinfo_calc_flow_depth" operator="equal" />
     </transition>
 
     <state id="state.sinfo.flow_depth" description="state.sinfo.flow_depth" state="org.dive4elements.river.artifacts.sinfo.flowdepth.FlowDepthState" helpText="help.state.sinfo.flow_depth">
       <outputmodes>
         <outputmode name="sinfo_flow_depth" description="output.flow_depth" mime-type="image/png" type="chart">
           <facets>
-            <!-- REMARK: id's that ends with 'filtered' are handled differently ' -->
-            <facet name="sinfo_facet_flow_depth.filtered" description="flow depth, filtered by current zoom state"/>
-            <facet name="sinfo_facet_flow_depth" description="flow depth"/>
+            <!-- REMARK: id's that ends with 'filtered' are handled differently
+              ' -->
+            <facet name="sinfo_facet_flow_depth.filtered" description="flow depth, filtered by current zoom state" />
+            <facet name="sinfo_facet_flow_depth" description="flow depth" />
 
-            <facet name="sinfo_facet_flow_depth_with_tkh.filtered" description="flow depth including tkh, filtered by current zoom state"/>
-            <facet name="sinfo_facet_flow_depth_with_tkh" description="flow depth including tkh"/>
+            <facet name="sinfo_facet_flow_depth_with_tkh.filtered" description="flow depth including tkh, filtered by current zoom state" />
+            <facet name="sinfo_facet_flow_depth_with_tkh" description="flow depth including tkh" />
 
-            <facet name="sinfo_facet_tkh" description="Facet for tkh"/>
+            <facet name="sinfo_facet_tkh" description="Facet for tkh" />
 
-            <facet name="longitudinal_section.annotations" description="facet.longitudinal_section.annotations"/>
+            <facet name="longitudinal_section.annotations" description="facet.longitudinal_section.annotations" />
           </facets>
         </outputmode>
 
         <outputmode name="sinfo_flowdepth_export" description="output.sinfo_flowdepth_export" mime-type="text/plain" type="export">
           <facets>
-            <facet name="csv" description="facet.sinfo_flowdepth_export.csv"/>
-            <facet name="pdf" description="facet.sinfo_flowdepth_export.pdf"/>
+            <facet name="csv" description="facet.sinfo_flowdepth_export.csv" />
+            <facet name="pdf" description="facet.sinfo_flowdepth_export.pdf" />
           </facets>
         </outputmode>
 
         <outputmode name="sinfo_flowdepth_report" description="output.sinfo_flowdepth_report" mime-type="text/xml" type="report">
           <facets>
-            <facet name="report" description="facet.sinfo_flowdepth_report"/>
+            <facet name="report" description="facet.sinfo_flowdepth_report" />
           </facets>
         </outputmode>
       </outputmodes>
@@ -88,50 +89,50 @@
 
     <!-- Calculation Mode: Minimale/maximale Fließtiefe -->
     <transition transition="org.dive4elements.river.artifacts.transitions.ValueCompareTransition">
-      <from state="state.sinfo.calculation_mode"/>
-      <to state="state.sinfo.distance_only"/>
-      <condition data="calculation_mode" value="sinfo_calc_flow_depth_minmax" operator="equal"/>
+      <from state="state.sinfo.calculation_mode" />
+      <to state="state.sinfo.distance_only" />
+      <condition data="calculation_mode" value="sinfo_calc_flow_depth_minmax" operator="equal" />
     </transition>
 
     <transition transition="org.dive4elements.river.artifacts.transitions.ValueCompareTransition">
-      <from state="state.sinfo.distance_only"/>
-      <to state="state.sinfo.waterlevel_soundings_minmax_select"/>
-      <condition data="calculation_mode" value="sinfo_calc_flow_depth_minmax" operator="equal"/>
+      <from state="state.sinfo.distance_only" />
+      <to state="state.sinfo.waterlevel_soundings_minmax_select" />
+      <condition data="calculation_mode" value="sinfo_calc_flow_depth_minmax" operator="equal" />
     </transition>
 
     <state id="state.sinfo.waterlevel_soundings_minmax_select" description="state.sinfo.waterlevel_soundings_minmax_select" state="org.dive4elements.river.artifacts.sinfo.flowdepthminmax.FlowDepthMinMaxPairSelectState" helpText="help.state.sinfo.waterlevel_soundings_minmax_select">
-      <data name="diffids" type="String"/>
+      <data name="diffids" type="String" />
     </state>
 
     <transition transition="org.dive4elements.river.artifacts.transitions.ValueCompareTransition">
-      <from state="state.sinfo.waterlevel_soundings_minmax_select"/>
-      <to state="state.sinfo.flow_depth_minmax"/>
-      <condition data="calculation_mode" value="sinfo_calc_flow_depth_minmax" operator="equal"/>
+      <from state="state.sinfo.waterlevel_soundings_minmax_select" />
+      <to state="state.sinfo.flow_depth_minmax" />
+      <condition data="calculation_mode" value="sinfo_calc_flow_depth_minmax" operator="equal" />
     </transition>
 
     <state id="state.sinfo.flow_depth_minmax" description="state.sinfo.flow_depth_minmax" state="org.dive4elements.river.artifacts.sinfo.flowdepthminmax.FlowDepthMinMaxState" helpText="help.state.sinfo.flow_depth_minmax">
       <outputmodes>
         <outputmode name="sinfo_flow_depth_minmax" description="output.flow_depth" mime-type="image/png" type="chart">
           <facets>
-            <facet name="sinfo_facet_flow_depth_min.filtered" description="min flow depth"/>
-            <facet name="sinfo_facet_flow_depth_min" description="min flow depth"/>
-            <facet name="sinfo_facet_flow_depth_max.filtered" description="max flow depth"/>
-            <facet name="sinfo_facet_flow_depth_max" description="max flow depth"/>
+            <facet name="sinfo_facet_flow_depth_min.filtered" description="min flow depth" />
+            <facet name="sinfo_facet_flow_depth_min" description="min flow depth" />
+            <facet name="sinfo_facet_flow_depth_max.filtered" description="max flow depth" />
+            <facet name="sinfo_facet_flow_depth_max" description="max flow depth" />
 
-            <facet name="longitudinal_section.annotations" description="facet.longitudinal_section.annotations"/>
+            <facet name="longitudinal_section.annotations" description="facet.longitudinal_section.annotations" />
           </facets>
         </outputmode>
 
         <outputmode name="sinfo_flowdepthminmax_export" description="output.sinfo_flowdepthminmax_export" mime-type="text/plain" type="export">
           <facets>
-            <facet name="csv" description="facet.sinfo_flowdepthminmax_export.csv"/>
-            <facet name="pdf" description="facet.sinfo_flowdepthminmax_export.pdf"/>
+            <facet name="csv" description="facet.sinfo_flowdepthminmax_export.csv" />
+            <facet name="pdf" description="facet.sinfo_flowdepthminmax_export.pdf" />
           </facets>
         </outputmode>
 
         <outputmode name="sinfo_flowdepth_report" description="output.sinfo_flowdepth_report" mime-type="text/xml" type="report">
           <facets>
-            <facet name="report" description="facet.sinfo_flowdepth_report"/>
+            <facet name="report" description="facet.sinfo_flowdepth_report" />
           </facets>
         </outputmode>
       </outputmodes>
@@ -139,75 +140,75 @@
 
     <!-- Calculation Mode: Fließtiefenentwicklung -->
     <transition transition="org.dive4elements.river.artifacts.transitions.ValueCompareTransition">
-      <from state="state.sinfo.calculation_mode"/>
-      <to state="state.sinfo.distance_only"/>
-      <condition data="calculation_mode" value="sinfo_calc_flow_depth_development" operator="equal"/>
+      <from state="state.sinfo.calculation_mode" />
+      <to state="state.sinfo.distance_only" />
+      <condition data="calculation_mode" value="sinfo_calc_flow_depth_development" operator="equal" />
     </transition>
 
     <transition transition="org.dive4elements.river.artifacts.transitions.ValueCompareTransition">
-      <from state="state.sinfo.distance_only"/>
-      <to state="state.sinfo.flowdepthdevlopment_current_select"/>
-      <condition data="calculation_mode" value="sinfo_calc_flow_depth_development" operator="equal"/>
+      <from state="state.sinfo.distance_only" />
+      <to state="state.sinfo.flowdepthdevlopment_current_select" />
+      <condition data="calculation_mode" value="sinfo_calc_flow_depth_development" operator="equal" />
     </transition>
 
     <state id="state.sinfo.flowdepthdevlopment_current_select" description="state.sinfo.flowdepthdevlopment_current_select" state="org.dive4elements.river.artifacts.sinfo.flowdepthdev.WaterlevelSoundingCurrentPairSelectState" helpText="help.state.sinfo.flowdepthdevlopment_current_select">
-      <data name="diffid_current" type="String"/>
+      <data name="diffid_current" type="String" />
     </state>
 
     <transition transition="org.dive4elements.river.artifacts.transitions.ValueCompareTransition">
-      <from state="state.sinfo.flowdepthdevlopment_current_select"/>
-      <to state="state.sinfo.flowdepthdevlopment_historical_select"/>
-      <condition data="calculation_mode" value="sinfo_calc_flow_depth_development" operator="equal"/>
+      <from state="state.sinfo.flowdepthdevlopment_current_select" />
+      <to state="state.sinfo.flowdepthdevlopment_historical_select" />
+      <condition data="calculation_mode" value="sinfo_calc_flow_depth_development" operator="equal" />
     </transition>
 
     <state id="state.sinfo.flowdepthdevlopment_historical_select" description="state.sinfo.flowdepthdevlopment_historical_select" state="org.dive4elements.river.artifacts.sinfo.flowdepthdev.WaterlevelSoundingHistoricalPairSelectState" helpText="help.state.sinfo.flowdepthdevlopment_historical_select">
-      <data name="diffid_historical" type="String"/>
+      <data name="diffid_historical" type="String" />
     </state>
 
     <transition transition="org.dive4elements.river.artifacts.transitions.ValueCompareTransition">
-      <from state="state.sinfo.flowdepthdevlopment_historical_select"/>
-      <to state="state.sinfo.flow_depth_development"/>
-      <condition data="calculation_mode" value="sinfo_calc_flow_depth_development" operator="equal"/>
+      <from state="state.sinfo.flowdepthdevlopment_historical_select" />
+      <to state="state.sinfo.flow_depth_development" />
+      <condition data="calculation_mode" value="sinfo_calc_flow_depth_development" operator="equal" />
     </transition>
 
     <state id="state.sinfo.flow_depth_development" description="state.sinfo.flow_depth_development" state="org.dive4elements.river.artifacts.sinfo.flowdepthdev.FlowDepthDevelopmentState" helpText="help.state.sinfo.flow_depth_development">
       <outputmodes>
         <outputmode name="sinfo_flow_depth_development" description="output.flow_depth_development" mime-type="image/png" type="chart">
           <facets>
-            <facet name="sinfo_facet_flow_depth_development.filtered" description="flow depth development"/>
-            <facet name="sinfo_facet_flow_depth_development" description="flow depth development"/>
-
-            <facet name="sinfo_facet_waterlevel_difference.filtered" description="waterlevel difference"/>
-            <facet name="sinfo_facet_bedheight_difference.filtered" description="bed Height difference"/>
+            <facet name="sinfo_facet_flow_depth_development.filtered" description="flow depth development" />
+            <facet name="sinfo_facet_flow_depth_development" description="flow depth development" />
 
-            <facet name="sinfo_facet_flow_depth_current.filtered" description="flow depth current"/>
-            <facet name="sinfo_facet_flow_depth_current" description="flow depth current"/>
-            <facet name="sinfo_facet_flow_depth_historical.filtered" description="flow depth historical"/>
-            <facet name="sinfo_facet_flow_depth_historical" description="flow depth historical"/>
+            <facet name="sinfo_facet_waterlevel_difference.filtered" description="waterlevel difference" />
+            <facet name="sinfo_facet_bedheight_difference.filtered" description="bed Height difference" />
 
-            <facet name="longitudinal_section.annotations" description="facet.longitudinal_section.annotations"/>
+            <facet name="sinfo_facet_flow_depth_current.filtered" description="flow depth current" />
+            <facet name="sinfo_facet_flow_depth_current" description="flow depth current" />
+            <facet name="sinfo_facet_flow_depth_historical.filtered" description="flow depth historical" />
+            <facet name="sinfo_facet_flow_depth_historical" description="flow depth historical" />
+
+            <facet name="longitudinal_section.annotations" description="facet.longitudinal_section.annotations" />
           </facets>
         </outputmode>
 
         <outputmode name="sinfo_flow_depth_development_peryear" description="output.flow_depth_development_peryear" mime-type="image/png" type="chart">
           <facets>
-            <facet name="sinfo_facet_flow_depth_development_per_year.filtered" description="flow depth development per year"/>
-            <facet name="sinfo_facet_flow_depth_development_per_year" description="flow depth development per year"/>
+            <facet name="sinfo_facet_flow_depth_development_per_year.filtered" description="flow depth development per year" />
+            <facet name="sinfo_facet_flow_depth_development_per_year" description="flow depth development per year" />
 
-            <facet name="longitudinal_section.annotations" description="facet.longitudinal_section.annotations"/>
+            <facet name="longitudinal_section.annotations" description="facet.longitudinal_section.annotations" />
           </facets>
         </outputmode>
 
         <outputmode name="sinfo_flowdepthdevelopment_export" description="output.sinfo_flowdepthdevelopment_export" mime-type="text/plain" type="export">
           <facets>
-            <facet name="csv" description="facet.sinfo_flowdepthdevelopment_export.csv"/>
-            <facet name="pdf" description="facet.sinfo_flowdepthdevelopment_export.pdf"/>
+            <facet name="csv" description="facet.sinfo_flowdepthdevelopment_export.csv" />
+            <facet name="pdf" description="facet.sinfo_flowdepthdevelopment_export.pdf" />
           </facets>
         </outputmode>
 
         <outputmode name="sinfo_flowdepthdevelopment_report" description="output.sinfo_flowdepthdevelopment_report" mime-type="text/xml" type="report">
           <facets>
-            <facet name="report" description="facet.sinfo_flowdepthdevelopment_report"/>
+            <facet name="report" description="facet.sinfo_flowdepthdevelopment_report" />
           </facets>
         </outputmode>
       </outputmodes>
@@ -217,224 +218,256 @@
 
 
     <!-- Calculation Mode: Grundberührungen -->
-    
+
     <transition transition="org.dive4elements.river.artifacts.transitions.ValueCompareTransition">
-      <from state="state.sinfo.calculation_mode"/>
-      <to state="state.sinfo.distance_only"/>
-      <condition data="calculation_mode" value="sinfo_calc_collision" operator="equal"/>
-    </transition>
-    
-    <transition transition="org.dive4elements.river.artifacts.transitions.ValueCompareTransition">
-      <from state="state.sinfo.distance_only"/>
-      <to state="state.sinfo.year"/>
-      <condition data="calculation_mode" value="sinfo_calc_collision" operator="equal"/>
+      <from state="state.sinfo.calculation_mode" />
+      <to state="state.sinfo.distance_only" />
+      <condition data="calculation_mode" value="sinfo_calc_collision" operator="equal" />
     </transition>
-    
-    <state id="state.sinfo.year" description="state.sinfo.year" state="org.dive4elements.river.artifacts.sinfo.collision.YearChoice" helpText="help.state.sinfo.year">
-      <data name="year" type="Boolean"/>
+
+    <transition transition="org.dive4elements.river.artifacts.transitions.ValueCompareTransition">
+      <from state="state.sinfo.distance_only" />
+      <to state="state.sinfo.year_epoch" />
+      <condition data="calculation_mode" value="sinfo_calc_collision" operator="equal" />
+    </transition>
+
+    <state id="state.sinfo.year_epoch" description="state.sinfo.year_epoch" state="org.dive4elements.river.artifacts.sinfo.collision.YearChoice" helpText="help.state.sinfo.year">
+      <data name="ye_select" type="String" />
     </state>
-    
-	
-    
+
+
     <transition transition="org.dive4elements.river.artifacts.transitions.ValueCompareTransition">
-      <from state="state.sinfo.year"/>
-      <to state="state.sinfo.collision"/>
-      <condition data="calculation_mode" value="sinfo_calc_collision" operator="equal"/>
+      <from state="state.sinfo.year_epoch" />
+      <to state="state.sinfo.load.year" />
+      <condition data="ye_select" value="state.sinfo.year" operator="equal" />
     </transition>
-    
+
+    <transition transition="org.dive4elements.river.artifacts.transitions.ValueCompareTransition">
+      <from state="state.sinfo.year_epoch" />
+      <to state="state.sinfo.load.epoch" />
+      <condition data="ye_select" value="state.sinfo.epoch" operator="equal" />
+    </transition>
+
+
+
+    <state id="state.sinfo.load.year" description="state.sinfo.load.year" state="org.dive4elements.river.artifacts.sinfo.collision.LoadYearSelect" helpText="help.state.sinfo.load.year">
+      <data name="years" type="String" />
+    </state>
+
+    <state id="state.sinfo.load.epoch" description="state.sinfo.load.epoch" state="org.dive4elements.river.artifacts.states.minfo.SedimentLoadEpochSelect" helpText="help.state.sinfo.load.epoch">
+      <data name="epochs" type="String" />
+    </state>
+
+
+    <transition transition="org.dive4elements.river.artifacts.transitions.ValueCompareTransition">
+      <from state="state.sinfo.load.year" />
+      <to state="state.sinfo.collision" />
+      <condition data="calculation_mode" value="sinfo_calc_collision" operator="equal" />
+    </transition>
+
+    <transition transition="org.dive4elements.river.artifacts.transitions.ValueCompareTransition">
+      <from state="state.sinfo.load.epoch" />
+      <to state="state.sinfo.collision" />
+      <condition data="calculation_mode" value="sinfo_calc_collision" operator="equal" />
+    </transition>
+
+
     <state id="state.sinfo.collision" description="state.sinfo.collision" state="org.dive4elements.river.artifacts.sinfo.collision.CollisionState" helpText="help.state.sinfo.collision">
       <outputmodes>
         <outputmode name="collision" description="output.collision" mime-type="image/png" type="chart">
           <facets>
-            <!-- REMARK: id's that ends with 'filtered' are handled differently ' -->
-            <facet name="sinfo_facet_flow_depth.filtered" description="flow depth, filtered by current zoom state"/>
-            <facet name="sinfo_facet_flow_depth" description="flow depth"/>
+            <!-- REMARK: id's that ends with 'filtered' are handled differently
+              ' -->
+            <facet name="sinfo_facet_flow_depth.filtered" description="flow depth, filtered by current zoom state" />
+            <facet name="sinfo_facet_flow_depth" description="flow depth" />
 
-            <facet name="sinfo_facet_flow_depth_with_tkh.filtered" description="flow depth including tkh, filtered by current zoom state"/>
-            <facet name="sinfo_facet_flow_depth_with_tkh" description="flow depth including tkh"/>
+            <facet name="sinfo_facet_flow_depth_with_tkh.filtered" description="flow depth including tkh, filtered by current zoom state" />
+            <facet name="sinfo_facet_flow_depth_with_tkh" description="flow depth including tkh" />
 
-            <facet name="sinfo_facet_tkh" description="Facet for tkh"/>
+            <facet name="sinfo_facet_tkh" description="Facet for tkh" />
 
-            <facet name="longitudinal_section.annotations" description="facet.longitudinal_section.annotations"/>
+            <facet name="longitudinal_section.annotations" description="facet.longitudinal_section.annotations" />
           </facets>
         </outputmode>
 
         <outputmode name="sinfo_flowdepth_export" description="output.sinfo_flowdepth_export" mime-type="text/plain" type="export">
           <facets>
-            <facet name="csv" description="facet.sinfo_flowdepth_export.csv"/>
-            <facet name="pdf" description="facet.sinfo_flowdepth_export.pdf"/>
+            <facet name="csv" description="facet.sinfo_flowdepth_export.csv" />
+            <facet name="pdf" description="facet.sinfo_flowdepth_export.pdf" />
           </facets>
         </outputmode>
 
         <outputmode name="sinfo_flowdepth_report" description="output.sinfo_flowdepth_report" mime-type="text/xml" type="report">
           <facets>
-            <facet name="report" description="facet.sinfo_flowdepth_report"/>
+            <facet name="report" description="facet.sinfo_flowdepth_report" />
           </facets>
         </outputmode>
       </outputmodes>
     </state>
 
-    
 
 
-   <!-- Calculation Mode: Überflutungsdauern Infrastrukturen BWaStr -->
-   <!-- Schrittweite benötigt für wq-state -->
-     <transition transition="org.dive4elements.river.artifacts.transitions.ValueCompareTransition">
-      <from state="state.sinfo.calculation_mode"/>
-      <to state="state.sinfo.distance"/>
-      <condition data="calculation_mode" value="sinfo_calc_flood_duration" operator="equal"/>
+
+    <!-- Calculation Mode: Überflutungsdauern Infrastrukturen BWaStr -->
+    <!-- Schrittweite benötigt für wq-state -->
+    <transition transition="org.dive4elements.river.artifacts.transitions.ValueCompareTransition">
+      <from state="state.sinfo.calculation_mode" />
+      <to state="state.sinfo.distance" />
+      <condition data="calculation_mode" value="sinfo_calc_flood_duration" operator="equal" />
     </transition>
-    
-     <transition transition="org.dive4elements.river.artifacts.transitions.ValueCompareTransition">
-      <from state="state.sinfo.distance"/> 
-      <to state="state.sinfo.riverside"/>
-      <condition data="calculation_mode" value="sinfo_calc_flood_duration" operator="equal"/>
+
+    <transition transition="org.dive4elements.river.artifacts.transitions.ValueCompareTransition">
+      <from state="state.sinfo.distance" />
+      <to state="state.sinfo.riverside" />
+      <condition data="calculation_mode" value="sinfo_calc_flood_duration" operator="equal" />
     </transition>
-    
+
     <state id="state.sinfo.riverside" description="state.sinfo.riverside" state="org.dive4elements.river.artifacts.sinfo.flood_duration.RiversideRadioChoice" helpText="help.state.sinfo.riverside">
-      <data name="riverside" type="String"/>
-    </state>
-    
-    <state id="state.sinfo.wspl" description="state.sinfo.wspl" state="org.dive4elements.river.artifacts.sinfo.flood_duration.WsplChoice" helpText="help.state.sinfo.wspl">
-      <data name="wspl" type="Boolean"/>
+      <data name="riverside" type="String" />
     </state>
-    
-	<transition transition="org.dive4elements.river.artifacts.transitions.ValueCompareTransition">
-      <from state="state.sinfo.riverside"/>
-      <to state="state.sinfo.wspl"/>
-      <condition data="calculation_mode" value="sinfo_calc_flood_duration" operator="equal"/>
-    </transition>
-     
-     
-	<transition transition="org.dive4elements.river.artifacts.transitions.ValueCompareTransition">
-      <from state="state.sinfo.wspl"/>
-      <to state="state.sinfo.wq"/>
-      <condition data="wspl" value="true" operator="equal"/>   
+
+    <state id="state.sinfo.wspl" description="state.sinfo.wspl" state="org.dive4elements.river.artifacts.sinfo.flood_duration.WsplChoice" helpText="help.state.sinfo.wspl">
+      <data name="wspl" type="Boolean" />
+    </state>
+
+    <transition transition="org.dive4elements.river.artifacts.transitions.ValueCompareTransition">
+      <from state="state.sinfo.riverside" />
+      <to state="state.sinfo.wspl" />
+      <condition data="calculation_mode" value="sinfo_calc_flood_duration" operator="equal" />
     </transition>
-    
+
+
     <transition transition="org.dive4elements.river.artifacts.transitions.ValueCompareTransition">
-      <from state="state.sinfo.wspl"/>
-      <to state="state.sinfo.flood_duration"/>
-      <condition data="wspl" value="false" operator="equal"/>   
+      <from state="state.sinfo.wspl" />
+      <to state="state.sinfo.wq" />
+      <condition data="wspl" value="true" operator="equal" />
     </transition>
-    
+
     <transition transition="org.dive4elements.river.artifacts.transitions.ValueCompareTransition">
-      <from state="state.sinfo.wq"/>
-      <to state="state.sinfo.flood_duration"/>
-      <condition data="calculation_mode" value="sinfo_calc_flood_duration" operator="equal"/>
+      <from state="state.sinfo.wspl" />
+      <to state="state.sinfo.flood_duration" />
+      <condition data="wspl" value="false" operator="equal" />
     </transition>
-     
-    
-    
+
+    <transition transition="org.dive4elements.river.artifacts.transitions.ValueCompareTransition">
+      <from state="state.sinfo.wq" />
+      <to state="state.sinfo.flood_duration" />
+      <condition data="calculation_mode" value="sinfo_calc_flood_duration" operator="equal" />
+    </transition>
+
+
+
     <state id="state.sinfo.flood_duration" description="state.sinfo.flood_duration" state="org.dive4elements.river.artifacts.sinfo.flood_duration.FloodDurationState" helpText="help.state.sinfo.flood_duration">
       <outputmodes>
         <outputmode name="flood" description="output.flood" mime-type="image/png" type="chart">
           <facets>
-            <!-- REMARK: id's that ends with 'filtered' are handled differently ' -->
-            <facet name="sinfo_facet_flow_depth.filtered" description="flow depth, filtered by current zoom state"/>
-            <facet name="sinfo_facet_flow_depth" description="flow depth"/>
+            <!-- REMARK: id's that ends with 'filtered' are handled differently
+              ' -->
+            <facet name="sinfo_facet_flow_depth.filtered" description="flow depth, filtered by current zoom state" />
+            <facet name="sinfo_facet_flow_depth" description="flow depth" />
 
-            <facet name="sinfo_facet_flow_depth_with_tkh.filtered" description="flow depth including tkh, filtered by current zoom state"/>
-            <facet name="sinfo_facet_flow_depth_with_tkh" description="flow depth including tkh"/>
+            <facet name="sinfo_facet_flow_depth_with_tkh.filtered" description="flow depth including tkh, filtered by current zoom state" />
+            <facet name="sinfo_facet_flow_depth_with_tkh" description="flow depth including tkh" />
 
-            <facet name="sinfo_facet_tkh" description="Facet for tkh"/>
+            <facet name="sinfo_facet_tkh" description="Facet for tkh" />
 
-            <facet name="longitudinal_section.annotations" description="facet.longitudinal_section.annotations"/>
+            <facet name="longitudinal_section.annotations" description="facet.longitudinal_section.annotations" />
           </facets>
         </outputmode>
 
         <outputmode name="sinfo_flowdepth_export" description="output.sinfo_flowdepth_export" mime-type="text/plain" type="export">
           <facets>
-            <facet name="csv" description="facet.sinfo_flowdepth_export.csv"/>
-            <facet name="pdf" description="facet.sinfo_flowdepth_export.pdf"/>
+            <facet name="csv" description="facet.sinfo_flowdepth_export.csv" />
+            <facet name="pdf" description="facet.sinfo_flowdepth_export.pdf" />
           </facets>
         </outputmode>
 
         <outputmode name="sinfo_flowdepth_report" description="output.sinfo_flowdepth_report" mime-type="text/xml" type="report">
           <facets>
-            <facet name="report" description="facet.sinfo_flowdepth_report"/>
+            <facet name="report" description="facet.sinfo_flowdepth_report" />
           </facets>
         </outputmode>
       </outputmodes>
     </state>
-    
-    
-    
-    
-    
-    
-    
-    
-
-    <!-- Calculation Mode: Transportkörperhöhen -->
-    <transition transition="org.dive4elements.river.artifacts.transitions.ValueCompareTransition">
-      <from state="state.sinfo.calculation_mode"/>
-      <to state="state.sinfo.distance"/>
-      <condition data="calculation_mode" value="sinfo_calc_transport_bodies_heights" operator="equal"/>
-    </transition>
-
-    <state id="state.sinfo.distance" description="state.sinfo.distance" state="org.dive4elements.river.artifacts.states.DistanceSelect" helpText="help.state.sinfo.distance">
-      <data name="ld_from" type="Double"/>
-      <data name="ld_to" type="Double"/>
-      <data name="ld_step" type="Double"/>
-    </state>
 
 
 
-  
+
+
+
+
+
+
+    <!-- Calculation Mode: Transportkörperhöhen -->
     <transition transition="org.dive4elements.river.artifacts.transitions.ValueCompareTransition">
-      <from state="state.sinfo.distance"/>
-      <to state="state.sinfo.wq"/>
-      <condition data="calculation_mode" value="sinfo_calc_transport_bodies_heights" operator="equal"/>
+      <from state="state.sinfo.calculation_mode" />
+      <to state="state.sinfo.distance" />
+      <condition data="calculation_mode" value="sinfo_calc_transport_bodies_heights" operator="equal" />
+    </transition>
+
+    <state id="state.sinfo.distance" description="state.sinfo.distance" state="org.dive4elements.river.artifacts.states.DistanceSelect" helpText="help.state.sinfo.distance">
+      <data name="ld_from" type="Double" />
+      <data name="ld_to" type="Double" />
+      <data name="ld_step" type="Double" />
+    </state>
+
+
+
+
+    <transition transition="org.dive4elements.river.artifacts.transitions.ValueCompareTransition">
+      <from state="state.sinfo.distance" />
+      <to state="state.sinfo.wq" />
+      <condition data="calculation_mode" value="sinfo_calc_transport_bodies_heights" operator="equal" />
     </transition>
 
     <state id="state.sinfo.wq" description="state.sinfo.wq" state="org.dive4elements.river.artifacts.states.WQSelect" helpText="help.state.sinfo.wq">
-      <data name="wq_isq" type="Boolean"/>
-      <data name="wq_isfree" type="Boolean"/>
-      <data name="wq_isrange" type="Boolean"/>
-      <data name="wq_from" type="Double"/>
-      <data name="wq_to" type="Double"/>
-      <data name="wq_step" type="Double"/>
-      <data name="wq_single" type="Double[]"/>
+      <data name="wq_isq" type="Boolean" />
+      <data name="wq_isfree" type="Boolean" />
+      <data name="wq_isrange" type="Boolean" />
+      <data name="wq_from" type="Double" />
+      <data name="wq_to" type="Double" />
+      <data name="wq_step" type="Double" />
+      <data name="wq_single" type="Double[]" />
     </state>
-    
+
     <transition transition="org.dive4elements.river.artifacts.transitions.ValueCompareTransition">
-      <from state="state.sinfo.wq"/>
-      <to state="state.sinfo.transport_bodies_heights"/>
-      <condition data="calculation_mode" value="sinfo_calc_transport_bodies_heights" operator="equal"/>
+      <from state="state.sinfo.wq" />
+      <to state="state.sinfo.transport_bodies_heights" />
+      <condition data="calculation_mode" value="sinfo_calc_transport_bodies_heights" operator="equal" />
     </transition>
-    
+
     <state id="state.sinfo.transport_bodies_heights" description="state.sinfo.transport_bodies_heights" state="org.dive4elements.river.artifacts.sinfo.tkhstate.TkhState" helpText="help.state.sinfo.transport_bodies_heights">
       <outputmodes>
         <outputmode name="sinfo_tkk" description="output.tkk" mime-type="image/png" type="chart">
           <facets>
-            <!-- REMARK: id's that ends with 'filtered' are handled differently ' -->
+            <!-- REMARK: id's that ends with 'filtered' are handled differently
+              ' -->
             <!-- FIXME: should be filtered according to spec -->
-            <facet name="sinfo_facet_tkh" description="Facet for tkh"/>
-
-            <facet name="longitudinal_section.annotations" description="facet.longitudinal_section.annotations"/>
+            <facet name="sinfo_facet_tkh" description="Facet for tkh" />
 
-            <facet name="sinfo_facet_flow_depth.filtered" description="mean flow depth"/>
-            <facet name="sinfo_facet_flow_depth" description="mean flow depth"/>
-            
-            <facet name="sinfo_facet_velocity" description="Velocity"/>
-            <facet name="sinfo_facet_d50" description="D50"/>
-            <facet name="sinfo_facet_tau" description="Tau"/>
+            <facet name="longitudinal_section.annotations" description="facet.longitudinal_section.annotations" />
+
+            <facet name="sinfo_facet_flow_depth.filtered" description="mean flow depth" />
+            <facet name="sinfo_facet_flow_depth" description="mean flow depth" />
+
+            <facet name="sinfo_facet_velocity" description="Velocity" />
+            <facet name="sinfo_facet_d50" description="D50" />
+            <facet name="sinfo_facet_tau" description="Tau" />
           </facets>
         </outputmode>
-      
+
         <outputmode name="sinfo_tkh_export" description="output.sinfo_tkh_export" mime-type="text/plain" type="export">
           <facets>
-            <facet name="csv" description="facet.sinfo_tkh_export.csv"/>
-            <facet name="pdf" description="facet.sinfo_tkh_export.pdf"/>
+            <facet name="csv" description="facet.sinfo_tkh_export.csv" />
+            <facet name="pdf" description="facet.sinfo_tkh_export.pdf" />
           </facets>
         </outputmode>
 
         <outputmode name="sinfo_tkh_report" description="output.sinfo_flowdepth_report" mime-type="text/xml" type="report">
           <facets>
-            <facet name="report" description="facet.sinfo_tkh_report"/>
+            <facet name="report" description="facet.sinfo_tkh_report" />
           </facets>
-        </outputmode>      
+        </outputmode>
       </outputmodes>
     </state>
   </states>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/collision/CollisionLoadYearEpochAccess.java	Fri May 04 16:13:10 2018 +0200
@@ -0,0 +1,34 @@
+/** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
+ * Software engineering by
+ *  Björnsen Beratende Ingenieure GmbH
+ *  Dr. Schumacher Ingenieurbüro für Wasser und Umwelt
+ *
+ * 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.sinfo.collision;
+
+import org.dive4elements.river.artifacts.D4EArtifact;
+import org.dive4elements.river.artifacts.access.RangeAccess;
+
+/**
+ * @author Domenico Nardi Tironi
+ *
+ */
+public class CollisionLoadYearEpochAccess extends RangeAccess {
+
+    private int[][] epochs;
+
+    private int[] years;
+
+    public CollisionLoadYearEpochAccess(final D4EArtifact artifact) {
+        // TODO Auto-generated constructor stub
+    }
+
+    public int[] getYears() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/collision/LoadYearSelect.java	Fri May 04 16:13:10 2018 +0200
@@ -0,0 +1,46 @@
+/* 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.sinfo.collision;
+
+import org.apache.log4j.Logger;
+import org.dive4elements.artifacts.Artifact;
+import org.dive4elements.river.artifacts.D4EArtifact;
+import org.dive4elements.river.artifacts.states.DefaultState;
+
+/** State in which to fetch years for sedminent load calculation. */
+public class LoadYearSelect extends DefaultState {
+    private static final long serialVersionUID = 1L;
+    /** The log used in this class. */
+    private static Logger log = Logger.getLogger(LoadYearSelect.class);
+
+    /**
+     * The default constructor that initializes an empty State object.
+     */
+    public LoadYearSelect() {
+    }
+
+    /** Year Select Widget. */
+    @Override
+    protected String getUIProvider() {
+        return "minfo.sedimentload_year_select";
+    }
+
+    @Override
+    public boolean validate(final Artifact artifact) throws IllegalArgumentException {
+        final CollisionLoadYearEpochAccess access = new CollisionLoadYearEpochAccess((D4EArtifact) artifact);
+
+        // Second year should be later than first.
+        if (access.getYears() == null || access.getYears().length == 0)
+            return true; // TODO: richtig in CollisionLoadYear... implementieren
+        // throw new IllegalArgumentException("error_years_wrong");
+
+        return true;
+    }
+}
+// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/collision/YearChoice.java	Fri May 04 14:05:21 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/collision/YearChoice.java	Fri May 04 16:13:10 2018 +0200
@@ -8,16 +8,27 @@
 
 package org.dive4elements.river.artifacts.sinfo.collision;
 
-import org.dive4elements.river.artifacts.states.BooleanChoiceState;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.dive4elements.river.artifacts.states.RadioSelect;
 
 /**
  * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
  */
-public class YearChoice extends BooleanChoiceState {
-
+public class YearChoice extends RadioSelect {
     private static final long serialVersionUID = 1L;
 
     public YearChoice() {
-        super("option", "active", "inactive"); // TODO: RADIO-Btn-Impl
+        super();
+    }
+
+    @Override
+    protected List<String> makeEntries() {
+        final List<String> entries = new ArrayList<>();
+        entries.add("state.sinfo.year");
+        entries.add("state.sinfo.epoch");
+        return entries;
+
     }
 }
\ No newline at end of file
--- a/artifacts/src/main/resources/messages.properties	Fri May 04 14:05:21 2018 +0200
+++ b/artifacts/src/main/resources/messages.properties	Fri May 04 16:13:10 2018 +0200
@@ -75,6 +75,13 @@
 state.minfo.t_per_a = t/a
 state.minfo.m3_per_a = m\u00b3/a
 
+state.sinfo.year_epoch = Year/Epoch
+state.sinfo.year=Year
+state.sinfo.epoch=Epoch
+state.sinfo.riverside.left = Linkes Ufer
+state.sinfo.riverside.right = Rechtes Ufer
+state.sinfo.riverside.both = Beide Ufer
+
 year=Year
 epoch=Epoch
 off_epoch = off. Epochs

http://dive4elements.wald.intevation.org