Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/artifacts/states/SoundingsSelect.java @ 7833:f97162606fa2 minfo-opt
Avoid NPE in sounding select state if no year is set for bed heights.
author | Raimund Renkert <rrenkert@intevation.de> |
---|---|
date | Thu, 03 Apr 2014 14:01:01 +0200 |
parents | c053b2d813f9 |
children | b320826b1183 |
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; |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
12 import java.util.ArrayList; |
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; |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
16 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3931
diff
changeset
|
17 import org.dive4elements.artifacts.Artifact; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3931
diff
changeset
|
18 import org.dive4elements.artifacts.CallContext; |
2709
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
19 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3931
diff
changeset
|
20 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
|
21 import org.dive4elements.artifacts.common.utils.XMLUtils; |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
22 import org.dive4elements.artifacts.common.utils.XMLUtils.ElementCreator; |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
23 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3931
diff
changeset
|
24 import org.dive4elements.river.model.BedHeightEpoch; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3931
diff
changeset
|
25 import org.dive4elements.river.model.BedHeightSingle; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3931
diff
changeset
|
26 import org.dive4elements.river.model.River; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3931
diff
changeset
|
27 |
5867
59ff03ff48f1
River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5865
diff
changeset
|
28 import org.dive4elements.river.artifacts.D4EArtifact; |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
29 import org.dive4elements.river.artifacts.resources.Resources; |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
30 import org.dive4elements.river.utils.Formatter; |
5865
73da40528cf2
River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
31 import org.dive4elements.river.utils.RiverUtils; |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
32 import org.w3c.dom.Element; |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
33 |
2709
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
34 |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
35 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
|
36 |
3931
c79b98085096
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3785
diff
changeset
|
37 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
|
38 |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
39 public static final String PREFIX_SINGLE = "single-"; |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
40 |
3931
c79b98085096
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3785
diff
changeset
|
41 public static final String PREFIX_EPOCH = "epoch-"; |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
42 |
3931
c79b98085096
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3785
diff
changeset
|
43 /** Private logger. */ |
2709
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
44 private static final Logger logger = Logger.getLogger(SoundingsSelect.class); |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
45 |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
46 |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
47 @Override |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
48 public String getUIProvider() { |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
49 return "parameter-matrix"; |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
50 } |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
51 |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
52 @Override |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
53 protected void appendItems( |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
54 Artifact artifact, |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
55 ElementCreator creator, |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
56 String name, |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
57 CallContext context, |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
58 Element select |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
59 ) { |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
60 try { |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
61 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
|
62 |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
63 getOptions(artifact, name, context, creator, select); |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
64 } |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
65 catch (IllegalArgumentException iae) { |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
66 logger.warn("Illegal argument", iae); |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
67 } |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
68 } |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
69 |
2709
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
70 protected KVP<String, String>[] getOptions( |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
71 Artifact artifact, |
3649
33bfc01410fb
Merged revisions 5375,5379,5382 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3452
diff
changeset
|
72 String parameterName, |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
73 CallContext context, |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
74 ElementCreator creator, |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
75 Element select |
2709
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
76 ) |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
77 throws IllegalArgumentException |
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 logger.debug("Get options for parameter: '" + parameterName + "'"); |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
80 |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
81 if (!testParameterName(parameterName)) { |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
82 throw new IllegalArgumentException( |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
83 "Invalid parameter for state: '" + parameterName + "'"); |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
84 } |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
85 |
5867
59ff03ff48f1
River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5865
diff
changeset
|
86 River river = RiverUtils.getRiver((D4EArtifact) artifact); |
59ff03ff48f1
River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5865
diff
changeset
|
87 double lo = ((D4EArtifact) artifact).getDataAsDouble("ld_from"); |
59ff03ff48f1
River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5865
diff
changeset
|
88 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
|
89 |
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
|
90 double kmLo = Math.min(lo, hi); |
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
|
91 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
|
92 |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
93 List<KVP<String, String>> kvp = new ArrayList<KVP<String, String>>(); |
2709
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
94 |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
95 appendSingles(river, kmLo, kmHi, creator, select, context); |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
96 appendEpochs(river, kmLo, kmHi, creator, select, context); |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
97 |
3452
200e70f31f6f
Removed some superfluous casts.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3087
diff
changeset
|
98 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
|
99 } |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
100 |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
101 |
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
|
102 protected void appendSingles( |
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
|
103 River river, |
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
|
104 double kmLo, |
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
|
105 double kmHi, |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
106 ElementCreator creator, |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
107 Element select, |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
108 CallContext context |
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
|
109 ) { |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
110 List<BedHeightSingle> singles = |
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
|
111 BedHeightSingle.getBedHeightSingles(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
|
112 |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
113 if (singles != null) { |
3782
5d0419882382
Added missing translation of minfo state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3649
diff
changeset
|
114 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
|
115 |
3782
5d0419882382
Added missing translation of minfo state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3649
diff
changeset
|
116 logger.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
|
117 |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
118 NumberFormat nf = Formatter.getCalculationKm(context.getMeta()); |
3782
5d0419882382
Added missing translation of minfo state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3649
diff
changeset
|
119 for (int i = 0; i < size; i++) { |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
120 BedHeightSingle s = singles.get(i); |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
121 |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
122 String id = PREFIX_SINGLE + s.getId(); |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
123 String value = s.getDescription(); |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
124 |
7833
f97162606fa2
Avoid NPE in sounding select state if no year is set for bed heights.
Raimund Renkert <rrenkert@intevation.de>
parents:
7823
diff
changeset
|
125 Integer year = s.getYear(); |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
126 Element item = creator.create("item"); |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
127 creator.addAttr(item, "label", value, true); |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
128 creator.addAttr(item, "value", id, true); |
7833
f97162606fa2
Avoid NPE in sounding select state if no year is set for bed heights.
Raimund Renkert <rrenkert@intevation.de>
parents:
7823
diff
changeset
|
129 creator.addAttr(item, "year", |
f97162606fa2
Avoid NPE in sounding select state if no year is set for bed heights.
Raimund Renkert <rrenkert@intevation.de>
parents:
7823
diff
changeset
|
130 year != null ? s.getYear().toString() : ""); |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
131 creator.addAttr(item, "type", s.getType().getName()); |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
132 creator.addAttr(item, "range", |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
133 nf.format(s.getRange().getA()) + |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
134 " - " + |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
135 nf.format(s.getRange().getB())); |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
136 select.appendChild(item); |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
137 } |
2709
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
138 } |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
139 logger.debug("appended singles"); |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
140 logger.debug(XMLUtils.toString(select)); |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
141 } |
2709
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
142 |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
143 |
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
|
144 protected void appendEpochs( |
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
|
145 River river, |
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
|
146 double kmLo, |
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
|
147 double kmHi, |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
148 ElementCreator creator, |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
149 Element select, |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
150 CallContext context |
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
|
151 ) { |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
152 List<BedHeightEpoch> epochs = |
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
|
153 BedHeightEpoch.getBedHeightEpochs(river, kmLo, kmHi); |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
154 |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
155 if (epochs != null) { |
3782
5d0419882382
Added missing translation of minfo state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3649
diff
changeset
|
156 int size = epochs.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
|
157 |
3782
5d0419882382
Added missing translation of minfo state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3649
diff
changeset
|
158 logger.debug("Found " + size + " epochs."); |
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
|
159 |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
160 NumberFormat nf = Formatter.getCalculationKm(context.getMeta()); |
3782
5d0419882382
Added missing translation of minfo state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3649
diff
changeset
|
161 for (int i = 0; i < size; i++) { |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
162 BedHeightEpoch e = epochs.get(i); |
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 String id = PREFIX_EPOCH + e.getId(); |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
165 String value = e.getDescription(); |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
166 |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
167 Element item = creator.create("item"); |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
168 creator.addAttr(item, "label", value, true); |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
169 creator.addAttr(item, "value", id, true); |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
170 creator.addAttr(item, "year", e.getTimeInterval().getStartTime().toString()); |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
171 creator.addAttr(item, "range", |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
172 nf.format(e.getRange().getA()) + |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
173 " - " + |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
174 nf.format(e.getRange().getB())); |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
175 select.appendChild(item); |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
176 } |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
177 } |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
178 logger.debug("appended epochs"); |
2709
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
179 } |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
180 |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
181 @Override |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
182 protected Element createStaticData( |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
183 D4EArtifact flys, |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
184 ElementCreator creator, |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
185 CallContext cc, |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
186 String name, |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
187 String value, |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
188 String type |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
189 ) { |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
190 Element data = creator.create("data"); |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
191 creator.addAttr(data, "name", name, true); |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
192 creator.addAttr(data, "type", type, true); |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
193 creator.addAttr(data, "label", |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
194 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
|
195 |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
196 String[] values = value.split(";"); |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
197 |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
198 for (String val: values) { |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
199 Element item = creator.create("item"); |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
200 creator.addAttr(item, "value", val, true); |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
201 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
|
202 |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
203 data.appendChild(item); |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
204 } |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
205 |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
206 return data; |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
207 } |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
208 |
2709
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
209 protected String getLabelFor( |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
210 CallContext cc, |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
211 String parameterName, |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
212 String value |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
213 ) throws IllegalArgumentException |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
214 { |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
215 if (!testParameterName(parameterName)) { |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
216 throw new IllegalArgumentException( |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
217 "Invalid parameter for state: '" + parameterName + "'"); |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
218 } |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
219 |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
220 if (value.indexOf(PREFIX_SINGLE) >= 0) { |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
221 return getLabelForSingle(cc, value); |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
222 } |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
223 else if (value.indexOf(PREFIX_EPOCH) >= 0) { |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
224 return getLabelForEpoch(cc, value); |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
225 } |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
226 |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
227 return value; |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
228 } |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
229 |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
230 |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
231 protected String getLabelForSingle(CallContext cc, String value) { |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
232 String id = value.replace(PREFIX_SINGLE, ""); |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
233 try { |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
234 BedHeightSingle s = BedHeightSingle.getBedHeightSingleById( |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
235 Integer.parseInt(id)); |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
236 |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
237 if (s != null) { |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
238 return s.getDescription(); |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
239 } |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
240 else { |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
241 return "no value for '" + id + "'"; |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
242 } |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
243 } |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
244 catch (NumberFormatException nfe) { |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
245 logger.warn("Could not parse id from string '" + id + "'", nfe); |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
246 } |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
247 |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
248 return "n.A."; |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
249 } |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
250 |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
251 |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
252 protected String getLabelForEpoch(CallContext cc, String value) { |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
253 String id = value.replace(PREFIX_EPOCH, ""); |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
254 try { |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
255 BedHeightEpoch e = BedHeightEpoch.getBedHeightEpochById( |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
256 Integer.parseInt(id)); |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
257 |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
258 if (e != null) { |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
259 return e.getDescription(); |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
260 } |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
261 else { |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
262 return "no value for '" + id + "'"; |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
263 } |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
264 } |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
265 catch (NumberFormatException nfe) { |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
266 logger.warn("Could not parse id from string '" + id + "'", nfe); |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
267 } |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
268 |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
269 return "n.A."; |
2709
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
270 } |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
271 |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
272 |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
273 /** |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
274 * This method might be used to test, if a parameter name is handled by this |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
275 * state. |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
276 * |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
277 * @param parameterName The name of a parameter. |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
278 * |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
279 * @return true, if parameterName is one of <i>MAIN_CHANNEL</i> or |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
280 * <i>TOTAL_CHANNEL</i>. Otherwise false. |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
281 */ |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
282 protected boolean testParameterName(String parameterName) { |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
283 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
|
284 return false; |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
285 } |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
286 else if (parameterName.equals(SOUNDINGS)) { |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
287 return true; |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
288 } |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
289 else { |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
290 return false; |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
291 } |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
292 } |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
293 } |
3083
4bd3d8bbb60c
Added missing vim lines.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2716
diff
changeset
|
294 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |