Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/artifacts/states/SoundingsSelect.java @ 9391:2da486c7c05f
salix historical sounding workflow changed
author | gernotbelger |
---|---|
date | Thu, 09 Aug 2018 17:25:13 +0200 |
parents | f575ff573cbb |
children | ba3ad54edbae |
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 |
9391 | 29 public abstract 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 |
9391 | 31 private 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 |
9391 | 39 protected final void appendItems(final Artifact artifact, final ElementCreator creator, final String name, final CallContext context, |
40 final Element select) { | |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
41 try { |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
42 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
|
43 |
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
|
44 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
|
45 |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
46 getOptions(artifact, name, context, creator, select); |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
47 } |
9390 | 48 catch (final IllegalArgumentException iae) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8083
diff
changeset
|
49 log.warn("Illegal argument", iae); |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
50 } |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
51 } |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
52 |
9390 | 53 private static Element order(final ElementCreator creator, final String name, final String order) { |
54 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
|
55 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
|
56 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
|
57 } |
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
|
58 |
9390 | 59 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
|
60 |
9390 | 61 final Element meta = creator.create("meta"); |
62 meta.appendChild(order(creator, "year", "0")); | |
63 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
|
64 meta.appendChild(order(creator, "analyzed_range", "2")); |
9390 | 65 meta.appendChild(order(creator, "label", "3")); |
66 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
|
67 |
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 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
|
69 |
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
|
70 } |
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 |
9391 | 72 private KVP<String, String>[] getOptions(final Artifact artifact, final String parameterName, final CallContext context, final ElementCreator creator, |
9390 | 73 final Element select) throws IllegalArgumentException { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8083
diff
changeset
|
74 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
|
75 |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
76 if (!testParameterName(parameterName)) { |
9390 | 77 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
|
78 } |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
79 |
9390 | 80 final River river = RiverUtils.getRiver((D4EArtifact) artifact); |
81 final double lo = ((D4EArtifact) artifact).getDataAsDouble("ld_from"); | |
82 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
|
83 |
9390 | 84 final double kmLo = Math.min(lo, hi); |
85 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
|
86 |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
87 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
|
88 |
9390 | 89 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
|
90 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
|
91 } |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
92 |
9391 | 93 private void appendSingles(final River river, final double kmLo, final double kmHi, final ElementCreator creator, final Element select, |
9390 | 94 final CallContext context) { |
95 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
|
96 |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
97 if (singles != null) { |
9390 | 98 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
|
99 |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8083
diff
changeset
|
100 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
|
101 |
9390 | 102 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
|
103 for (int i = 0; i < size; i++) { |
9390 | 104 final BedHeight s = singles.get(i); |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
105 |
9390 | 106 final String id = PREFIX_SINGLE + s.getId(); |
107 final String value = s.getDescription(); | |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
108 |
9390 | 109 final Integer year = s.getYear(); |
110 final Element item = creator.create("item"); | |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
111 creator.addAttr(item, "label", value, true); |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
112 creator.addAttr(item, "value", id, true); |
9390 | 113 creator.addAttr(item, "analyzed_range", nf.format(s.getRange().getA()) + " - " + nf.format(s.getRange().getB())); |
114 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
|
115 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
|
116 select.appendChild(item); |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
117 } |
2709
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
118 } |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8083
diff
changeset
|
119 if (log.isDebugEnabled()) { |
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8083
diff
changeset
|
120 log.debug("appended singles"); |
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8083
diff
changeset
|
121 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
|
122 } |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
123 } |
2709
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
124 |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
125 @Override |
9391 | 126 protected final Element createStaticData(final D4EArtifact flys, final ElementCreator creator, final CallContext cc, final String name, final String value, |
9390 | 127 final String type) { |
128 final Element data = creator.create("data"); | |
129 creator.addAttr(data, "name", name, true); | |
130 creator.addAttr(data, "type", type, true); | |
131 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
|
132 |
9390 | 133 final String[] values = value.split(";"); |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
134 |
9390 | 135 for (final String val : values) { |
136 final Element item = creator.create("item"); | |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
137 creator.addAttr(item, "value", val, true); |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
138 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
|
139 |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
140 data.appendChild(item); |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
141 } |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
142 |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
143 return data; |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
144 } |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
145 |
9391 | 146 private 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
|
147 if (!testParameterName(parameterName)) { |
9390 | 148 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
|
149 } |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
150 |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
151 if (value.indexOf(PREFIX_SINGLE) >= 0) { |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
152 return getLabelForSingle(cc, value); |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
153 } |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
154 return value; |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
155 } |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
156 |
9391 | 157 private String getLabelForSingle(final CallContext cc, final String value) { |
9390 | 158 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
|
159 try { |
9390 | 160 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
|
161 |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
162 if (s != null) { |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
163 return s.getDescription(); |
9390 | 164 } else { |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
165 return "no value for '" + id + "'"; |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
166 } |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
167 } |
9390 | 168 catch (final NumberFormatException nfe) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8083
diff
changeset
|
169 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
|
170 } |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
171 |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
172 return "n.A."; |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
173 } |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
174 |
2709
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
175 /** |
8856 | 176 * This method might be used to test, if a parameter name |
177 * 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
|
178 * |
9390 | 179 * @param parameterName |
180 * 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
|
181 * |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
182 * @return true, if parameterName is one of <i>MAIN_CHANNEL</i> or |
9390 | 183 * <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
|
184 */ |
9391 | 185 private 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
|
186 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
|
187 return false; |
9390 | 188 } 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
|
189 return true; |
9390 | 190 } else { |
2709
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; |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
192 } |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
193 } |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
194 } |
3083
4bd3d8bbb60c
Added missing vim lines.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2716
diff
changeset
|
195 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |