annotate 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
rev   line source
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents:
diff changeset
1 /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents:
diff changeset
2 * Software engineering by
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents:
diff changeset
3 * Björnsen Beratende Ingenieure GmbH
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents:
diff changeset
4 * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents:
diff changeset
5 *
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents:
diff changeset
6 * This file is Free Software under the GNU AGPL (>=v3)
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents:
diff changeset
7 * and comes with ABSOLUTELY NO WARRANTY! Check out the
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents:
diff changeset
8 * documentation coming with Dive4Elements River for details.
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents:
diff changeset
9 */
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents:
diff changeset
10 package org.dive4elements.river.artifacts.states;
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents:
diff changeset
11
9178
2f5052835b76 uinfo inundationduration langjähr. Mittel, Uedauern.properties, Meldung
gernotbelger
parents: 9053
diff changeset
12 import java.util.LinkedHashMap;
2f5052835b76 uinfo inundationduration langjähr. Mittel, Uedauern.properties, Meldung
gernotbelger
parents: 9053
diff changeset
13 import java.util.Map;
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents:
diff changeset
14
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents:
diff changeset
15 import org.dive4elements.artifacts.Artifact;
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents:
diff changeset
16 import org.dive4elements.artifacts.CallContext;
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents:
diff changeset
17 import org.dive4elements.artifacts.CallMeta;
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents:
diff changeset
18 import org.dive4elements.artifacts.common.utils.XMLUtils;
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents:
diff changeset
19 import org.dive4elements.river.artifacts.resources.Resources;
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents:
diff changeset
20 import org.w3c.dom.Element;
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents:
diff changeset
21
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents:
diff changeset
22 /**
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents:
diff changeset
23 * @author Domenico Nardi Tironi
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents:
diff changeset
24 *
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents:
diff changeset
25 */
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents:
diff changeset
26 public abstract class RadioSelect extends DefaultState {
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents:
diff changeset
27
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents:
diff changeset
28 private static final long serialVersionUID = 1L;
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents:
diff changeset
29
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents:
diff changeset
30 public RadioSelect() {
9178
2f5052835b76 uinfo inundationduration langjähr. Mittel, Uedauern.properties, Meldung
gernotbelger
parents: 9053
diff changeset
31
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents:
diff changeset
32 }
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents:
diff changeset
33
9178
2f5052835b76 uinfo inundationduration langjähr. Mittel, Uedauern.properties, Meldung
gernotbelger
parents: 9053
diff changeset
34 protected abstract LinkedHashMap<String, String> makeEntries(CallMeta meta, Artifact artifact); // AUSNAHMSWEISE EXPLIZITER TYP, damit gewährleistet ist,
2f5052835b76 uinfo inundationduration langjähr. Mittel, Uedauern.properties, Meldung
gernotbelger
parents: 9053
diff changeset
35 // dass die Reihenfolge
2f5052835b76 uinfo inundationduration langjähr. Mittel, Uedauern.properties, Meldung
gernotbelger
parents: 9053
diff changeset
36 // nicht verrutscht
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents:
diff changeset
37
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents:
diff changeset
38 @Override
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents:
diff changeset
39 protected final String getUIProvider() {
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents:
diff changeset
40 return "radio_panel";
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents:
diff changeset
41 }
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents:
diff changeset
42
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents:
diff changeset
43 @Override
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents:
diff changeset
44 protected Element[] createItems(final XMLUtils.ElementCreator ec, final Artifact artifact, final String name, final CallContext context) {
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents:
diff changeset
45 final CallMeta meta = context.getMeta();
9178
2f5052835b76 uinfo inundationduration langjähr. Mittel, Uedauern.properties, Meldung
gernotbelger
parents: 9053
diff changeset
46 final Map<String, String> entries = makeEntries(meta, artifact);
2f5052835b76 uinfo inundationduration langjähr. Mittel, Uedauern.properties, Meldung
gernotbelger
parents: 9053
diff changeset
47
2f5052835b76 uinfo inundationduration langjähr. Mittel, Uedauern.properties, Meldung
gernotbelger
parents: 9053
diff changeset
48 final Element[] elements = new Element[entries.size()];
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents:
diff changeset
49 int i = 0;
9178
2f5052835b76 uinfo inundationduration langjähr. Mittel, Uedauern.properties, Meldung
gernotbelger
parents: 9053
diff changeset
50 for (final String key : entries.keySet()) {
2f5052835b76 uinfo inundationduration langjähr. Mittel, Uedauern.properties, Meldung
gernotbelger
parents: 9053
diff changeset
51 final String label = entries.get(key);
2f5052835b76 uinfo inundationduration langjähr. Mittel, Uedauern.properties, Meldung
gernotbelger
parents: 9053
diff changeset
52 final String labelToSet = label != null ? label : Resources.getMsg(meta, key);
2f5052835b76 uinfo inundationduration langjähr. Mittel, Uedauern.properties, Meldung
gernotbelger
parents: 9053
diff changeset
53 elements[i] = createItem(ec, new String[] { labelToSet, key });
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents:
diff changeset
54 i++;
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents:
diff changeset
55 }
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents:
diff changeset
56 return elements;
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents:
diff changeset
57 }
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents:
diff changeset
58
9178
2f5052835b76 uinfo inundationduration langjähr. Mittel, Uedauern.properties, Meldung
gernotbelger
parents: 9053
diff changeset
59 @Override
2f5052835b76 uinfo inundationduration langjähr. Mittel, Uedauern.properties, Meldung
gernotbelger
parents: 9053
diff changeset
60 protected String getLabelFor(final CallContext cc, final String name, final String value, final String type) {
2f5052835b76 uinfo inundationduration langjähr. Mittel, Uedauern.properties, Meldung
gernotbelger
parents: 9053
diff changeset
61 // könnte nicht davon ausgegangen werden, dass die entries immer zuerst in createItems erzeugt werden und da quasi
2f5052835b76 uinfo inundationduration langjähr. Mittel, Uedauern.properties, Meldung
gernotbelger
parents: 9053
diff changeset
62 // "lazy" initialisiert werden?
2f5052835b76 uinfo inundationduration langjähr. Mittel, Uedauern.properties, Meldung
gernotbelger
parents: 9053
diff changeset
63 final Map<String, String> entries = makeEntries(cc.getMeta(), null);
2f5052835b76 uinfo inundationduration langjähr. Mittel, Uedauern.properties, Meldung
gernotbelger
parents: 9053
diff changeset
64
2f5052835b76 uinfo inundationduration langjähr. Mittel, Uedauern.properties, Meldung
gernotbelger
parents: 9053
diff changeset
65 final String valueToSet = entries.get(value) != null ? entries.get(value) : value;
2f5052835b76 uinfo inundationduration langjähr. Mittel, Uedauern.properties, Meldung
gernotbelger
parents: 9053
diff changeset
66 return super.getLabelFor(cc, name, valueToSet, type);
2f5052835b76 uinfo inundationduration langjähr. Mittel, Uedauern.properties, Meldung
gernotbelger
parents: 9053
diff changeset
67 }
2f5052835b76 uinfo inundationduration langjähr. Mittel, Uedauern.properties, Meldung
gernotbelger
parents: 9053
diff changeset
68 }

http://dive4elements.wald.intevation.org