ingo@2696: package de.intevation.flys.artifacts.states; ingo@2696: ingo@2696: import org.w3c.dom.Element; ingo@2696: ingo@2696: import org.apache.log4j.Logger; ingo@2696: ingo@2696: import de.intevation.artifacts.Artifact; ingo@2696: import de.intevation.artifacts.CallContext; ingo@2696: ingo@2696: import de.intevation.artifacts.common.utils.XMLUtils.ElementCreator; ingo@2696: import de.intevation.artifacts.common.model.KVP; ingo@2696: ingo@2696: ingo@2696: /** ingo@2696: * State that holds minimun and maximum (for validation). ingo@2696: * ingo@2696: * @author Ingo Weinzierl ingo@2696: */ ingo@2696: public abstract class MultiIntArrayState extends DefaultState { ingo@2696: ingo@2696: private static final Logger logger = ingo@2696: Logger.getLogger(MultiIntArrayState.class); ingo@2696: ingo@2696: ingo@2696: @Override ingo@2696: protected void appendItems( ingo@2696: Artifact artifact, ingo@2696: ElementCreator creator, ingo@2696: String name, ingo@2696: CallContext context, ingo@2696: Element select ingo@2696: ) { ingo@2696: try { ingo@2696: creator.addAttr(select, "type", "intoptions", true); ingo@2696: ingo@2696: Element choices = creator.create("choices"); ingo@2696: ingo@2696: for (KVP kvp: getOptions(artifact, name)) { ingo@2696: Element item = creator.create("item"); ingo@2696: creator.addAttr(item, "label", kvp.getValue().toString(), true); ingo@2696: item.setTextContent(kvp.getKey().toString()); ingo@2696: ingo@2696: choices.appendChild(item); ingo@2696: } ingo@2696: ingo@2696: select.appendChild(choices); ingo@2696: } ingo@2696: catch (IllegalArgumentException iae) { ingo@2696: logger.warn("Illegal argument", iae); ingo@2696: } ingo@2696: } ingo@2696: ingo@2696: ingo@2696: protected abstract KVP[] getOptions( ingo@2696: Artifact artifact, ingo@2696: String parameterName ingo@2696: ) ingo@2696: throws IllegalArgumentException; ingo@2696: }