comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/MultiIntArrayState.java @ 2696:1bc35de0b786

Improved the states for MINFO flow velocity calculation. flys-artifacts/trunk@4406 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Tue, 15 May 2012 07:15:36 +0000
parents
children 71f072d8b3d8
comparison
equal deleted inserted replaced
2695:ae0742f92cd5 2696:1bc35de0b786
1 package de.intevation.flys.artifacts.states;
2
3 import org.w3c.dom.Element;
4
5 import org.apache.log4j.Logger;
6
7 import de.intevation.artifacts.Artifact;
8 import de.intevation.artifacts.CallContext;
9
10 import de.intevation.artifacts.common.utils.XMLUtils.ElementCreator;
11 import de.intevation.artifacts.common.model.KVP;
12
13
14 /**
15 * State that holds minimun and maximum (for validation).
16 *
17 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
18 */
19 public abstract class MultiIntArrayState extends DefaultState {
20
21 private static final Logger logger =
22 Logger.getLogger(MultiIntArrayState.class);
23
24
25 @Override
26 protected void appendItems(
27 Artifact artifact,
28 ElementCreator creator,
29 String name,
30 CallContext context,
31 Element select
32 ) {
33 try {
34 creator.addAttr(select, "type", "intoptions", true);
35
36 Element choices = creator.create("choices");
37
38 for (KVP kvp: getOptions(artifact, name)) {
39 Element item = creator.create("item");
40 creator.addAttr(item, "label", kvp.getValue().toString(), true);
41 item.setTextContent(kvp.getKey().toString());
42
43 choices.appendChild(item);
44 }
45
46 select.appendChild(choices);
47 }
48 catch (IllegalArgumentException iae) {
49 logger.warn("Illegal argument", iae);
50 }
51 }
52
53
54 protected abstract KVP<Integer, String>[] getOptions(
55 Artifact artifact,
56 String parameterName
57 )
58 throws IllegalArgumentException;
59 }

http://dive4elements.wald.intevation.org