Mercurial > dive4elements > river
comparison artifacts/src/main/java/org/dive4elements/river/artifacts/states/RadioSelect.java @ 9178:2f5052835b76
uinfo inundationduration langjähr. Mittel, Uedauern.properties, Meldung
author | gernotbelger |
---|---|
date | Tue, 26 Jun 2018 19:48:35 +0200 |
parents | ad2ae847e10e |
children | dace17e26d33 |
comparison
equal
deleted
inserted
replaced
9177:37db8c4c44b7 | 9178:2f5052835b76 |
---|---|
7 * and comes with ABSOLUTELY NO WARRANTY! Check out the | 7 * and comes with ABSOLUTELY NO WARRANTY! Check out the |
8 * documentation coming with Dive4Elements River for details. | 8 * documentation coming with Dive4Elements River for details. |
9 */ | 9 */ |
10 package org.dive4elements.river.artifacts.states; | 10 package org.dive4elements.river.artifacts.states; |
11 | 11 |
12 import java.util.List; | 12 import java.util.LinkedHashMap; |
13 import java.util.Map; | |
13 | 14 |
14 import org.dive4elements.artifacts.Artifact; | 15 import org.dive4elements.artifacts.Artifact; |
15 import org.dive4elements.artifacts.CallContext; | 16 import org.dive4elements.artifacts.CallContext; |
16 import org.dive4elements.artifacts.CallMeta; | 17 import org.dive4elements.artifacts.CallMeta; |
17 import org.dive4elements.artifacts.common.utils.XMLUtils; | 18 import org.dive4elements.artifacts.common.utils.XMLUtils; |
23 * | 24 * |
24 */ | 25 */ |
25 public abstract class RadioSelect extends DefaultState { | 26 public abstract class RadioSelect extends DefaultState { |
26 | 27 |
27 private static final long serialVersionUID = 1L; | 28 private static final long serialVersionUID = 1L; |
28 private final List<String> entries; | |
29 | 29 |
30 public RadioSelect() { | 30 public RadioSelect() { |
31 super(); | 31 |
32 this.entries = makeEntries(); | |
33 } | 32 } |
34 | 33 |
35 protected abstract List<String> makeEntries(); | 34 protected abstract LinkedHashMap<String, String> makeEntries(CallMeta meta, Artifact artifact); // AUSNAHMSWEISE EXPLIZITER TYP, damit gewährleistet ist, |
35 // dass die Reihenfolge | |
36 // nicht verrutscht | |
36 | 37 |
37 @Override | 38 @Override |
38 protected final String getUIProvider() { | 39 protected final String getUIProvider() { |
39 return "radio_panel"; | 40 return "radio_panel"; |
40 } | 41 } |
41 | 42 |
42 @Override | 43 @Override |
43 protected Element[] createItems(final XMLUtils.ElementCreator ec, final Artifact artifact, final String name, final CallContext context) { | 44 protected Element[] createItems(final XMLUtils.ElementCreator ec, final Artifact artifact, final String name, final CallContext context) { |
44 final CallMeta meta = context.getMeta(); | 45 final CallMeta meta = context.getMeta(); |
45 final Element[] elements = new Element[this.entries.size()]; | 46 final Map<String, String> entries = makeEntries(meta, artifact); |
47 | |
48 final Element[] elements = new Element[entries.size()]; | |
46 int i = 0; | 49 int i = 0; |
47 for (final String item : this.entries) { | 50 for (final String key : entries.keySet()) { |
48 elements[i] = createItem(ec, new String[] { Resources.getMsg(meta, item, item), item }); | 51 final String label = entries.get(key); |
52 final String labelToSet = label != null ? label : Resources.getMsg(meta, key); | |
53 elements[i] = createItem(ec, new String[] { labelToSet, key }); | |
49 i++; | 54 i++; |
50 } | 55 } |
51 return elements; | 56 return elements; |
52 } | 57 } |
53 | 58 |
59 @Override | |
60 protected String getLabelFor(final CallContext cc, final String name, final String value, final String type) { | |
61 // könnte nicht davon ausgegangen werden, dass die entries immer zuerst in createItems erzeugt werden und da quasi | |
62 // "lazy" initialisiert werden? | |
63 final Map<String, String> entries = makeEntries(cc.getMeta(), null); | |
64 | |
65 final String valueToSet = entries.get(value) != null ? entries.get(value) : value; | |
66 return super.getLabelFor(cc, name, valueToSet, type); | |
67 } | |
54 } | 68 } |