Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/artifacts/states/SoundingsSelect.java @ 7919:868f55932fe6
Removed serverside path for bed height epochs.
author | Raimund Renkert <rrenkert@intevation.de> |
---|---|
date | Fri, 06 Jun 2014 16:59:16 +0200 |
parents | b320826b1183 |
children | d77f53c1e5a1 |
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.BedHeightSingle; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3931
diff
changeset
|
25 import org.dive4elements.river.model.River; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3931
diff
changeset
|
26 |
5867
59ff03ff48f1
River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5865
diff
changeset
|
27 import org.dive4elements.river.artifacts.D4EArtifact; |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
28 import org.dive4elements.river.artifacts.resources.Resources; |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
29 import org.dive4elements.river.utils.Formatter; |
5865
73da40528cf2
River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
30 import org.dive4elements.river.utils.RiverUtils; |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
31 import org.w3c.dom.Element; |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
32 |
2709
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
33 |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
34 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
|
35 |
3931
c79b98085096
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3785
diff
changeset
|
36 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
|
37 |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
38 public static final String PREFIX_SINGLE = "single-"; |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
39 |
3931
c79b98085096
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3785
diff
changeset
|
40 /** 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
|
41 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
|
42 |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
43 |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
44 @Override |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
45 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
|
46 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
|
47 } |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
48 |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
49 @Override |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
50 protected void appendItems( |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
51 Artifact artifact, |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
52 ElementCreator creator, |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
53 String name, |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
54 CallContext context, |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
55 Element select |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
56 ) { |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
57 try { |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
58 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
|
59 |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
60 getOptions(artifact, name, context, creator, select); |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
61 } |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
62 catch (IllegalArgumentException iae) { |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
63 logger.warn("Illegal argument", iae); |
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 } |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
66 |
2709
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
67 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
|
68 Artifact artifact, |
3649
33bfc01410fb
Merged revisions 5375,5379,5382 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3452
diff
changeset
|
69 String parameterName, |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
70 CallContext context, |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
71 ElementCreator creator, |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
72 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
|
73 ) |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
74 throws IllegalArgumentException |
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 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
|
77 |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
78 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
|
79 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
|
80 "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
|
81 } |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
82 |
5867
59ff03ff48f1
River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5865
diff
changeset
|
83 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
|
84 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
|
85 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
|
86 |
150dcdefeb7d
Only offer soundings that fit to the current km range in MINFO bed height workflow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2712
diff
changeset
|
87 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
|
88 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
|
89 |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
90 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
|
91 |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
92 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
|
93 |
3452
200e70f31f6f
Removed some superfluous casts.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3087
diff
changeset
|
94 return kvp.toArray(new KVP[kvp.size()]); |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
95 } |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
96 |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
97 |
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
|
98 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
|
99 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
|
100 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
|
101 double kmHi, |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
102 ElementCreator creator, |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
103 Element select, |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
104 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
|
105 ) { |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
106 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
|
107 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
|
108 |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
109 if (singles != null) { |
3782
5d0419882382
Added missing translation of minfo state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3649
diff
changeset
|
110 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
|
111 |
3782
5d0419882382
Added missing translation of minfo state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3649
diff
changeset
|
112 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
|
113 |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
114 NumberFormat nf = Formatter.getCalculationKm(context.getMeta()); |
3782
5d0419882382
Added missing translation of minfo state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3649
diff
changeset
|
115 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
|
116 BedHeightSingle s = singles.get(i); |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
117 |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
118 String id = PREFIX_SINGLE + s.getId(); |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
119 String value = s.getDescription(); |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
120 |
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
|
121 Integer year = s.getYear(); |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
122 Element item = creator.create("item"); |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
123 creator.addAttr(item, "label", value, true); |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
124 creator.addAttr(item, "value", id, true); |
7875
b320826b1183
Changed column names in sounding select state ui.
Raimund Renkert <rrenkert@intevation.de>
parents:
7833
diff
changeset
|
125 creator.addAttr(item, "analyzed_range", |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
126 nf.format(s.getRange().getA()) + |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
127 " - " + |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
128 nf.format(s.getRange().getB())); |
7875
b320826b1183
Changed column names in sounding select state ui.
Raimund Renkert <rrenkert@intevation.de>
parents:
7833
diff
changeset
|
129 creator.addAttr(item, "year", |
b320826b1183
Changed column names in sounding select state ui.
Raimund Renkert <rrenkert@intevation.de>
parents:
7833
diff
changeset
|
130 year != null ? s.getYear().toString() : ""); |
b320826b1183
Changed column names in sounding select state ui.
Raimund Renkert <rrenkert@intevation.de>
parents:
7833
diff
changeset
|
131 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
|
132 select.appendChild(item); |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
133 } |
2709
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
134 } |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
135 logger.debug("appended singles"); |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
136 logger.debug(XMLUtils.toString(select)); |
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 @Override |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
140 protected Element createStaticData( |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
141 D4EArtifact flys, |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
142 ElementCreator creator, |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
143 CallContext cc, |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
144 String name, |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
145 String value, |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
146 String type |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
147 ) { |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
148 Element data = creator.create("data"); |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
149 creator.addAttr(data, "name", name, true); |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
150 creator.addAttr(data, "type", type, true); |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
151 creator.addAttr(data, "label", |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
152 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
|
153 |
7823
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
154 String[] values = value.split(";"); |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
155 |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
156 for (String val: values) { |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
157 Element item = creator.create("item"); |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
158 creator.addAttr(item, "value", val, true); |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
159 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
|
160 |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
161 data.appendChild(item); |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
162 } |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
163 |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
164 return data; |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
165 } |
c053b2d813f9
Add additional data in soundigs select state.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
166 |
2709
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
167 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
|
168 CallContext cc, |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
169 String parameterName, |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
170 String value |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
171 ) throws IllegalArgumentException |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
172 { |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
173 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
|
174 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
|
175 "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
|
176 } |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
177 |
2712
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
178 if (value.indexOf(PREFIX_SINGLE) >= 0) { |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
179 return getLabelForSingle(cc, value); |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
180 } |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
181 return value; |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
182 } |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
183 |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
184 |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
185 protected String getLabelForSingle(CallContext cc, String value) { |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
186 String id = value.replace(PREFIX_SINGLE, ""); |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
187 try { |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
188 BedHeightSingle s = BedHeightSingle.getBedHeightSingleById( |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
189 Integer.parseInt(id)); |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
190 |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
191 if (s != null) { |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
192 return s.getDescription(); |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
193 } |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
194 else { |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
195 return "no value for '" + id + "'"; |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
196 } |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
197 } |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
198 catch (NumberFormatException nfe) { |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
199 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
|
200 } |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
201 |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
202 return "n.A."; |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
203 } |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
204 |
ed612b85fb6d
Implemented SoundingsSelect.getOptions() and SoundingsSelect.getLabelFor().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2709
diff
changeset
|
205 |
2709
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
206 /** |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
207 * 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
|
208 * state. |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
209 * |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
210 * @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
|
211 * |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
212 * @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
|
213 * <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
|
214 */ |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
215 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
|
216 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
|
217 return false; |
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 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
|
220 return true; |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
221 } |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
222 else { |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
223 return false; |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
224 } |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
225 } |
cd6bcca17de6
Added states and improved transition model for MINFO middle bed height calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
226 } |
3083
4bd3d8bbb60c
Added missing vim lines.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2716
diff
changeset
|
227 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |