Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/artifacts/states/SoundingsSelect.java @ 9449:ba3ad54edbae
withFieldsOnly bundu.wst sounding
author | gernotbelger |
---|---|
date | Wed, 22 Aug 2018 14:07:39 +0200 |
parents | 2da486c7c05f |
children |
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 |
9449 | 93 protected abstract boolean withHeightFieldsOnly(); |
94 | |
9391 | 95 private void appendSingles(final River river, final double kmLo, final double kmHi, final ElementCreator creator, final Element select, |
9390 | 96 final CallContext context) { |
9449 | 97 final List<BedHeight> singles = BedHeight.getBedHeights(river, kmLo, kmHi, withHeightFieldsOnly()); |
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
|
98 |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
99 if (singles != null) { |
9390 | 100 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
|
101 |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8083
diff
changeset
|
102 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
|
103 |
9390 | 104 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
|
105 for (int i = 0; i < size; i++) { |
9390 | 106 final BedHeight s = singles.get(i); |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
107 |
9390 | 108 final String id = PREFIX_SINGLE + s.getId(); |
109 final String value = s.getDescription(); | |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
110 |
9390 | 111 final Integer year = s.getYear(); |
112 final Element item = creator.create("item"); | |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
113 creator.addAttr(item, "label", value, true); |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
114 creator.addAttr(item, "value", id, true); |
9390 | 115 creator.addAttr(item, "analyzed_range", nf.format(s.getRange().getA()) + " - " + nf.format(s.getRange().getB())); |
116 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
|
117 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
|
118 select.appendChild(item); |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
119 } |
2709
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
120 } |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8083
diff
changeset
|
121 if (log.isDebugEnabled()) { |
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8083
diff
changeset
|
122 log.debug("appended singles"); |
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8083
diff
changeset
|
123 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
|
124 } |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
125 } |
2709
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
126 |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
127 @Override |
9391 | 128 protected final Element createStaticData(final D4EArtifact flys, final ElementCreator creator, final CallContext cc, final String name, final String value, |
9390 | 129 final String type) { |
130 final Element data = creator.create("data"); | |
131 creator.addAttr(data, "name", name, true); | |
132 creator.addAttr(data, "type", type, true); | |
133 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
|
134 |
9390 | 135 final String[] values = value.split(";"); |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
136 |
9390 | 137 for (final String val : values) { |
138 final Element item = creator.create("item"); | |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
139 creator.addAttr(item, "value", val, true); |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
140 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
|
141 |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
142 data.appendChild(item); |
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 |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
145 return data; |
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 |
9391 | 148 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
|
149 if (!testParameterName(parameterName)) { |
9390 | 150 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
|
151 } |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
152 |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
153 if (value.indexOf(PREFIX_SINGLE) >= 0) { |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
154 return getLabelForSingle(cc, 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 return 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 |
9391 | 159 private String getLabelForSingle(final CallContext cc, final String value) { |
9390 | 160 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
|
161 try { |
9390 | 162 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
|
163 |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
164 if (s != null) { |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
165 return s.getDescription(); |
9390 | 166 } else { |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
167 return "no value for '" + id + "'"; |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
168 } |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
169 } |
9390 | 170 catch (final NumberFormatException nfe) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8083
diff
changeset
|
171 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
|
172 } |
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 return "n.A."; |
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 |
2709
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
177 /** |
8856 | 178 * This method might be used to test, if a parameter name |
179 * 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
|
180 * |
9390 | 181 * @param parameterName |
182 * 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
|
183 * |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
184 * @return true, if parameterName is one of <i>MAIN_CHANNEL</i> or |
9390 | 185 * <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
|
186 */ |
9391 | 187 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
|
188 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
|
189 return false; |
9390 | 190 } 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
|
191 return true; |
9390 | 192 } else { |
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 false; |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
194 } |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
195 } |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
196 } |
3083
4bd3d8bbb60c
Added missing vim lines.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2716
diff
changeset
|
197 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |