Mercurial > dive4elements > river
view artifacts/src/main/java/org/dive4elements/river/artifacts/states/AddTableDataHelper.java @ 9074:766890addcb2
state To client communication;
author | gernotbelger |
---|---|
date | Fri, 18 May 2018 17:26:26 +0200 |
parents | |
children | 2b13de1b0897 |
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) throws Exception { 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 { throw new Exception("Error: No such column " + entry.getKey()); } } 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); } }