gernotbelger@9050: /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde gernotbelger@9050: * Software engineering by Intevation GmbH gernotbelger@9050: * gernotbelger@9050: * This file is Free Software under the GNU AGPL (>=v3) gernotbelger@9050: * and comes with ABSOLUTELY NO WARRANTY! Check out the gernotbelger@9050: * documentation coming with Dive4Elements River for details. gernotbelger@9050: */ gernotbelger@9050: gernotbelger@9054: package org.dive4elements.river.artifacts.sinfo.flood_duration; gernotbelger@9050: d@9627: import java.util.Collection; gernotbelger@9178: import java.util.LinkedHashMap; gernotbelger@9053: d@9627: import org.dive4elements.artifactdatabase.data.StateData; gernotbelger@9178: import org.dive4elements.artifacts.Artifact; gernotbelger@9178: import org.dive4elements.artifacts.CallMeta; d@9627: import org.dive4elements.river.artifacts.sinfo.SINFOArtifact; gernotbelger@9053: import org.dive4elements.river.artifacts.states.RadioSelect; mschaefer@9176: import org.dive4elements.river.model.Attribute.AttributeKey; gernotbelger@9050: gernotbelger@9050: /** gernotbelger@9050: * @author Ingo Weinzierl gernotbelger@9050: */ gernotbelger@9053: public class RiversideRadioChoice extends RadioSelect { mschaefer@9176: gernotbelger@9050: private static final long serialVersionUID = 1L; gernotbelger@9050: mschaefer@9176: public enum RiversideChoiceKey { mschaefer@9176: NONE("", AttributeKey.NONE), // mschaefer@9176: LEFT("state.sinfo.riverside.left", AttributeKey.LEFT), // mschaefer@9176: RIGHT("state.sinfo.riverside.right", AttributeKey.RIGHT), // mschaefer@9176: BOTH("state.sinfo.riverside.both", AttributeKey.UNKNOWN); mschaefer@9176: mschaefer@9176: private final String key; mschaefer@9176: private final AttributeKey attributeKey; mschaefer@9176: mschaefer@9176: RiversideChoiceKey(final String key, final AttributeKey attributeKey) { mschaefer@9176: this.key = key; mschaefer@9176: this.attributeKey = attributeKey; mschaefer@9176: } mschaefer@9176: mschaefer@9176: public static RiversideChoiceKey fromKey(final String key) { mschaefer@9176: for (final RiversideChoiceKey v : values()) { mschaefer@9176: if (key.equalsIgnoreCase(v.key)) mschaefer@9176: return v; mschaefer@9176: } mschaefer@9176: return NONE; mschaefer@9176: } mschaefer@9176: mschaefer@9176: public String getKey() { mschaefer@9176: return this.key; mschaefer@9176: } mschaefer@9176: mschaefer@9176: public AttributeKey getAttributeKey() { mschaefer@9176: return this.attributeKey; mschaefer@9176: } mschaefer@9176: } mschaefer@9176: gernotbelger@9053: @Override gernotbelger@9178: protected LinkedHashMap makeEntries(final CallMeta meta, final Artifact artifact) { gernotbelger@9178: final LinkedHashMap entries = new LinkedHashMap<>(); gernotbelger@9179: entries.put(RiversideChoiceKey.LEFT.getKey(), null); gernotbelger@9179: entries.put(RiversideChoiceKey.RIGHT.getKey(), null); gernotbelger@9179: entries.put(RiversideChoiceKey.BOTH.getKey(), null); d@9627: d@9627: // remove infrastructures, because the values might be invalid d@9627: if (artifact instanceof SINFOArtifact) d@9627: removeInfrastructures((SINFOArtifact) artifact); d@9627: gernotbelger@9053: return entries; gernotbelger@9053: } gernotbelger@9369: d@9627: private void removeInfrastructures(final SINFOArtifact artifact) { d@9627: final Collection test = artifact.getAllData(); d@9627: d@9627: for (final StateData dataItem : test) { d@9627: d@9627: if (dataItem.getName().equals(FloodInfrastructure.getDatakey())) d@9627: dataItem.setValue(null); d@9627: } d@9627: } d@9627: gernotbelger@9369: @Override gernotbelger@9369: protected String getDatakey() { gernotbelger@9369: return "riverside"; gernotbelger@9369: } gernotbelger@9369: gernotbelger@9369: @Override gernotbelger@9369: protected String getUIProvider() { gernotbelger@9369: gernotbelger@9369: return "riverside_radio_panel"; gernotbelger@9369: } gernotbelger@9050: }