Mercurial > dive4elements > river
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