gernotbelger@9064: /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde gernotbelger@9064: * Software engineering by gernotbelger@9064: * Björnsen Beratende Ingenieure GmbH gernotbelger@9064: * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt gernotbelger@9064: * gernotbelger@9064: * This file is Free Software under the GNU AGPL (>=v3) gernotbelger@9064: * and comes with ABSOLUTELY NO WARRANTY! Check out the gernotbelger@9064: * documentation coming with Dive4Elements River for details. gernotbelger@9064: */ gernotbelger@9064: package org.dive4elements.river.artifacts.uinfo.vegetationzones; gernotbelger@9064: gernotbelger@9118: import org.dive4elements.artifactdatabase.ProtocolUtils; gernotbelger@9069: import org.dive4elements.artifacts.Artifact; gernotbelger@9118: import org.dive4elements.artifacts.CallContext; gernotbelger@9118: import org.dive4elements.artifacts.common.utils.XMLUtils.ElementCreator; gernotbelger@9118: import org.dive4elements.river.artifacts.D4EArtifact; gernotbelger@9064: import org.dive4elements.river.artifacts.states.DefaultState; gernotbelger@9118: import org.w3c.dom.Element; gernotbelger@9064: gernotbelger@9064: /** gernotbelger@9064: * @author Domenico Nardi Tironi gernotbelger@9064: */ gernotbelger@9066: public class VegetationZonesTableEditState extends DefaultState { gernotbelger@9064: gernotbelger@9064: private static final long serialVersionUID = 1L; gernotbelger@9064: gernotbelger@9064: @Override gernotbelger@9064: protected String getUIProvider() { gernotbelger@9066: return "uinfo.vegetationzones.table.edit"; gernotbelger@9064: } gernotbelger@9069: gernotbelger@9069: @Override gernotbelger@9118: protected Element[] createItems(final ElementCreator cr, final Artifact artifact, final String name, final CallContext context) { gernotbelger@9118: final String datakey = "vegzones"; gernotbelger@9118: if (name.equals(datakey)) { gernotbelger@9118: final Element item = ProtocolUtils.createArtNode(cr, "item", null, null); gernotbelger@9118: final Element label = ProtocolUtils.createArtNode(cr, "label", null, null); gernotbelger@9118: final Element value = ProtocolUtils.createArtNode(cr, "value", null, null); gernotbelger@9118: final D4EArtifact flys = (D4EArtifact) artifact; gernotbelger@9118: final String s = flys.getDataAsString(datakey) == null ? VegetationZone.parseListToDataString(VegetationZone.getStandardList()) gernotbelger@9118: : flys.getDataAsString(datakey); gernotbelger@9118: gernotbelger@9118: value.setTextContent(s); gernotbelger@9118: item.appendChild(label); gernotbelger@9118: item.appendChild(value); gernotbelger@9118: return new Element[] { item }; gernotbelger@9118: } gernotbelger@9118: return new Element[] {}; gernotbelger@9118: } gernotbelger@9118: gernotbelger@9118: @Override gernotbelger@9069: public boolean validate(final Artifact artifact) throws IllegalArgumentException { gernotbelger@9069: // TODO: check verstehen gernotbelger@9069: gernotbelger@9069: // final InundationDurationAccess access = new InundationDurationAccess((SINFOArtifact) artifact); gernotbelger@9069: gernotbelger@9069: // Second year should be later than first. gernotbelger@9069: gernotbelger@9069: // if (access.getYears() == null || access.getYears().length == 0) gernotbelger@9069: return true; gernotbelger@9069: // throw new IllegalArgumentException("error_years_wrong"); gernotbelger@9069: gernotbelger@9069: // return true; gernotbelger@9069: } gernotbelger@9118: gernotbelger@9118: /** gernotbelger@9118: * Creats the data element used for the static part of DESCRIBE document. gernotbelger@9118: */ gernotbelger@9118: // @Override gernotbelger@9118: // protected Element createStaticData(final D4EArtifact flys, final ElementCreator creator, final CallContext cc, final gernotbelger@9118: // String name, final String value, gernotbelger@9118: // final String type) { gernotbelger@9118: // final Element dataElement = creator.create("data"); gernotbelger@9118: // creator.addAttr(dataElement, "name", name, true); gernotbelger@9118: // creator.addAttr(dataElement, "type", type, true); gernotbelger@9118: // gernotbelger@9118: // final Element itemElement = creator.create("item"); gernotbelger@9118: // creator.addAttr(itemElement, "value", value, true); gernotbelger@9118: // gernotbelger@9118: // final String[] labels = getLabels(cc, value); gernotbelger@9118: // final Object[] obj = new Object[] { labels[0] }; gernotbelger@9118: // gernotbelger@9118: // // TODO own i18n gernotbelger@9118: // final String attrValue = Resources.getMsg(cc.getMeta(), "wsp.selected.string", "wsp.selected.string", obj); gernotbelger@9118: // // I18N_STATIC_KEY, I18N_STATIC_KEY, obj); gernotbelger@9118: // gernotbelger@9118: // creator.addAttr(itemElement, "label", attrValue, true); gernotbelger@9118: // dataElement.appendChild(itemElement); gernotbelger@9118: // gernotbelger@9118: // return dataElement; gernotbelger@9118: // } gernotbelger@9118: gernotbelger@9064: }