Mercurial > dive4elements > river
view 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 source
/* 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); } }