diff artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/inundationduration/InundationDurationCalculation.java @ 9559:ba0561906f81

Uinfo inundation duration workflow (vegetation zones, scenario), wms-config changed
author gernotbelger
date Wed, 24 Oct 2018 18:40:38 +0200
parents 709a73badd48
children
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/inundationduration/InundationDurationCalculation.java	Wed Oct 24 12:00:49 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/inundationduration/InundationDurationCalculation.java	Wed Oct 24 18:40:38 2018 +0200
@@ -16,8 +16,8 @@
 import org.dive4elements.river.artifacts.model.CalculationResult;
 import org.dive4elements.river.artifacts.sinfo.tkhstate.TsvHelper.TsvReaderException;
 import org.dive4elements.river.artifacts.uinfo.UINFOArtifact;
-import org.dive4elements.river.artifacts.uinfo.inundationduration.InundationDurationAccess.WmsClassification;
 import org.dive4elements.river.artifacts.uinfo.inundationduration.InundationDurationCalculationResult.WmsLayer;
+import org.dive4elements.river.artifacts.uinfo.inundationduration.UedauernConfiguration.YearType;
 
 /**
  * @author Domenico Nardi Tironi
@@ -42,27 +42,31 @@
             // final List<VegetationZoneServerClientXChange> zones = VegetationZoneServerClientXChange.parse(zonesRaw);
             // FIXME: instead find out a-uuid of referenced vegetations
             // FIXME:
-            final String vegZoneId = "unknown";
+            // final String vegZoneId = "unknown";
 
             final boolean isUseScenario = indurax.getIsUseScenario();
 
             final InundationDurationCalculationResult result = new InundationDurationCalculationResult();
 
-            final WmsLayer inundationDurationLayer = indurax.createWMSLayer(this.context, "uinfo.export.url.inundationduration.inundationduration",
-                    WmsClassification.asIs, vegZoneId);
-            result.addLayer(inundationDurationLayer);
+            final String selectedItem = indurax.getSelectedLabel();
+            final YearType type = indurax.isUseYear() ? YearType.jahre : YearType.mittel;
+            final UedauernConfiguration config = UedauernConfiguration.getInstance(indurax.getRiverName(), type);
 
-            final WmsLayer vegetationLayer = indurax.createWMSLayer(this.context, "uinfo.export.url.inundationduration.vegetation",
-                    WmsClassification.vegetationZone, vegZoneId);
-            result.addLayer(vegetationLayer);
+            addLayer(indurax, "uinfo.export.url.inundationduration.inundationduration", selectedItem, config.getDefaultWmsConfig(selectedItem), result, true);
+            addLayer(indurax, "uinfo.export.url.inundationduration.vegetation", selectedItem, config.getVegWmsConfig(selectedItem), result, false);
 
             if (isUseScenario) {
-                // TODO: wieder einkommentieren, sobald die URL-Definition für Szenarien geklärt ist (und hoffentlich analog zu "mittel"
-                // und "jahre" funktioniert)
-                // final WmsLayer scenarioInundationDurationLayer = indurax.createScenarioWMSLayer(this.context.getMeta(),
-                // "uinfo.export.url.inundationduration.scenario");
-                // result.addLayer(scenarioInundationDurationLayer);
-                //
+
+                final UedauernConfiguration configSzenario = UedauernConfiguration.getInstance(indurax.getRiverName(), YearType.szenario);
+
+                final String selectedScenario = indurax.getSelectedSzenario();
+
+                addLayer(indurax, "uinfo.export.url.inundationduration.scenario", selectedScenario, configSzenario.getDefaultWmsConfig(selectedScenario),
+                        result, true);
+
+                addLayer(indurax, "uinfo.export.url.inundationduration.vegetation_scenario", selectedScenario, configSzenario.getVegWmsConfig(selectedScenario),
+                        result, false);
+
                 // // TODO: add vegetationzone-values as styles to layer
                 // final WmsLayer scenarioVegetationLayer = indurax.createScenarioWMSLayer(this.context.getMeta(),
                 // "uinfo.export.url.inundationduration.vegetation_scenario");
@@ -77,4 +81,13 @@
             return new CalculationResult(null, problems);
         }
     }
+
+    private void addLayer(final InundationDurationAccess indurax, final String label, final String selectedItem, final UedauernConfiguration.WmsConfig config,
+            final InundationDurationCalculationResult result, final boolean show) throws IOException, TsvReaderException {
+        if (config != null) {
+            final WmsLayer layer = indurax.createWMSLayer(this.context, label, selectedItem, config, show);
+            if (layer != null)
+                result.addLayer(layer);
+        }
+    }
 }
\ No newline at end of file

http://dive4elements.wald.intevation.org