Mercurial > dive4elements > river
view artifacts/src/main/java/org/dive4elements/river/artifacts/states/AddTableDataHelper.java @ 9648:c5a496bf1b0b
Fixed: Duplizieren einer Fixierungsanalyse schlägt fehl.
author | Gernot Belger <g.belger@bjoernsen.de> |
---|---|
date | Wed, 04 Dec 2019 16:10:28 +0100 |
parents | 2b13de1b0897 |
children |
line wrap: on
line source
/** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde * Software engineering by * Björnsen Beratende Ingenieure GmbH * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt * * 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.states; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; import org.dive4elements.artifacts.CallMeta; import org.dive4elements.artifacts.common.utils.XMLUtils.ElementCreator; import org.dive4elements.river.artifacts.resources.Resources; import org.w3c.dom.Element; /** * @author Domenico Nardi Tironi * */ public class AddTableDataHelper { private final ElementCreator creator; private final Element select; private final CallMeta callmeta; // Create Metadata: final Map<String, Map<String, String>> meta = new HashMap<>(); final List<String> columnValidList = new ArrayList<>(); public AddTableDataHelper(final ElementCreator creator, final Element select, final String pinKeyColumn, final CallMeta callMeta) { this.creator = creator; this.select = select; this.callmeta = callMeta; creator.addAttr(select, "type", "multiattribute", true); final Map<String, String> metaTableInfo = new HashMap<>(); metaTableInfo.put("keycol", pinKeyColumn); this.meta.put("meta_tableinfo", metaTableInfo); } public void submitMapToXml() { final Element meta = this.creator.create("meta"); for (final Entry<String, Map<String, String>> entry : this.meta.entrySet()) { final String name = entry.getKey(); // z.B. Spaltenname final Map<String, String> keyValueMap = entry.getValue(); final Element element = this.creator.create(name); for (final Entry<String, String> kventry : keyValueMap.entrySet()) { this.creator.addAttr(element, kventry.getKey(), kventry.getValue()); } meta.appendChild(element); } this.select.appendChild(meta); } public void addRow(final Map<String, String> colValMap) { final Element item = this.creator.create("item"); for (final Entry<String, String> entry : colValMap.entrySet()) { if (this.meta.containsKey(entry.getKey())) { this.creator.addAttr(item, entry.getKey(), entry.getValue() != null ? entry.getValue().toString() : ""); } else { try { throw new Exception("Error: No such column " + entry.getKey()); } catch (final Exception e) { e.printStackTrace(); } } } this.select.appendChild(item); } public void addColumn(final int order, final String rootHashmapKey, final String colWidth, final String translationKeyFromMessages, final String type, final String alignment, final String pinType) { final Map<String, String> map = new HashMap<>(); map.put("colwidth", colWidth); final String translation = Resources.getMsg(this.callmeta, translationKeyFromMessages); map.put("translation", translation); map.put("type", type); map.put("alignment", alignment); map.put("order", Integer.toString(order)); map.put("pin", pinType); this.meta.put(rootHashmapKey, map); } }