teichmann@5863: /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde teichmann@5863: * Software engineering by Intevation GmbH teichmann@5863: * teichmann@5994: * This file is Free Software under the GNU AGPL (>=v3) teichmann@5863: * and comes with ABSOLUTELY NO WARRANTY! Check out the teichmann@5994: * documentation coming with Dive4Elements River for details. teichmann@5863: */ teichmann@5863: teichmann@5831: package org.dive4elements.river.artifacts.states; rrenkert@5310: tom@9726: import org.apache.logging.log4j.Logger; tom@9726: import org.apache.logging.log4j.LogManager; rrenkert@5310: import org.w3c.dom.Element; rrenkert@5310: teichmann@5831: import org.dive4elements.artifacts.Artifact; teichmann@5831: import org.dive4elements.artifacts.CallContext; teichmann@5831: import org.dive4elements.artifacts.common.utils.XMLUtils.ElementCreator; teichmann@5867: import org.dive4elements.river.artifacts.D4EArtifact; rrenkert@5310: rrenkert@5310: rrenkert@5310: public class HWSDatacageState rrenkert@5310: extends DefaultState rrenkert@5310: { rrenkert@5310: tom@9726: private static final Logger log = LogManager.getLogger(HWSDatacageState.class); rrenkert@5310: rrenkert@5310: @Override rrenkert@5310: protected String getUIProvider() { rrenkert@5310: return "hws_datacage_panel"; rrenkert@5310: } rrenkert@5310: rrenkert@5310: rrenkert@5310: @Override rrenkert@5310: protected Element createStaticData( teichmann@5867: D4EArtifact flys, rrenkert@5310: ElementCreator creator, rrenkert@5310: CallContext cc, rrenkert@5310: String name, rrenkert@5310: String value, rrenkert@5310: String type rrenkert@5310: ) { rrenkert@5310: Element dataElement = creator.create("data"); rrenkert@5310: creator.addAttr(dataElement, "name", name, true); rrenkert@5310: creator.addAttr(dataElement, "type", type, true); rrenkert@5310: rrenkert@5310: Element itemElement = creator.create("item"); rrenkert@5310: creator.addAttr(itemElement, "value", value, true); rrenkert@5310: rrenkert@5310: creator.addAttr(itemElement, "label", getLabel(cc, value), true); rrenkert@5310: dataElement.appendChild(itemElement); rrenkert@5310: rrenkert@5310: return dataElement; rrenkert@5310: } rrenkert@5310: rrenkert@5310: rrenkert@5310: public static String getLabel(CallContext cc, String value) { teichmann@8202: log.debug("Create label for value: " + value); rrenkert@5310: rrenkert@5310: return value; rrenkert@5310: } rrenkert@5310: rrenkert@5310: rrenkert@5310: @Override rrenkert@5310: public boolean validate(Artifact artifact) rrenkert@5310: throws IllegalArgumentException rrenkert@5310: { teichmann@5867: D4EArtifact flys = (D4EArtifact) artifact; rrenkert@5310: String hws = flys.getDataAsString("uesk.hws"); teichmann@8202: log.debug("hws: " + hws); rrenkert@5310: return true; rrenkert@5310: } rrenkert@5310: rrenkert@5310: rrenkert@5310: /** rrenkert@5310: * Returns the DGM specified in the parameters of flys. rrenkert@5310: * teichmann@5867: * @param flys The D4EArtifact that knows the ID of a DGM. rrenkert@5310: * teichmann@5867: * @throws IllegalArgumentException If the D4EArtifact doesn't know the ID rrenkert@5310: * of a DGM. rrenkert@5310: * teichmann@5867: * @return the DGM specified by D4EArtifact's parameters. rrenkert@5310: */ teichmann@5867: public static String getHWS(D4EArtifact flys) rrenkert@5310: throws IllegalArgumentException rrenkert@5310: { rrenkert@5310: String hws= flys.getDataAsString("uesk.hws"); rrenkert@5310: if (hws == null) { rrenkert@5310: return null; rrenkert@5310: } rrenkert@5310: teichmann@8202: log.debug("Found selected hws: '" + hws + "'"); rrenkert@5310: rrenkert@5310: return hws; rrenkert@5310: } rrenkert@5310: rrenkert@5310: rrenkert@5310: rrenkert@5310: }