Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/artifacts/states/SoundingsSelect.java @ 9390:f575ff573cbb
"Name der Peilung" columname minfo.
author | gernotbelger |
---|---|
date | Thu, 09 Aug 2018 15:22:31 +0200 |
parents | 5e38e2924c07 |
children | 2da486c7c05f |
rev | line source |
---|---|
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde |
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
2 * Software engineering by Intevation GmbH |
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
3 * |
5994
af13ceeba52a
Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5867
diff
changeset
|
4 * This file is Free Software under the GNU AGPL (>=v3) |
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the |
5994
af13ceeba52a
Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5867
diff
changeset
|
6 * documentation coming with Dive4Elements River for details. |
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
7 */ |
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
8 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3931
diff
changeset
|
9 package org.dive4elements.river.artifacts.states; |
2709
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
10 |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
11 import java.text.NumberFormat; |
8070
d77f53c1e5a1
Added meta infos for multi items to enable client to order the columns in a defined order.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7919
diff
changeset
|
12 import java.util.Collections; |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
13 import java.util.List; |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
14 |
2709
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
15 import org.apache.log4j.Logger; |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3931
diff
changeset
|
16 import org.dive4elements.artifacts.Artifact; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3931
diff
changeset
|
17 import org.dive4elements.artifacts.CallContext; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3931
diff
changeset
|
18 import org.dive4elements.artifacts.common.model.KVP; |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
19 import org.dive4elements.artifacts.common.utils.XMLUtils; |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
20 import org.dive4elements.artifacts.common.utils.XMLUtils.ElementCreator; |
9390 | 21 import org.dive4elements.river.artifacts.D4EArtifact; |
22 import org.dive4elements.river.artifacts.resources.Resources; | |
8559
6d8d7425a6b5
Bed heights are just bed heights since a while ('single' is obsolete).
"Tom Gottfried <tom@intevation.de>"
parents:
8202
diff
changeset
|
23 import org.dive4elements.river.model.BedHeight; |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3931
diff
changeset
|
24 import org.dive4elements.river.model.River; |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
25 import org.dive4elements.river.utils.Formatter; |
5865
73da40528cf2
River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
26 import org.dive4elements.river.utils.RiverUtils; |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
27 import org.w3c.dom.Element; |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
28 |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
29 public class SoundingsSelect extends DefaultState { |
2709
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
30 |
3931
c79b98085096
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3785
diff
changeset
|
31 public static final String SOUNDINGS = "soundings"; |
2709
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
32 |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
33 public static final String PREFIX_SINGLE = "single-"; |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
34 |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8083
diff
changeset
|
35 /** Private log. */ |
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8083
diff
changeset
|
36 private static final Logger log = Logger.getLogger(SoundingsSelect.class); |
2709
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
37 |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
38 @Override |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
39 public String getUIProvider() { |
9390 | 40 return "parameter-matrix-sounding"; |
2709
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
41 } |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
42 |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
43 @Override |
9390 | 44 protected void appendItems(final Artifact artifact, final ElementCreator creator, final String name, final CallContext context, final Element select) { |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
45 try { |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
46 creator.addAttr(select, "type", "multiattribute", true); |
2709
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
47 |
8070
d77f53c1e5a1
Added meta infos for multi items to enable client to order the columns in a defined order.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7919
diff
changeset
|
48 appendMeta(creator, select); |
d77f53c1e5a1
Added meta infos for multi items to enable client to order the columns in a defined order.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7919
diff
changeset
|
49 |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
50 getOptions(artifact, name, context, creator, select); |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
51 } |
9390 | 52 catch (final IllegalArgumentException iae) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8083
diff
changeset
|
53 log.warn("Illegal argument", iae); |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
54 } |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
55 } |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
56 |
9390 | 57 private static Element order(final ElementCreator creator, final String name, final String order) { |
58 final Element element = creator.create(name); | |
8070
d77f53c1e5a1
Added meta infos for multi items to enable client to order the columns in a defined order.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7919
diff
changeset
|
59 creator.addAttr(element, "order", order, false); |
d77f53c1e5a1
Added meta infos for multi items to enable client to order the columns in a defined order.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7919
diff
changeset
|
60 return element; |
d77f53c1e5a1
Added meta infos for multi items to enable client to order the columns in a defined order.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7919
diff
changeset
|
61 } |
d77f53c1e5a1
Added meta infos for multi items to enable client to order the columns in a defined order.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7919
diff
changeset
|
62 |
9390 | 63 private void appendMeta(final ElementCreator creator, final Element select) { |
8070
d77f53c1e5a1
Added meta infos for multi items to enable client to order the columns in a defined order.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7919
diff
changeset
|
64 |
9390 | 65 final Element meta = creator.create("meta"); |
66 meta.appendChild(order(creator, "year", "0")); | |
67 meta.appendChild(order(creator, "value", "1")); | |
8070
d77f53c1e5a1
Added meta infos for multi items to enable client to order the columns in a defined order.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7919
diff
changeset
|
68 meta.appendChild(order(creator, "analyzed_range", "2")); |
9390 | 69 meta.appendChild(order(creator, "label", "3")); |
70 meta.appendChild(order(creator, "minfo_type", "4")); | |
8070
d77f53c1e5a1
Added meta infos for multi items to enable client to order the columns in a defined order.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7919
diff
changeset
|
71 |
d77f53c1e5a1
Added meta infos for multi items to enable client to order the columns in a defined order.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7919
diff
changeset
|
72 select.appendChild(meta); |
d77f53c1e5a1
Added meta infos for multi items to enable client to order the columns in a defined order.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7919
diff
changeset
|
73 |
d77f53c1e5a1
Added meta infos for multi items to enable client to order the columns in a defined order.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7919
diff
changeset
|
74 } |
d77f53c1e5a1
Added meta infos for multi items to enable client to order the columns in a defined order.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7919
diff
changeset
|
75 |
9390 | 76 protected KVP<String, String>[] getOptions(final Artifact artifact, final String parameterName, final CallContext context, final ElementCreator creator, |
77 final Element select) throws IllegalArgumentException { | |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8083
diff
changeset
|
78 log.debug("Get options for parameter: '" + parameterName + "'"); |
2709
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
79 |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
80 if (!testParameterName(parameterName)) { |
9390 | 81 throw new IllegalArgumentException("Invalid parameter for state: '" + parameterName + "'"); |
2709
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
82 } |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
83 |
9390 | 84 final River river = RiverUtils.getRiver((D4EArtifact) artifact); |
85 final double lo = ((D4EArtifact) artifact).getDataAsDouble("ld_from"); | |
86 final double hi = ((D4EArtifact) artifact).getDataAsDouble("ld_to"); | |
2716
150dcdefeb7d
Only offer soundings that fit to the current km range in MINFO bed height workflow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2712
diff
changeset
|
87 |
9390 | 88 final double kmLo = Math.min(lo, hi); |
89 final double kmHi = Math.max(lo, hi); | |
2709
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
90 |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
91 appendSingles(river, kmLo, kmHi, creator, select, context); |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
92 |
9390 | 93 final List<KVP<String, String>> kvp = Collections.<KVP<String, String>>emptyList(); |
3452
200e70f31f6f
Removed some superfluous casts.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3087
diff
changeset
|
94 return kvp.toArray(new KVP[kvp.size()]); |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
95 } |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
96 |
9390 | 97 protected void appendSingles(final River river, final double kmLo, final double kmHi, final ElementCreator creator, final Element select, |
98 final CallContext context) { | |
99 final List<BedHeight> singles = BedHeight.getBedHeights(river, kmLo, kmHi); | |
3785
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3782
diff
changeset
|
100 |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
101 if (singles != null) { |
9390 | 102 final int size = singles.size(); |
3785
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3782
diff
changeset
|
103 |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8083
diff
changeset
|
104 log.debug("Found " + size + " singles."); |
3785
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3782
diff
changeset
|
105 |
9390 | 106 final NumberFormat nf = Formatter.getCalculationKm(context.getMeta()); |
3782
5d0419882382
Added missing translation of minfo state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3649
diff
changeset
|
107 for (int i = 0; i < size; i++) { |
9390 | 108 final BedHeight s = singles.get(i); |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
109 |
9390 | 110 final String id = PREFIX_SINGLE + s.getId(); |
111 final String value = s.getDescription(); | |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
112 |
9390 | 113 final Integer year = s.getYear(); |
114 final Element item = creator.create("item"); | |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
115 creator.addAttr(item, "label", value, true); |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
116 creator.addAttr(item, "value", id, true); |
9390 | 117 creator.addAttr(item, "analyzed_range", nf.format(s.getRange().getA()) + " - " + nf.format(s.getRange().getB())); |
118 creator.addAttr(item, "year", year != null ? s.getYear().toString() : ""); | |
7875
b320826b1183
Changed column names in sounding select state ui.
Raimund Renkert <rrenkert@intevation.de>
parents:
7833
diff
changeset
|
119 creator.addAttr(item, "minfo_type", s.getType().getName()); |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
120 select.appendChild(item); |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
121 } |
2709
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
122 } |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8083
diff
changeset
|
123 if (log.isDebugEnabled()) { |
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8083
diff
changeset
|
124 log.debug("appended singles"); |
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8083
diff
changeset
|
125 log.debug(XMLUtils.toString(select)); |
8070
d77f53c1e5a1
Added meta infos for multi items to enable client to order the columns in a defined order.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7919
diff
changeset
|
126 } |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
127 } |
2709
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
128 |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
129 @Override |
9390 | 130 protected Element createStaticData(final D4EArtifact flys, final ElementCreator creator, final CallContext cc, final String name, final String value, |
131 final String type) { | |
132 final Element data = creator.create("data"); | |
133 creator.addAttr(data, "name", name, true); | |
134 creator.addAttr(data, "type", type, true); | |
135 creator.addAttr(data, "label", Resources.getMsg(cc.getMeta(), name, name), true); | |
2709
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
136 |
9390 | 137 final String[] values = value.split(";"); |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
138 |
9390 | 139 for (final String val : values) { |
140 final Element item = creator.create("item"); | |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
141 creator.addAttr(item, "value", val, true); |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
142 creator.addAttr(item, "label", getLabelFor(cc, name, val), true); |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
143 |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
144 data.appendChild(item); |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
145 } |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
146 |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
147 return data; |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
148 } |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
149 |
9390 | 150 protected String getLabelFor(final CallContext cc, final String parameterName, final String value) throws IllegalArgumentException { |
2709
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
151 if (!testParameterName(parameterName)) { |
9390 | 152 throw new IllegalArgumentException("Invalid parameter for state: '" + parameterName + "'"); |
2709
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
153 } |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
154 |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
155 if (value.indexOf(PREFIX_SINGLE) >= 0) { |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
156 return getLabelForSingle(cc, value); |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
157 } |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
158 return value; |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
159 } |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
160 |
9390 | 161 protected String getLabelForSingle(final CallContext cc, final String value) { |
162 final String id = value.replace(PREFIX_SINGLE, ""); | |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
163 try { |
9390 | 164 final BedHeight s = BedHeight.getBedHeightById(Integer.parseInt(id)); |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
165 |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
166 if (s != null) { |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
167 return s.getDescription(); |
9390 | 168 } else { |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
169 return "no value for '" + id + "'"; |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
170 } |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
171 } |
9390 | 172 catch (final NumberFormatException nfe) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8083
diff
changeset
|
173 log.warn("Could not parse id from string '" + id + "'", nfe); |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
174 } |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
175 |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
176 return "n.A."; |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
177 } |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
178 |
2709
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
179 /** |
8856 | 180 * This method might be used to test, if a parameter name |
181 * is handled by this state. | |
2709
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
182 * |
9390 | 183 * @param parameterName |
184 * The name of a parameter. | |
2709
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
185 * |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
186 * @return true, if parameterName is one of <i>MAIN_CHANNEL</i> or |
9390 | 187 * <i>TOTAL_CHANNEL</i>. Otherwise false. |
2709
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
188 */ |
9390 | 189 protected boolean testParameterName(final String parameterName) { |
2709
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
190 if (parameterName == null || parameterName.length() == 0) { |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
191 return false; |
9390 | 192 } else if (parameterName.equals(SOUNDINGS)) { |
2709
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
193 return true; |
9390 | 194 } else { |
2709
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
195 return false; |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
196 } |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
197 } |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
198 } |
3083
4bd3d8bbb60c
Added missing vim lines.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2716
diff
changeset
|
199 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |