Mercurial > dive4elements > river
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 } |