diff artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/inundationduration/AbstractYearEpochUrlState.java @ 9481:787fc085459b

TSV introduced; uinfo.inundationWMS-Config
author gernotbelger
date Wed, 12 Sep 2018 10:55:09 +0200
parents artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/inundationduration/LoadSingleYearSelectState.java@dace17e26d33
children 6dd539efebb1
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/inundationduration/AbstractYearEpochUrlState.java	Wed Sep 12 10:55:09 2018 +0200
@@ -0,0 +1,96 @@
+/* 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.uinfo.inundationduration;
+
+import java.io.IOException;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.dive4elements.artifactdatabase.data.StateData;
+import org.dive4elements.artifacts.Artifact;
+import org.dive4elements.artifacts.CallContext;
+import org.dive4elements.artifacts.common.utils.XMLUtils;
+import org.dive4elements.artifacts.common.utils.XMLUtils.ElementCreator;
+import org.dive4elements.river.artifacts.sinfo.tkhstate.TsvHelper.TsvReaderException;
+import org.dive4elements.river.artifacts.states.AddTableDataHelper;
+import org.dive4elements.river.artifacts.states.DefaultState;
+import org.dive4elements.river.artifacts.uinfo.UINFOArtifact;
+import org.dive4elements.river.artifacts.uinfo.inundationduration.UedauernConfiguration.YearType;
+import org.dive4elements.river.artifacts.uinfo.salix.ScenarioTypeState;
+import org.w3c.dom.Element;
+
+/** State in which to fetch years for sedminent load calculation. */
+public abstract class AbstractYearEpochUrlState extends DefaultState {
+    private static final long serialVersionUID = 1L;
+    private final YearType type;
+
+    /**
+     * The default constructor that initializes an empty State object.
+     *
+     * @param jahre
+     */
+    public AbstractYearEpochUrlState(final YearType type) {
+        this.type = type;
+    }
+
+    @Override
+    protected void appendItems(final Artifact artifact, final ElementCreator creator, final String name, final CallContext context, final Element select) {
+        final String dataKey = "year_epoch_select";
+        try {
+            if (dataKey.equals(name)) {
+
+                final InundationDurationAccess access = new InundationDurationAccess((UINFOArtifact) artifact);
+                final UedauernConfiguration properties = UedauernConfiguration.getInstance(access.getRiverName(), this.type);
+                final Collection<String> items = properties.getLabels();
+
+                final String columnType = "STRING";
+                final AddTableDataHelper helper = new AddTableDataHelper(creator, select, "select_key", context.getMeta()); // pinKeycolum; nicht zu
+
+                helper.addColumn(0, "pinfrom", "60", "common.client.ui.selection", "ICON", "CENTER", "from");
+                helper.addColumn(1, "select_key", "240", yearOrEpoch(), columnType, "LEFT", null);
+
+                for (final String year : items) {
+                    final Map<String, String> row = new HashMap<>();
+                    row.put("select_key", year);
+                    helper.addRow(row);
+
+                }
+                helper.submitMapToXml();
+            }
+        }
+        catch (final IllegalArgumentException iae) {
+            iae.printStackTrace();
+        }
+        catch (final IOException e) {
+            e.printStackTrace();
+        }
+        catch (final TsvReaderException e) {
+            e.printStackTrace();
+        }
+    }
+
+    private String yearOrEpoch() {
+        switch (this.type) {
+        case jahre:
+            return "year";
+
+        case mittel:
+            return "state.uinfo.epoch";
+
+        default:
+            throw new IllegalStateException();
+        }
+    }
+
+    @Override
+    protected Element createData(final XMLUtils.ElementCreator cr, final Artifact artifact, final StateData data, final CallContext context) {
+        return ScenarioTypeState.changeHeaderForCurrentState(yearOrEpoch(), data.getName(), cr, context);
+    }
+}
\ No newline at end of file

http://dive4elements.wald.intevation.org