Mercurial > dive4elements > river
view artifacts/src/main/java/org/dive4elements/river/artifacts/bundu/bezugswst/FixationChoice.java @ 9451:fd6621f47a72
Bundu bzws density calculation completed
author | mschaefer |
---|---|
date | Thu, 23 Aug 2018 10:57:40 +0200 |
parents | 1a4d2ce77423 |
children |
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.bundu.bezugswst; import java.util.LinkedHashMap; import org.dive4elements.artifacts.Artifact; import org.dive4elements.artifacts.CallContext; import org.dive4elements.artifacts.CallMeta; import org.dive4elements.artifacts.common.utils.XMLUtils; import org.dive4elements.artifacts.common.utils.XMLUtils.ElementCreator; import org.dive4elements.river.artifacts.D4EArtifact; import org.dive4elements.river.artifacts.states.RadioSelect; import org.dive4elements.river.artifacts.states.fixation.EventSelect; import org.w3c.dom.Element; /** * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> */ public class FixationChoice extends RadioSelect { private static final long serialVersionUID = 1L; @Override protected final String getUIProvider() { return "custom_fixation_radio_panel"; } @Override protected LinkedHashMap<String, String> makeEntries(final CallMeta meta, final Artifact artifact) { final LinkedHashMap<String, String> entries = new LinkedHashMap<>(); entries.put("state.bundu.wst.fix.auto", null); entries.put("state.bundu.wst.fix.manual", null); return entries; } @Override protected Element[] createItems(final XMLUtils.ElementCreator ec, final Artifact artifact, final String name, final CallContext context) { final Element[] elements = super.createItems(ec, artifact, name, context); final BunduAccess access = new BunduAccess((D4EArtifact) artifact); final int[] eventsTemp = access.getEventsTemp(); final StringBuilder builder = new StringBuilder(); if (eventsTemp != null) { for (final int event : eventsTemp) { builder.append(event).append(";"); } } else { builder.append("");// no values } final int year = access.getBezugsJahr(); final String[] values = new String[] { builder.toString(), String.valueOf(year) }; final String[] keys = new String[] { "ignore_events_temp", "ignore_singleyear" }; return appendElements(ec, elements, keys, values); } public static final Element[] appendElements(final ElementCreator ec, final Element[] defaultElements, final String[] keys, final String[] values) { assert (values.length == keys.length); // make bigger array final int defaultLength = defaultElements == null ? 0 : defaultElements.length; final Element[] defaultAndAddedElements = new Element[defaultLength + values.length]; for (int i = 0; i < defaultLength; i++) { defaultAndAddedElements[i] = defaultElements[i]; } // add the new values: for (int j = 0; j < keys.length; j++) { defaultAndAddedElements[defaultLength + j] = createItem(ec, new String[] { keys[j], values[j] }); } return defaultAndAddedElements; } @Override protected Element createStaticData(final D4EArtifact flys, final ElementCreator creator, final CallContext cc, final String name, final String value, final String type) { if (name.equals("events")) { return EventSelect.createStaticDataPublic(flys, creator, cc, name, value, type); } else { return super.createStaticData(flys, creator, cc, name, value, type); } } @Override protected String getDatakey() { return "fix_choice"; } }