comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/MultiIntArrayState.java @ 2705:71f072d8b3d8

Improved the MultiIntArrayState, so the clients are able to display human readable strings for parameters and its values. flys-artifacts/trunk@4422 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Wed, 16 May 2012 10:52:12 +0000
parents 1bc35de0b786
children 282db12a5bdf
comparison
equal deleted inserted replaced
2704:d930245c9956 2705:71f072d8b3d8
7 import de.intevation.artifacts.Artifact; 7 import de.intevation.artifacts.Artifact;
8 import de.intevation.artifacts.CallContext; 8 import de.intevation.artifacts.CallContext;
9 9
10 import de.intevation.artifacts.common.utils.XMLUtils.ElementCreator; 10 import de.intevation.artifacts.common.utils.XMLUtils.ElementCreator;
11 import de.intevation.artifacts.common.model.KVP; 11 import de.intevation.artifacts.common.model.KVP;
12
13 import de.intevation.flys.artifacts.FLYSArtifact;
14 import de.intevation.flys.artifacts.resources.Resources;
15 import de.intevation.flys.utils.FLYSUtils;
12 16
13 17
14 /** 18 /**
15 * State that holds minimun and maximum (for validation). 19 * State that holds minimun and maximum (for validation).
16 * 20 *
49 logger.warn("Illegal argument", iae); 53 logger.warn("Illegal argument", iae);
50 } 54 }
51 } 55 }
52 56
53 57
58 @Override
59 protected Element createStaticData(
60 FLYSArtifact flys,
61 ElementCreator creator,
62 CallContext cc,
63 String name,
64 String value,
65 String type
66 ) {
67 Element data = creator.create("data");
68 creator.addAttr(data, "name", name, true);
69 creator.addAttr(data, "type", type, true);
70 creator.addAttr(data, "label",
71 Resources.getMsg(cc.getMeta(), name, name), true);
72
73 int[] values = FLYSUtils.intArrayFromString(value);
74
75 for (int val: values) {
76 try {
77 Element item = creator.create("item");
78 creator.addAttr(item, "value", String.valueOf(val), true);
79 creator.addAttr(item, "label", getLabelFor(cc, name, val), true);
80
81 data.appendChild(item);
82 }
83 catch (IllegalArgumentException iae) {
84 logger.warn("Cannot append item: " + val, iae);
85 }
86 }
87
88 return data;
89 }
90
91
54 protected abstract KVP<Integer, String>[] getOptions( 92 protected abstract KVP<Integer, String>[] getOptions(
55 Artifact artifact, 93 Artifact artifact,
56 String parameterName 94 String parameterName
57 ) 95 )
58 throws IllegalArgumentException; 96 throws IllegalArgumentException;
97
98
99 protected abstract String getLabelFor(
100 CallContext cc,
101 String parameterName,
102 int value)
103 throws IllegalArgumentException;
59 } 104 }

http://dive4elements.wald.intevation.org