Mercurial > dive4elements > river
annotate flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/WQSelect.java @ 2089:0da8874bd378
Added initial state to map artifact to be able to advance and step back.
The map artifact overrides describe() to have the complete UI information in the
describe response document.
flys-artifacts/trunk@3613 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Fri, 06 Jan 2012 12:02:10 +0000 |
parents | 48fd8b06bce5 |
children | d548e2e13524 |
rev | line source |
---|---|
137
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.flys.artifacts.states; |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
2 |
1743
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
3 import java.text.NumberFormat; |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
4 |
379
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
5 import gnu.trove.TDoubleArrayList; |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
6 |
137
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
7 import org.apache.log4j.Logger; |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
8 |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
9 import org.w3c.dom.Element; |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
10 |
313
89bd0417418f
The location/distance state now writes default values into DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
137
diff
changeset
|
11 import de.intevation.artifacts.Artifact; |
137
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
12 import de.intevation.artifacts.CallContext; |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
13 |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
14 import de.intevation.artifacts.common.utils.XMLUtils; |
1743
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
15 import de.intevation.artifacts.common.utils.XMLUtils.ElementCreator; |
137
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
16 |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
17 import de.intevation.artifactdatabase.ProtocolUtils; |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
18 import de.intevation.artifactdatabase.data.StateData; |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
19 |
319
d8558dd64152
The WQ state fills the DESCRIBE with default values for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
20 import de.intevation.flys.model.Gauge; |
d8558dd64152
The WQ state fills the DESCRIBE with default values for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
21 import de.intevation.flys.model.River; |
d8558dd64152
The WQ state fills the DESCRIBE with default values for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
22 import de.intevation.flys.model.Wst; |
d8558dd64152
The WQ state fills the DESCRIBE with default values for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
23 |
1743
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
24 import de.intevation.flys.artifacts.FLYSArtifact; |
1055
61c051e53f9b
Moved WINFO specific stuff from FLYS into WINFO artifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1050
diff
changeset
|
25 import de.intevation.flys.artifacts.WINFOArtifact; |
61c051e53f9b
Moved WINFO specific stuff from FLYS into WINFO artifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1050
diff
changeset
|
26 |
319
d8558dd64152
The WQ state fills the DESCRIBE with default values for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
27 import de.intevation.flys.artifacts.model.WstFactory; |
137
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
28 import de.intevation.flys.artifacts.resources.Resources; |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
29 |
1103
e0243627ba62
Use FLYSUtils.getRiver instead of WINFOArtifact.getRiver.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1055
diff
changeset
|
30 import de.intevation.flys.utils.FLYSUtils; |
e0243627ba62
Use FLYSUtils.getRiver instead of WINFOArtifact.getRiver.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1055
diff
changeset
|
31 |
e0243627ba62
Use FLYSUtils.getRiver instead of WINFOArtifact.getRiver.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1055
diff
changeset
|
32 |
137
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
33 /** |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
34 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
35 */ |
921
610d0e0f4f85
#159 Modifications in the transition model to support a state with a kilometer range input only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
660
diff
changeset
|
36 public class WQSelect extends DefaultState { |
137
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
37 |
1691
17648043429f
Cosmetics, docs, annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1103
diff
changeset
|
38 /** The logger used in this class. */ |
137
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
39 private static Logger logger = Logger.getLogger(WQSelect.class); |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
40 |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
41 |
1691
17648043429f
Cosmetics, docs, annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1103
diff
changeset
|
42 /** The default step width for Qs. */ |
137
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
43 public static final String DEFAULT_STEP_Q = "50"; |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
44 |
1691
17648043429f
Cosmetics, docs, annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1103
diff
changeset
|
45 /** The default step width for Qs. */ |
137
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
46 public static final String DEFAULT_STEP_W = "30"; |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
47 |
2059
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
48 /** The max number of steps for Qs and Ws. */ |
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
49 public static final int MAX_STEPS = 30; |
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
50 |
322
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
51 /** The name of the 'mode' field. */ |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
52 public static final String WQ_MODE = "wq_mode"; |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
53 |
1743
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
54 /** Them name fo the 'free' field. */ |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
55 public static final String WQ_FREE = "wq_free"; |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
56 |
1691
17648043429f
Cosmetics, docs, annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1103
diff
changeset
|
57 /** The name of the 'selection' field. */ |
379
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
58 public static final String WQ_SELECTION = "wq_selection"; |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
59 |
322
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
60 /** The name of the 'from' field. */ |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
61 public static final String WQ_FROM = "wq_from"; |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
62 |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
63 /** The name of the 'to' field. */ |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
64 public static final String WQ_TO = "wq_to"; |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
65 |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
66 /** The name of the 'step' field. */ |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
67 public static final String WQ_STEP = "wq_step"; |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
68 |
379
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
69 /** The name of the 'single' field. */ |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
70 public static final String WQ_SINGLE = "wq_single"; |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
71 |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
72 |
137
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
73 /** |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
74 * The default constructor that initializes an empty State object. |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
75 */ |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
76 public WQSelect() { |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
77 } |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
78 |
1743
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
79 |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
80 @Override |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
81 protected Element createStaticData( |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
82 FLYSArtifact flys, |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
83 ElementCreator creator, |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
84 CallContext cc, |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
85 String name, |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
86 String value, |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
87 String type |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
88 ) { |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
89 if (!name.equals(WQ_SINGLE)) { |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
90 return super.createStaticData(flys, creator, cc, name, value, type); |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
91 } |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
92 |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
93 String mode = flys.getDataAsString(WQ_MODE); |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
94 String free = flys.getDataAsString(WQ_FREE); |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
95 |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
96 WINFOArtifact winfo = (WINFOArtifact) flys; |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
97 |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
98 Element dataElement = creator.create("data"); |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
99 creator.addAttr(dataElement, "name", name, true); |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
100 creator.addAttr(dataElement, "type", type, true); |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
101 |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
102 Element itemElement = creator.create("item"); |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
103 creator.addAttr(itemElement, "value", value, true); |
2025
6762f54b23b1
Bugfix: format all Ws and Qs in WQSelect State.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1743
diff
changeset
|
104 |
6762f54b23b1
Bugfix: format all Ws and Qs in WQSelect State.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1743
diff
changeset
|
105 String label = ""; |
6762f54b23b1
Bugfix: format all Ws and Qs in WQSelect State.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1743
diff
changeset
|
106 |
6762f54b23b1
Bugfix: format all Ws and Qs in WQSelect State.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1743
diff
changeset
|
107 if (mode == null || mode.equals("W") || Boolean.valueOf(free)) { |
6762f54b23b1
Bugfix: format all Ws and Qs in WQSelect State.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1743
diff
changeset
|
108 label = getLabel(winfo, cc, value); |
6762f54b23b1
Bugfix: format all Ws and Qs in WQSelect State.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1743
diff
changeset
|
109 } |
6762f54b23b1
Bugfix: format all Ws and Qs in WQSelect State.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1743
diff
changeset
|
110 else { |
6762f54b23b1
Bugfix: format all Ws and Qs in WQSelect State.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1743
diff
changeset
|
111 label = getSpecialLabel(winfo, cc, value); |
6762f54b23b1
Bugfix: format all Ws and Qs in WQSelect State.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1743
diff
changeset
|
112 } |
6762f54b23b1
Bugfix: format all Ws and Qs in WQSelect State.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1743
diff
changeset
|
113 |
6762f54b23b1
Bugfix: format all Ws and Qs in WQSelect State.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1743
diff
changeset
|
114 creator.addAttr(itemElement, "label", label, true); |
1743
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
115 |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
116 dataElement.appendChild(itemElement); |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
117 |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
118 return dataElement; |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
119 } |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
120 |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
121 |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
122 protected static String getLabel( |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
123 WINFOArtifact winfo, |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
124 CallContext cc, |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
125 String raw |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
126 ) { |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
127 String[] values = raw.split(" "); |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
128 String label = null; |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
129 |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
130 NumberFormat nf = NumberFormat.getInstance( |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
131 Resources.getLocale(cc.getMeta())); |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
132 |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
133 for (String value: values) { |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
134 try { |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
135 double v = Double.valueOf(value.trim()); |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
136 |
2025
6762f54b23b1
Bugfix: format all Ws and Qs in WQSelect State.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1743
diff
changeset
|
137 String formatted = nf.format(v); |
6762f54b23b1
Bugfix: format all Ws and Qs in WQSelect State.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1743
diff
changeset
|
138 |
2030
355495661a1c
Changed the seperator character between Ws and Qs in the Artifact's DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2025
diff
changeset
|
139 label = label != null ? label + ";" + formatted : formatted; |
2025
6762f54b23b1
Bugfix: format all Ws and Qs in WQSelect State.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1743
diff
changeset
|
140 } |
6762f54b23b1
Bugfix: format all Ws and Qs in WQSelect State.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1743
diff
changeset
|
141 catch (NumberFormatException nfe) { |
6762f54b23b1
Bugfix: format all Ws and Qs in WQSelect State.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1743
diff
changeset
|
142 // do nothing here |
6762f54b23b1
Bugfix: format all Ws and Qs in WQSelect State.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1743
diff
changeset
|
143 } |
6762f54b23b1
Bugfix: format all Ws and Qs in WQSelect State.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1743
diff
changeset
|
144 } |
6762f54b23b1
Bugfix: format all Ws and Qs in WQSelect State.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1743
diff
changeset
|
145 |
6762f54b23b1
Bugfix: format all Ws and Qs in WQSelect State.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1743
diff
changeset
|
146 return label; |
6762f54b23b1
Bugfix: format all Ws and Qs in WQSelect State.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1743
diff
changeset
|
147 } |
6762f54b23b1
Bugfix: format all Ws and Qs in WQSelect State.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1743
diff
changeset
|
148 |
6762f54b23b1
Bugfix: format all Ws and Qs in WQSelect State.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1743
diff
changeset
|
149 |
6762f54b23b1
Bugfix: format all Ws and Qs in WQSelect State.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1743
diff
changeset
|
150 protected static String getSpecialLabel( |
6762f54b23b1
Bugfix: format all Ws and Qs in WQSelect State.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1743
diff
changeset
|
151 WINFOArtifact winfo, |
6762f54b23b1
Bugfix: format all Ws and Qs in WQSelect State.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1743
diff
changeset
|
152 CallContext cc, |
6762f54b23b1
Bugfix: format all Ws and Qs in WQSelect State.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1743
diff
changeset
|
153 String raw |
6762f54b23b1
Bugfix: format all Ws and Qs in WQSelect State.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1743
diff
changeset
|
154 ) { |
6762f54b23b1
Bugfix: format all Ws and Qs in WQSelect State.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1743
diff
changeset
|
155 String[] values = raw.split(" "); |
6762f54b23b1
Bugfix: format all Ws and Qs in WQSelect State.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1743
diff
changeset
|
156 String label = null; |
6762f54b23b1
Bugfix: format all Ws and Qs in WQSelect State.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1743
diff
changeset
|
157 |
6762f54b23b1
Bugfix: format all Ws and Qs in WQSelect State.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1743
diff
changeset
|
158 NumberFormat nf = NumberFormat.getInstance( |
6762f54b23b1
Bugfix: format all Ws and Qs in WQSelect State.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1743
diff
changeset
|
159 Resources.getLocale(cc.getMeta())); |
6762f54b23b1
Bugfix: format all Ws and Qs in WQSelect State.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1743
diff
changeset
|
160 |
6762f54b23b1
Bugfix: format all Ws and Qs in WQSelect State.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1743
diff
changeset
|
161 for (String value: values) { |
6762f54b23b1
Bugfix: format all Ws and Qs in WQSelect State.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1743
diff
changeset
|
162 try { |
6762f54b23b1
Bugfix: format all Ws and Qs in WQSelect State.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1743
diff
changeset
|
163 double v = Double.valueOf(value.trim()); |
6762f54b23b1
Bugfix: format all Ws and Qs in WQSelect State.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1743
diff
changeset
|
164 |
1743
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
165 String tmp = nf.format(v); |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
166 String mv = FLYSUtils.getNamedMainValue(winfo.getGauge(),v); |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
167 |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
168 if (mv != null && mv.length() > 0) { |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
169 String add = mv + ": " + tmp; |
2025
6762f54b23b1
Bugfix: format all Ws and Qs in WQSelect State.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1743
diff
changeset
|
170 logger.debug("Add main value: '" + mv + "'"); |
2030
355495661a1c
Changed the seperator character between Ws and Qs in the Artifact's DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2025
diff
changeset
|
171 label = label != null ? label + ";" + add : add; |
1743
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
172 } |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
173 else { |
2025
6762f54b23b1
Bugfix: format all Ws and Qs in WQSelect State.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1743
diff
changeset
|
174 logger.debug("Add non main value: '" + tmp + "'"); |
2030
355495661a1c
Changed the seperator character between Ws and Qs in the Artifact's DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2025
diff
changeset
|
175 label = label != null ? label + ";" + tmp : tmp; |
1743
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
176 } |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
177 } |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
178 catch (NumberFormatException nfe) { |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
179 // do nothing here |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
180 } |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
181 } |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
182 |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
183 return label; |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
184 } |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
185 |
8a2cbf947395
Prepared the DESCRIBE document of a WINFO Artifact so that named main values for Qs are displayed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1691
diff
changeset
|
186 |
1691
17648043429f
Cosmetics, docs, annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1103
diff
changeset
|
187 @Override |
137
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
188 protected Element createData( |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
189 XMLUtils.ElementCreator cr, |
313
89bd0417418f
The location/distance state now writes default values into DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
137
diff
changeset
|
190 Artifact artifact, |
137
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
191 StateData data, |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
192 CallContext context) |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
193 { |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
194 Element select = ProtocolUtils.createArtNode( |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
195 cr, "select", null, null); |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
196 |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
197 cr.addAttr(select, "name", data.getName(), true); |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
198 |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
199 Element label = ProtocolUtils.createArtNode( |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
200 cr, "label", null, null); |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
201 |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
202 Element choices = ProtocolUtils.createArtNode( |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
203 cr, "choices", null, null); |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
204 |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
205 label.setTextContent(Resources.getMsg( |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
206 context.getMeta(), |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
207 data.getName(), |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
208 data.getName())); |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
209 |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
210 select.appendChild(label); |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
211 |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
212 return select; |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
213 } |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
214 |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
215 |
660
627be3ca1ab6
code clean up in states
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
631
diff
changeset
|
216 @Override |
137
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
217 protected Element[] createItems( |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
218 XMLUtils.ElementCreator cr, |
313
89bd0417418f
The location/distance state now writes default values into DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
137
diff
changeset
|
219 Artifact artifact, |
137
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
220 String name, |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
221 CallContext context) |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
222 { |
2062
ed6c6d437875
Added min/max values for free Qs to the Artifact's DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2061
diff
changeset
|
223 double[] minmaxW = determineMinMaxW(artifact); |
ed6c6d437875
Added min/max values for free Qs to the Artifact's DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2061
diff
changeset
|
224 double[] minmaxQ = determineMinMaxQAtGauge(artifact); |
ed6c6d437875
Added min/max values for free Qs to the Artifact's DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2061
diff
changeset
|
225 double[] minmaxQFree = determineMinMaxQ(artifact); |
137
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
226 |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
227 if (name.equals("wq_from")) { |
2062
ed6c6d437875
Added min/max values for free Qs to the Artifact's DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2061
diff
changeset
|
228 Element minW = createItem(cr, new String[] { |
ed6c6d437875
Added min/max values for free Qs to the Artifact's DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2061
diff
changeset
|
229 "minW", |
ed6c6d437875
Added min/max values for free Qs to the Artifact's DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2061
diff
changeset
|
230 String.valueOf(minmaxW[0])}); |
ed6c6d437875
Added min/max values for free Qs to the Artifact's DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2061
diff
changeset
|
231 |
ed6c6d437875
Added min/max values for free Qs to the Artifact's DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2061
diff
changeset
|
232 Element minQ = createItem(cr, new String[] { |
ed6c6d437875
Added min/max values for free Qs to the Artifact's DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2061
diff
changeset
|
233 "minQ", |
ed6c6d437875
Added min/max values for free Qs to the Artifact's DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2061
diff
changeset
|
234 String.valueOf(minmaxQ[0])}); |
ed6c6d437875
Added min/max values for free Qs to the Artifact's DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2061
diff
changeset
|
235 |
ed6c6d437875
Added min/max values for free Qs to the Artifact's DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2061
diff
changeset
|
236 Element minQFree = createItem(cr, new String[] { |
ed6c6d437875
Added min/max values for free Qs to the Artifact's DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2061
diff
changeset
|
237 "minQFree", |
ed6c6d437875
Added min/max values for free Qs to the Artifact's DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2061
diff
changeset
|
238 String.valueOf(minmaxQFree[0])}); |
ed6c6d437875
Added min/max values for free Qs to the Artifact's DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2061
diff
changeset
|
239 |
ed6c6d437875
Added min/max values for free Qs to the Artifact's DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2061
diff
changeset
|
240 return new Element[] { minW, minQ, minQFree }; |
137
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
241 } |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
242 else if (name.equals("wq_to")) { |
2062
ed6c6d437875
Added min/max values for free Qs to the Artifact's DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2061
diff
changeset
|
243 Element maxW = createItem(cr, new String[] { |
ed6c6d437875
Added min/max values for free Qs to the Artifact's DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2061
diff
changeset
|
244 "maxW", |
ed6c6d437875
Added min/max values for free Qs to the Artifact's DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2061
diff
changeset
|
245 String.valueOf(minmaxW[1])}); |
ed6c6d437875
Added min/max values for free Qs to the Artifact's DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2061
diff
changeset
|
246 |
ed6c6d437875
Added min/max values for free Qs to the Artifact's DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2061
diff
changeset
|
247 Element maxQ = createItem(cr, new String[] { |
ed6c6d437875
Added min/max values for free Qs to the Artifact's DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2061
diff
changeset
|
248 "maxQ", |
ed6c6d437875
Added min/max values for free Qs to the Artifact's DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2061
diff
changeset
|
249 String.valueOf(minmaxQ[1])}); |
ed6c6d437875
Added min/max values for free Qs to the Artifact's DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2061
diff
changeset
|
250 |
ed6c6d437875
Added min/max values for free Qs to the Artifact's DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2061
diff
changeset
|
251 Element maxQFree = createItem(cr, new String[] { |
ed6c6d437875
Added min/max values for free Qs to the Artifact's DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2061
diff
changeset
|
252 "maxQFree", |
ed6c6d437875
Added min/max values for free Qs to the Artifact's DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2061
diff
changeset
|
253 String.valueOf(minmaxQFree[1])}); |
ed6c6d437875
Added min/max values for free Qs to the Artifact's DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2061
diff
changeset
|
254 |
ed6c6d437875
Added min/max values for free Qs to the Artifact's DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2061
diff
changeset
|
255 return new Element[] { maxW, maxQ, maxQFree }; |
137
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
256 } |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
257 else { |
660
627be3ca1ab6
code clean up in states
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
631
diff
changeset
|
258 Element stepW = createItem( |
2059
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
259 cr, new String[] { |
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
260 "stepW", |
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
261 String.valueOf(getStepsW(minmaxW[0], minmaxW[1]))}); |
660
627be3ca1ab6
code clean up in states
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
631
diff
changeset
|
262 Element stepQ = createItem( |
2059
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
263 cr, new String[] { |
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
264 "stepQ", |
2062
ed6c6d437875
Added min/max values for free Qs to the Artifact's DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2061
diff
changeset
|
265 String.valueOf(getStepsQ(minmaxQ[0], minmaxQ[1]))}); |
ed6c6d437875
Added min/max values for free Qs to the Artifact's DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2061
diff
changeset
|
266 Element stepQFree = createItem( |
ed6c6d437875
Added min/max values for free Qs to the Artifact's DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2061
diff
changeset
|
267 cr, new String[] { |
ed6c6d437875
Added min/max values for free Qs to the Artifact's DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2061
diff
changeset
|
268 "stepQFree", |
ed6c6d437875
Added min/max values for free Qs to the Artifact's DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2061
diff
changeset
|
269 String.valueOf(getStepsQ(minmaxQFree[0], minmaxQFree[1]))}); |
ed6c6d437875
Added min/max values for free Qs to the Artifact's DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2061
diff
changeset
|
270 |
ed6c6d437875
Added min/max values for free Qs to the Artifact's DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2061
diff
changeset
|
271 return new Element[] { stepW, stepQ, stepQFree }; |
137
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
272 } |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
273 } |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
274 |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
275 |
2059
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
276 protected static double getStepsW(double min, double max) { |
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
277 double diff = min < max ? max - min : min - max; |
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
278 double step = diff / MAX_STEPS; |
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
279 |
2061
87f9153bb7ca
Fixed order to determine correct step width of Qs and Ws.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2060
diff
changeset
|
280 if (step < 10) { |
87f9153bb7ca
Fixed order to determine correct step width of Qs and Ws.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2060
diff
changeset
|
281 return getSteps(step, 1); |
2059
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
282 } |
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
283 else if (step < 100) { |
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
284 return getSteps(step, 10); |
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
285 } |
2061
87f9153bb7ca
Fixed order to determine correct step width of Qs and Ws.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2060
diff
changeset
|
286 else if (step < 1000) { |
87f9153bb7ca
Fixed order to determine correct step width of Qs and Ws.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2060
diff
changeset
|
287 return getSteps(step, 100); |
2059
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
288 } |
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
289 else { |
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
290 return step; |
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
291 } |
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
292 } |
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
293 |
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
294 |
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
295 protected static double getStepsQ(double min, double max) { |
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
296 double diff = min < max ? max - min : min - max; |
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
297 double step = diff / MAX_STEPS; |
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
298 |
2061
87f9153bb7ca
Fixed order to determine correct step width of Qs and Ws.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2060
diff
changeset
|
299 if (step < 10) { |
87f9153bb7ca
Fixed order to determine correct step width of Qs and Ws.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2060
diff
changeset
|
300 return getSteps(step, 1); |
2059
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
301 } |
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
302 else if (step < 100) { |
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
303 return getSteps(step, 10); |
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
304 } |
2061
87f9153bb7ca
Fixed order to determine correct step width of Qs and Ws.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2060
diff
changeset
|
305 else if (step < 1000) { |
87f9153bb7ca
Fixed order to determine correct step width of Qs and Ws.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2060
diff
changeset
|
306 return getSteps(step, 100); |
2059
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
307 } |
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
308 else { |
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
309 return step; |
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
310 } |
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
311 } |
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
312 |
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
313 |
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
314 protected static double getSteps(double steps, double factor) { |
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
315 int fac = (int) steps / 10; |
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
316 double diff = steps - fac * 10; |
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
317 |
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
318 if (diff == 0) { |
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
319 return steps; |
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
320 } |
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
321 |
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
322 return 10d * (fac + 1); |
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
323 } |
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
324 |
522826b41ffa
Compute better step width for W/Q input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2030
diff
changeset
|
325 |
137
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
326 protected Element createItem(XMLUtils.ElementCreator cr, Object obj) { |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
327 Element item = ProtocolUtils.createArtNode(cr, "item", null, null); |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
328 Element label = ProtocolUtils.createArtNode(cr, "label", null, null); |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
329 Element value = ProtocolUtils.createArtNode(cr, "value", null, null); |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
330 |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
331 String[] arr = (String[]) obj; |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
332 |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
333 label.setTextContent(arr[0]); |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
334 value.setTextContent(arr[1]); |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
335 |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
336 item.appendChild(label); |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
337 item.appendChild(value); |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
338 |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
339 return item; |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
340 } |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
341 |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
342 |
660
627be3ca1ab6
code clean up in states
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
631
diff
changeset
|
343 @Override |
137
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
344 protected String getUIProvider() { |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
345 return "wq_panel"; |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
346 } |
319
d8558dd64152
The WQ state fills the DESCRIBE with default values for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
347 |
d8558dd64152
The WQ state fills the DESCRIBE with default values for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
348 |
d8558dd64152
The WQ state fills the DESCRIBE with default values for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
349 /** |
d8558dd64152
The WQ state fills the DESCRIBE with default values for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
350 * Determines the min and max W value for the current gauge. If no min and |
d8558dd64152
The WQ state fills the DESCRIBE with default values for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
351 * max values could be determined, this method will return |
d8558dd64152
The WQ state fills the DESCRIBE with default values for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
352 * [Double.MIN_VALUE, Double.MAX_VALUE]. |
d8558dd64152
The WQ state fills the DESCRIBE with default values for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
353 * |
d8558dd64152
The WQ state fills the DESCRIBE with default values for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
354 * @param artifact The FLYSArtifact. |
d8558dd64152
The WQ state fills the DESCRIBE with default values for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
355 * |
d8558dd64152
The WQ state fills the DESCRIBE with default values for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
356 * @return the min and max W values for the current gauge. |
d8558dd64152
The WQ state fills the DESCRIBE with default values for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
357 */ |
d8558dd64152
The WQ state fills the DESCRIBE with default values for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
358 protected double[] determineMinMaxW(Artifact artifact) { |
d8558dd64152
The WQ state fills the DESCRIBE with default values for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
359 logger.debug("WQSelect.determineCurrentGauge"); |
d8558dd64152
The WQ state fills the DESCRIBE with default values for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
360 |
1055
61c051e53f9b
Moved WINFO specific stuff from FLYS into WINFO artifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1050
diff
changeset
|
361 Gauge gauge = ((WINFOArtifact) artifact).getGauge(); |
320
a8e7c351bdf1
The getGauge() method of the FLYSArtifact returns the first gauge based on the given stationing now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
319
diff
changeset
|
362 double[] minmaxW = gauge != null ? gauge.determineMinMaxW() : null; |
319
d8558dd64152
The WQ state fills the DESCRIBE with default values for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
363 |
d8558dd64152
The WQ state fills the DESCRIBE with default values for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
364 double minW = minmaxW != null ? minmaxW[0] : Double.MIN_VALUE; |
d8558dd64152
The WQ state fills the DESCRIBE with default values for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
365 double maxW = minmaxW != null ? minmaxW[1] : Double.MAX_VALUE; |
d8558dd64152
The WQ state fills the DESCRIBE with default values for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
366 |
d8558dd64152
The WQ state fills the DESCRIBE with default values for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
367 return new double[] { minW, maxW }; |
d8558dd64152
The WQ state fills the DESCRIBE with default values for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
368 } |
d8558dd64152
The WQ state fills the DESCRIBE with default values for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
369 |
d8558dd64152
The WQ state fills the DESCRIBE with default values for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
370 |
d8558dd64152
The WQ state fills the DESCRIBE with default values for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
371 /** |
d8558dd64152
The WQ state fills the DESCRIBE with default values for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
372 * Determines the min and max Q value for the current gauge. If no min and |
d8558dd64152
The WQ state fills the DESCRIBE with default values for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
373 * max values could be determined, this method will return |
d8558dd64152
The WQ state fills the DESCRIBE with default values for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
374 * [Double.MIN_VALUE, Double.MAX_VALUE]. |
d8558dd64152
The WQ state fills the DESCRIBE with default values for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
375 * |
d8558dd64152
The WQ state fills the DESCRIBE with default values for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
376 * @param artifact The FLYSArtifact. |
d8558dd64152
The WQ state fills the DESCRIBE with default values for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
377 * |
d8558dd64152
The WQ state fills the DESCRIBE with default values for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
378 * @return the min and max Q values for the current gauge. |
d8558dd64152
The WQ state fills the DESCRIBE with default values for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
379 */ |
2060
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
380 protected double[] determineMinMaxQAtGauge(Artifact artifact) { |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
381 logger.debug("WQSelect.determineMinMaxQAtGauge"); |
319
d8558dd64152
The WQ state fills the DESCRIBE with default values for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
382 |
1055
61c051e53f9b
Moved WINFO specific stuff from FLYS into WINFO artifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1050
diff
changeset
|
383 WINFOArtifact flysArtifact = (WINFOArtifact) artifact; |
319
d8558dd64152
The WQ state fills the DESCRIBE with default values for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
384 |
1103
e0243627ba62
Use FLYSUtils.getRiver instead of WINFOArtifact.getRiver.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1055
diff
changeset
|
385 River river = FLYSUtils.getRiver(flysArtifact); |
e0243627ba62
Use FLYSUtils.getRiver instead of WINFOArtifact.getRiver.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1055
diff
changeset
|
386 Gauge gauge = flysArtifact.getGauge(); |
e0243627ba62
Use FLYSUtils.getRiver instead of WINFOArtifact.getRiver.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1055
diff
changeset
|
387 Wst wst = WstFactory.getWst(river); |
319
d8558dd64152
The WQ state fills the DESCRIBE with default values for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
388 |
320
a8e7c351bdf1
The getGauge() method of the FLYSArtifact returns the first gauge based on the given stationing now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
319
diff
changeset
|
389 double[] minmaxQ = gauge != null |
a8e7c351bdf1
The getGauge() method of the FLYSArtifact returns the first gauge based on the given stationing now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
319
diff
changeset
|
390 ? wst.determineMinMaxQ(gauge.getRange()) |
a8e7c351bdf1
The getGauge() method of the FLYSArtifact returns the first gauge based on the given stationing now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
319
diff
changeset
|
391 : null; |
319
d8558dd64152
The WQ state fills the DESCRIBE with default values for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
392 |
d8558dd64152
The WQ state fills the DESCRIBE with default values for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
393 double minQ = minmaxQ != null ? minmaxQ[0] : Double.MIN_VALUE; |
d8558dd64152
The WQ state fills the DESCRIBE with default values for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
394 double maxQ = minmaxQ != null ? minmaxQ[1] : Double.MAX_VALUE; |
d8558dd64152
The WQ state fills the DESCRIBE with default values for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
395 |
d8558dd64152
The WQ state fills the DESCRIBE with default values for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
396 return new double[] { minQ, maxQ }; |
d8558dd64152
The WQ state fills the DESCRIBE with default values for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
397 } |
322
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
398 |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
399 |
2060
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
400 /** |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
401 * Determines the min and max Q value for the current kilometer range. If no |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
402 * min and max values could be determined, this method will return |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
403 * |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
404 * @param artifact The FLYSArtifact. |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
405 * |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
406 * @return the min and max Q values for the current kilometer range. |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
407 */ |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
408 protected double[] determineMinMaxQ(Artifact artifact) { |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
409 logger.debug("WQSelect.determineMinMaxQ"); |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
410 |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
411 FLYSArtifact flys = (FLYSArtifact) artifact; |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
412 double[] kms = FLYSUtils.getKmRange(flys); |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
413 |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
414 if (kms == null || kms.length == 0) { |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
415 return new double[] { Double.MIN_VALUE, Double.MAX_VALUE }; |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
416 } |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
417 |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
418 River river = FLYSUtils.getRiver(flys); |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
419 Wst wst = WstFactory.getWst(river); |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
420 |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
421 logger.debug("User defined KMs: " + kms[0] + " - " + kms[kms.length-1]); |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
422 |
2070
48fd8b06bce5
#104 Use Wst.determineMinMaxQFree() to determine the min/max Qs at a given kilometer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2062
diff
changeset
|
423 double[] minmaxQ = wst.determineMinMaxQFree(kms[0]); |
2060
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
424 |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
425 return minmaxQ != null |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
426 ? minmaxQ |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
427 : new double[] { Double.MIN_VALUE, Double.MAX_VALUE }; |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
428 } |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
429 |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
430 |
322
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
431 @Override |
1050
eccf966fb677
State engine: Removed CallContext from state validation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
921
diff
changeset
|
432 public boolean validate(Artifact artifact) |
322
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
433 throws IllegalArgumentException |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
434 { |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
435 logger.debug("WQSelect.validate"); |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
436 |
1055
61c051e53f9b
Moved WINFO specific stuff from FLYS into WINFO artifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1050
diff
changeset
|
437 WINFOArtifact flys = (WINFOArtifact) artifact; |
322
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
438 |
624
929137ee8154
ISSUE-62 (part I/II) States are no longer filled with data - if a state needs user input, it needs to query the owner artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
379
diff
changeset
|
439 StateData data = getData(flys, WQ_SELECTION); |
929137ee8154
ISSUE-62 (part I/II) States are no longer filled with data - if a state needs user input, it needs to query the owner artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
379
diff
changeset
|
440 String selectionMode = data != null ? (String) data.getValue() : null; |
379
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
441 |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
442 if (selectionMode == null || selectionMode.equals("single")) { |
1050
eccf966fb677
State engine: Removed CallContext from state validation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
921
diff
changeset
|
443 return validateSingle(artifact); |
379
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
444 } |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
445 else { |
1050
eccf966fb677
State engine: Removed CallContext from state validation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
921
diff
changeset
|
446 return validateRange(artifact); |
379
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
447 } |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
448 } |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
449 |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
450 |
921
610d0e0f4f85
#159 Modifications in the transition model to support a state with a kilometer range input only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
660
diff
changeset
|
451 protected boolean validateBounds( |
610d0e0f4f85
#159 Modifications in the transition model to support a state with a kilometer range input only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
660
diff
changeset
|
452 double fromValid, double toValid, |
610d0e0f4f85
#159 Modifications in the transition model to support a state with a kilometer range input only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
660
diff
changeset
|
453 double from, double to, double step) |
610d0e0f4f85
#159 Modifications in the transition model to support a state with a kilometer range input only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
660
diff
changeset
|
454 throws IllegalArgumentException |
610d0e0f4f85
#159 Modifications in the transition model to support a state with a kilometer range input only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
660
diff
changeset
|
455 { |
610d0e0f4f85
#159 Modifications in the transition model to support a state with a kilometer range input only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
660
diff
changeset
|
456 logger.debug("RangeState.validateRange"); |
610d0e0f4f85
#159 Modifications in the transition model to support a state with a kilometer range input only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
660
diff
changeset
|
457 |
610d0e0f4f85
#159 Modifications in the transition model to support a state with a kilometer range input only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
660
diff
changeset
|
458 if (from < fromValid) { |
610d0e0f4f85
#159 Modifications in the transition model to support a state with a kilometer range input only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
660
diff
changeset
|
459 logger.error( |
610d0e0f4f85
#159 Modifications in the transition model to support a state with a kilometer range input only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
660
diff
changeset
|
460 "Invalid 'from'. " + from + " is smaller than " + fromValid); |
610d0e0f4f85
#159 Modifications in the transition model to support a state with a kilometer range input only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
660
diff
changeset
|
461 throw new IllegalArgumentException("error_feed_from_out_of_range"); |
610d0e0f4f85
#159 Modifications in the transition model to support a state with a kilometer range input only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
660
diff
changeset
|
462 } |
610d0e0f4f85
#159 Modifications in the transition model to support a state with a kilometer range input only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
660
diff
changeset
|
463 else if (to > toValid) { |
610d0e0f4f85
#159 Modifications in the transition model to support a state with a kilometer range input only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
660
diff
changeset
|
464 logger.error( |
610d0e0f4f85
#159 Modifications in the transition model to support a state with a kilometer range input only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
660
diff
changeset
|
465 "Invalid 'to'. " + to + " is bigger than " + toValid); |
610d0e0f4f85
#159 Modifications in the transition model to support a state with a kilometer range input only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
660
diff
changeset
|
466 throw new IllegalArgumentException("error_feed_to_out_of_range"); |
610d0e0f4f85
#159 Modifications in the transition model to support a state with a kilometer range input only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
660
diff
changeset
|
467 } |
610d0e0f4f85
#159 Modifications in the transition model to support a state with a kilometer range input only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
660
diff
changeset
|
468 |
610d0e0f4f85
#159 Modifications in the transition model to support a state with a kilometer range input only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
660
diff
changeset
|
469 return true; |
610d0e0f4f85
#159 Modifications in the transition model to support a state with a kilometer range input only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
660
diff
changeset
|
470 } |
610d0e0f4f85
#159 Modifications in the transition model to support a state with a kilometer range input only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
660
diff
changeset
|
471 |
610d0e0f4f85
#159 Modifications in the transition model to support a state with a kilometer range input only.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
660
diff
changeset
|
472 |
1050
eccf966fb677
State engine: Removed CallContext from state validation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
921
diff
changeset
|
473 protected boolean validateSingle(Artifact artifact) |
379
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
474 throws IllegalArgumentException |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
475 { |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
476 logger.debug("WQSelect.validateSingle"); |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
477 |
1055
61c051e53f9b
Moved WINFO specific stuff from FLYS into WINFO artifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1050
diff
changeset
|
478 WINFOArtifact flys = (WINFOArtifact) artifact; |
624
929137ee8154
ISSUE-62 (part I/II) States are no longer filled with data - if a state needs user input, it needs to query the owner artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
379
diff
changeset
|
479 StateData data = getData(flys, WQ_SINGLE); |
929137ee8154
ISSUE-62 (part I/II) States are no longer filled with data - if a state needs user input, it needs to query the owner artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
379
diff
changeset
|
480 |
929137ee8154
ISSUE-62 (part I/II) States are no longer filled with data - if a state needs user input, it needs to query the owner artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
379
diff
changeset
|
481 String tmp = data != null ? (String) data.getValue() : null; |
379
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
482 |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
483 if (tmp == null || tmp.length() == 0) { |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
484 throw new IllegalArgumentException("error_empty_state"); |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
485 } |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
486 |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
487 String[] strValues = tmp.split(" "); |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
488 TDoubleArrayList all = new TDoubleArrayList(); |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
489 |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
490 for (String strValue: strValues) { |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
491 try { |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
492 all.add(Double.parseDouble(strValue)); |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
493 } |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
494 catch (NumberFormatException nfe) { |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
495 logger.warn(nfe, nfe); |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
496 } |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
497 } |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
498 |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
499 all.sort(); |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
500 |
2060
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
501 FLYSUtils.WQ_MODE mode = FLYSUtils.getWQMode(flys); |
624
929137ee8154
ISSUE-62 (part I/II) States are no longer filled with data - if a state needs user input, it needs to query the owner artifact.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
379
diff
changeset
|
502 |
379
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
503 logger.debug("WQ Mode: " + mode); |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
504 |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
505 double[] minmax = null; |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
506 |
2060
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
507 if (mode == FLYSUtils.WQ_MODE.WGAUGE) { |
379
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
508 minmax = determineMinMaxW(artifact); |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
509 } |
2060
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
510 else if (mode == FLYSUtils.WQ_MODE.QGAUGE) { |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
511 minmax = determineMinMaxQAtGauge(artifact); |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
512 } |
379
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
513 else { |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
514 minmax = determineMinMaxQ(artifact); |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
515 } |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
516 |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
517 double min = all.get(0); |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
518 double max = all.get(all.size()-1); |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
519 |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
520 logger.debug("Inserted min value = " + min); |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
521 logger.debug("Inserted max value = " + max); |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
522 |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
523 return validateBounds(minmax[0], minmax[1], min, max, 0d); |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
524 } |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
525 |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
526 |
1050
eccf966fb677
State engine: Removed CallContext from state validation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
921
diff
changeset
|
527 protected boolean validateRange(Artifact artifact) |
379
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
528 throws IllegalArgumentException |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
529 { |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
530 logger.debug("WQSelect.validateRange"); |
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
531 |
2060
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
532 WINFOArtifact flys = (WINFOArtifact) artifact; |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
533 FLYSUtils.WQ_MODE mode = FLYSUtils.getWQMode(flys); |
322
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
534 |
2060
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
535 if (mode == null) { |
631
a9af60c84dca
Small bugfixes in the WQ selection state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
624
diff
changeset
|
536 throw new IllegalArgumentException("error_feed_invalid_wq_mode"); |
a9af60c84dca
Small bugfixes in the WQ selection state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
624
diff
changeset
|
537 } |
a9af60c84dca
Small bugfixes in the WQ selection state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
624
diff
changeset
|
538 |
a9af60c84dca
Small bugfixes in the WQ selection state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
624
diff
changeset
|
539 StateData dFrom = flys.getData(WQ_FROM); |
a9af60c84dca
Small bugfixes in the WQ selection state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
624
diff
changeset
|
540 StateData dTo = flys.getData(WQ_TO); |
a9af60c84dca
Small bugfixes in the WQ selection state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
624
diff
changeset
|
541 StateData dStep = flys.getData(WQ_STEP); |
a9af60c84dca
Small bugfixes in the WQ selection state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
624
diff
changeset
|
542 |
a9af60c84dca
Small bugfixes in the WQ selection state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
624
diff
changeset
|
543 String fromStr = dFrom != null ? (String) dFrom.getValue() : null; |
a9af60c84dca
Small bugfixes in the WQ selection state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
624
diff
changeset
|
544 String toStr = dTo != null ? (String) dTo.getValue() : null; |
a9af60c84dca
Small bugfixes in the WQ selection state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
624
diff
changeset
|
545 String stepStr = dStep != null ? (String) dStep.getValue() : null; |
322
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
546 |
352
ed3325a0232a
Throw an illegal argument exception in LocationDistanceSelect.validate() and WQSelect.validate() if no data has been inserted so far.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
322
diff
changeset
|
547 if (fromStr == null || toStr == null || stepStr == null) { |
ed3325a0232a
Throw an illegal argument exception in LocationDistanceSelect.validate() and WQSelect.validate() if no data has been inserted so far.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
322
diff
changeset
|
548 throw new IllegalArgumentException("error_empty_state"); |
ed3325a0232a
Throw an illegal argument exception in LocationDistanceSelect.validate() and WQSelect.validate() if no data has been inserted so far.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
322
diff
changeset
|
549 } |
ed3325a0232a
Throw an illegal argument exception in LocationDistanceSelect.validate() and WQSelect.validate() if no data has been inserted so far.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
322
diff
changeset
|
550 |
631
a9af60c84dca
Small bugfixes in the WQ selection state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
624
diff
changeset
|
551 try { |
a9af60c84dca
Small bugfixes in the WQ selection state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
624
diff
changeset
|
552 double from = Double.parseDouble(fromStr); |
a9af60c84dca
Small bugfixes in the WQ selection state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
624
diff
changeset
|
553 double to = Double.parseDouble(toStr); |
a9af60c84dca
Small bugfixes in the WQ selection state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
624
diff
changeset
|
554 double step = Double.parseDouble(stepStr); |
322
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
555 |
2060
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
556 if (mode == FLYSUtils.WQ_MODE.WGAUGE) { |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
557 return validateGaugeW(artifact, from, to, step); |
322
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
558 } |
2060
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
559 else if (mode == FLYSUtils.WQ_MODE.QGAUGE) { |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
560 return validateGaugeQ(artifact, from, to, step); |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
561 } |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
562 else if (mode == FLYSUtils.WQ_MODE.QFREE) { |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
563 return validateFreeQ(artifact, from, to, step); |
322
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
564 } |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
565 else { |
660
627be3ca1ab6
code clean up in states
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
631
diff
changeset
|
566 throw new IllegalArgumentException( |
627be3ca1ab6
code clean up in states
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
631
diff
changeset
|
567 "error_feed_invalid_wq_mode"); |
322
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
568 } |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
569 } |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
570 catch (NumberFormatException nfe) { |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
571 throw new IllegalArgumentException("error_feed_number_format"); |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
572 } |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
573 } |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
574 |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
575 |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
576 /** |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
577 * Validates the inserted W values. |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
578 * |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
579 * @param artifact The owner artifact. |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
580 * @param from The lower value of the W range. |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
581 * @param to The upper value of the W range. |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
582 * @param step The step width. |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
583 * |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
584 * @return true, if everything was fine, otherwise an exception is thrown. |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
585 */ |
2060
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
586 protected boolean validateGaugeW( |
322
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
587 Artifact artifact, |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
588 double from, |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
589 double to, |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
590 double step) |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
591 throws IllegalArgumentException |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
592 { |
2060
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
593 logger.debug("WQSelect.validateGaugeW"); |
322
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
594 |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
595 double[] minmaxW = determineMinMaxW(artifact); |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
596 |
379
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
597 return validateBounds(minmaxW[0], minmaxW[1], from, to, step); |
322
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
598 } |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
599 |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
600 |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
601 /** |
2060
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
602 * Validates the inserted Q values based on the Q range for the current |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
603 * gauge. |
322
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
604 * |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
605 * @param artifact The owner artifact. |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
606 * @param from The lower value of the Q range. |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
607 * @param to The upper value of the Q range. |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
608 * @param step The step width. |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
609 * |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
610 * @return true, if everything was fine, otherwise an exception is thrown. |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
611 */ |
2060
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
612 protected boolean validateGaugeQ( |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
613 Artifact artifact, |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
614 double from, |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
615 double to, |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
616 double step) |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
617 throws IllegalArgumentException |
322
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
618 { |
2060
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
619 logger.debug("WQSelect.validateGaugeQ"); |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
620 |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
621 double[] minmaxQ = determineMinMaxQAtGauge(artifact); |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
622 |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
623 return validateBounds(minmaxQ[0], minmaxQ[1], from, to, step); |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
624 } |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
625 |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
626 |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
627 /** |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
628 * Validates the inserted Q values based on the Q range for the current |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
629 * kilometer range. |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
630 * |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
631 * @param artifact The owner artifact. |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
632 * @param from The lower value of the Q range. |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
633 * @param to The upper value of the Q range. |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
634 * @param step The step width. |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
635 * |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
636 * @return true, if everything was fine, otherwise an exception is thrown. |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
637 */ |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
638 protected boolean validateFreeQ( |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
639 Artifact artifact, |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
640 double from, |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
641 double to, |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
642 double step) |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
643 throws IllegalArgumentException |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
644 { |
3ffb7195173f
Validate user defined Qs based on the start kilometer ('Q free').
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2059
diff
changeset
|
645 logger.debug("WQSelect.validateFreeQ"); |
322
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
646 |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
647 double[] minmaxQ = determineMinMaxQ(artifact); |
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
648 |
379
c21fb8de54f8
Enabled the FLYSArtifact to handle an array of inserted WQ values (without given ranges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
352
diff
changeset
|
649 return validateBounds(minmaxQ[0], minmaxQ[1], from, to, step); |
322
448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
320
diff
changeset
|
650 } |
137
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
651 } |
7f839b81cdde
Added a new state for the W/Q input in the WINFO parameterization.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
652 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : |