Mercurial > dive4elements > river
annotate flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java @ 329:0b2358bc716d
Discharge table: Added static method getWForQ() to interpolate a w value for a given q value based on a given discharge table.
flys-artifacts/trunk@1727 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Tue, 19 Apr 2011 11:05:27 +0000 |
parents | cd9e397cc2a8 |
children | f165c7d5d6db |
rev | line source |
---|---|
109
9891d133f08d
Improved the init process of the WINFOArtifact - there are two new states to select the river and the gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.flys.artifacts.states; |
9891d133f08d
Improved the init process of the WINFOArtifact - there are two new states to select the river and the gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
2 |
115
b51e92fef704
The RiverSelect state creates the dynamic UI part for the describe document now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
109
diff
changeset
|
3 import java.util.List; |
324
cd9e397cc2a8
The inserted river is validated in the feed operation().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
4 import java.util.Map; |
115
b51e92fef704
The RiverSelect state creates the dynamic UI part for the describe document now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
109
diff
changeset
|
5 |
109
9891d133f08d
Improved the init process of the WINFOArtifact - there are two new states to select the river and the gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
6 import org.apache.log4j.Logger; |
9891d133f08d
Improved the init process of the WINFOArtifact - there are two new states to select the river and the gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
7 |
115
b51e92fef704
The RiverSelect state creates the dynamic UI part for the describe document now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
109
diff
changeset
|
8 import org.w3c.dom.Element; |
109
9891d133f08d
Improved the init process of the WINFOArtifact - there are two new states to select the river and the gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
9 import org.w3c.dom.Node; |
9891d133f08d
Improved the init process of the WINFOArtifact - there are two new states to select the river and the gauge.
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:
304
diff
changeset
|
11 import de.intevation.artifacts.Artifact; |
109
9891d133f08d
Improved the init process of the WINFOArtifact - there are two new states to select the river and the gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
12 import de.intevation.artifacts.CallContext; |
9891d133f08d
Improved the init process of the WINFOArtifact - there are two new states to select the river and the gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
13 |
115
b51e92fef704
The RiverSelect state creates the dynamic UI part for the describe document now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
109
diff
changeset
|
14 import de.intevation.artifacts.common.utils.XMLUtils; |
b51e92fef704
The RiverSelect state creates the dynamic UI part for the describe document now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
109
diff
changeset
|
15 |
b51e92fef704
The RiverSelect state creates the dynamic UI part for the describe document now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
109
diff
changeset
|
16 import de.intevation.artifactdatabase.ProtocolUtils; |
b51e92fef704
The RiverSelect state creates the dynamic UI part for the describe document now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
109
diff
changeset
|
17 import de.intevation.artifactdatabase.data.StateData; |
109
9891d133f08d
Improved the init process of the WINFOArtifact - there are two new states to select the river and the gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
18 |
132
8be4a837f20a
Added support for the flys backend and an example how to use it.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
126
diff
changeset
|
19 import de.intevation.flys.model.River; |
8be4a837f20a
Added support for the flys backend and an example how to use it.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
126
diff
changeset
|
20 |
324
cd9e397cc2a8
The inserted river is validated in the feed operation().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
21 import de.intevation.flys.artifacts.FLYSArtifact; |
115
b51e92fef704
The RiverSelect state creates the dynamic UI part for the describe document now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
109
diff
changeset
|
22 import de.intevation.flys.artifacts.model.RiverFactory; |
126
b18aebd1342f
Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
116
diff
changeset
|
23 import de.intevation.flys.artifacts.resources.Resources; |
115
b51e92fef704
The RiverSelect state creates the dynamic UI part for the describe document now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
109
diff
changeset
|
24 |
109
9891d133f08d
Improved the init process of the WINFOArtifact - there are two new states to select the river and the gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
25 |
9891d133f08d
Improved the init process of the WINFOArtifact - there are two new states to select the river and the gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
26 /** |
9891d133f08d
Improved the init process of the WINFOArtifact - there are two new states to select the river and the gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
27 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> |
9891d133f08d
Improved the init process of the WINFOArtifact - there are two new states to select the river and the gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
28 */ |
126
b18aebd1342f
Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
116
diff
changeset
|
29 public class RiverSelect extends DefaultState { |
109
9891d133f08d
Improved the init process of the WINFOArtifact - there are two new states to select the river and the gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
30 |
9891d133f08d
Improved the init process of the WINFOArtifact - there are two new states to select the river and the gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
31 /** The logger used in this class. */ |
9891d133f08d
Improved the init process of the WINFOArtifact - there are two new states to select the river and the gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
32 private static Logger logger = Logger.getLogger(RiverSelect.class); |
9891d133f08d
Improved the init process of the WINFOArtifact - there are two new states to select the river and the gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
33 |
324
cd9e397cc2a8
The inserted river is validated in the feed operation().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
34 |
cd9e397cc2a8
The inserted river is validated in the feed operation().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
35 /** Error message that is thrown if no river was found based on a given |
cd9e397cc2a8
The inserted river is validated in the feed operation().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
36 * name.*/ |
cd9e397cc2a8
The inserted river is validated in the feed operation().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
37 public static final String ERROR_NO_SUCH_RIVER = |
cd9e397cc2a8
The inserted river is validated in the feed operation().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
38 "error_feed_no_such_river"; |
cd9e397cc2a8
The inserted river is validated in the feed operation().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
39 |
cd9e397cc2a8
The inserted river is validated in the feed operation().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
40 /** Error message that is thrown if no river was found based on a given |
cd9e397cc2a8
The inserted river is validated in the feed operation().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
41 * name.*/ |
cd9e397cc2a8
The inserted river is validated in the feed operation().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
42 public static final String ERROR_NO_RIVER_SELECTED = |
cd9e397cc2a8
The inserted river is validated in the feed operation().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
43 "error_feed_no_river_selected"; |
cd9e397cc2a8
The inserted river is validated in the feed operation().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
44 |
cd9e397cc2a8
The inserted river is validated in the feed operation().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
45 |
109
9891d133f08d
Improved the init process of the WINFOArtifact - there are two new states to select the river and the gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
46 /** |
9891d133f08d
Improved the init process of the WINFOArtifact - there are two new states to select the river and the gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
47 * The default constructor that initializes an empty State object. |
9891d133f08d
Improved the init process of the WINFOArtifact - there are two new states to select the river and the gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
48 */ |
9891d133f08d
Improved the init process of the WINFOArtifact - there are two new states to select the river and the gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
49 public RiverSelect() { |
9891d133f08d
Improved the init process of the WINFOArtifact - there are two new states to select the river and the gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
50 } |
9891d133f08d
Improved the init process of the WINFOArtifact - there are two new states to select the river and the gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
51 |
9891d133f08d
Improved the init process of the WINFOArtifact - there are two new states to select the river and the gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
52 |
9891d133f08d
Improved the init process of the WINFOArtifact - there are two new states to select the river and the gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
53 /** |
9891d133f08d
Improved the init process of the WINFOArtifact - there are two new states to select the river and the gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
54 * Initialize the state based on the state node in the configuration. |
9891d133f08d
Improved the init process of the WINFOArtifact - there are two new states to select the river and the gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
55 * |
9891d133f08d
Improved the init process of the WINFOArtifact - there are two new states to select the river and the gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
56 * @param config The state configuration node. |
9891d133f08d
Improved the init process of the WINFOArtifact - there are two new states to select the river and the gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
57 */ |
9891d133f08d
Improved the init process of the WINFOArtifact - there are two new states to select the river and the gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
58 public void setup(Node config) { |
9891d133f08d
Improved the init process of the WINFOArtifact - there are two new states to select the river and the gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
59 super.setup(config); |
9891d133f08d
Improved the init process of the WINFOArtifact - there are two new states to select the river and the gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
60 } |
9891d133f08d
Improved the init process of the WINFOArtifact - there are two new states to select the river and the gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
61 |
9891d133f08d
Improved the init process of the WINFOArtifact - there are two new states to select the river and the gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
62 |
126
b18aebd1342f
Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
116
diff
changeset
|
63 protected Element createData( |
b18aebd1342f
Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
116
diff
changeset
|
64 XMLUtils.ElementCreator cr, |
313
89bd0417418f
The location/distance state now writes default values into DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
304
diff
changeset
|
65 Artifact artifact, |
126
b18aebd1342f
Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
116
diff
changeset
|
66 StateData data, |
b18aebd1342f
Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
116
diff
changeset
|
67 CallContext context) |
109
9891d133f08d
Improved the init process of the WINFOArtifact - there are two new states to select the river and the gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
68 { |
126
b18aebd1342f
Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
116
diff
changeset
|
69 Element select = ProtocolUtils.createArtNode( |
b18aebd1342f
Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
116
diff
changeset
|
70 cr, "select", |
b18aebd1342f
Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
116
diff
changeset
|
71 new String[] { "uiprovider" }, |
b18aebd1342f
Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
116
diff
changeset
|
72 new String[] { "select_with_map" }); |
304
992afc0299cd
Bugfix: Repaired the dynamic UI part of the RiverSelect state in DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
132
diff
changeset
|
73 cr.addAttr(select, "name", data.getName(), true); |
115
b51e92fef704
The RiverSelect state creates the dynamic UI part for the describe document now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
109
diff
changeset
|
74 |
126
b18aebd1342f
Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
116
diff
changeset
|
75 Element label = ProtocolUtils.createArtNode( |
b18aebd1342f
Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
116
diff
changeset
|
76 cr, "label", null, null); |
115
b51e92fef704
The RiverSelect state creates the dynamic UI part for the describe document now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
109
diff
changeset
|
77 |
126
b18aebd1342f
Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
116
diff
changeset
|
78 Element choices = ProtocolUtils.createArtNode( |
b18aebd1342f
Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
116
diff
changeset
|
79 cr, "choices", null, null); |
115
b51e92fef704
The RiverSelect state creates the dynamic UI part for the describe document now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
109
diff
changeset
|
80 |
304
992afc0299cd
Bugfix: Repaired the dynamic UI part of the RiverSelect state in DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
132
diff
changeset
|
81 select.appendChild(label); |
992afc0299cd
Bugfix: Repaired the dynamic UI part of the RiverSelect state in DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
132
diff
changeset
|
82 |
126
b18aebd1342f
Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
116
diff
changeset
|
83 label.setTextContent(Resources.getMsg( |
b18aebd1342f
Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
116
diff
changeset
|
84 context.getMeta(), |
b18aebd1342f
Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
116
diff
changeset
|
85 getID(), |
b18aebd1342f
Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
116
diff
changeset
|
86 getID())); |
115
b51e92fef704
The RiverSelect state creates the dynamic UI part for the describe document now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
109
diff
changeset
|
87 |
126
b18aebd1342f
Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
116
diff
changeset
|
88 return select; |
b18aebd1342f
Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
116
diff
changeset
|
89 } |
115
b51e92fef704
The RiverSelect state creates the dynamic UI part for the describe document now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
109
diff
changeset
|
90 |
126
b18aebd1342f
Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
116
diff
changeset
|
91 |
b18aebd1342f
Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
116
diff
changeset
|
92 protected Element[] createItems( |
b18aebd1342f
Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
116
diff
changeset
|
93 XMLUtils.ElementCreator cr, |
313
89bd0417418f
The location/distance state now writes default values into DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
304
diff
changeset
|
94 Artifact artifact, |
126
b18aebd1342f
Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
116
diff
changeset
|
95 String name, |
b18aebd1342f
Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
116
diff
changeset
|
96 CallContext context) |
b18aebd1342f
Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
116
diff
changeset
|
97 { |
b18aebd1342f
Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
116
diff
changeset
|
98 List<River> rivers = RiverFactory.getRivers(); |
b18aebd1342f
Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
116
diff
changeset
|
99 Element[] items = new Element[rivers.size()]; |
b18aebd1342f
Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
116
diff
changeset
|
100 |
b18aebd1342f
Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
116
diff
changeset
|
101 int idx = 0; |
b18aebd1342f
Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
116
diff
changeset
|
102 for (River river: rivers) { |
b18aebd1342f
Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
116
diff
changeset
|
103 items[idx++] = createRiverItem(cr, river); |
115
b51e92fef704
The RiverSelect state creates the dynamic UI part for the describe document now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
109
diff
changeset
|
104 } |
b51e92fef704
The RiverSelect state creates the dynamic UI part for the describe document now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
109
diff
changeset
|
105 |
126
b18aebd1342f
Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
116
diff
changeset
|
106 return items; |
115
b51e92fef704
The RiverSelect state creates the dynamic UI part for the describe document now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
109
diff
changeset
|
107 } |
b51e92fef704
The RiverSelect state creates the dynamic UI part for the describe document now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
109
diff
changeset
|
108 |
b51e92fef704
The RiverSelect state creates the dynamic UI part for the describe document now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
109
diff
changeset
|
109 |
b51e92fef704
The RiverSelect state creates the dynamic UI part for the describe document now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
109
diff
changeset
|
110 /** |
b51e92fef704
The RiverSelect state creates the dynamic UI part for the describe document now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
109
diff
changeset
|
111 * This method creates a node that represents a river item. This node |
b51e92fef704
The RiverSelect state creates the dynamic UI part for the describe document now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
109
diff
changeset
|
112 * contains the label and the value that describe the river. |
b51e92fef704
The RiverSelect state creates the dynamic UI part for the describe document now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
109
diff
changeset
|
113 * |
b51e92fef704
The RiverSelect state creates the dynamic UI part for the describe document now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
109
diff
changeset
|
114 * @param cr The ElementCreator. |
b51e92fef704
The RiverSelect state creates the dynamic UI part for the describe document now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
109
diff
changeset
|
115 * @param river The river. |
b51e92fef704
The RiverSelect state creates the dynamic UI part for the describe document now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
109
diff
changeset
|
116 * |
b51e92fef704
The RiverSelect state creates the dynamic UI part for the describe document now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
109
diff
changeset
|
117 * @return the element that contains the information about the river. |
b51e92fef704
The RiverSelect state creates the dynamic UI part for the describe document now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
109
diff
changeset
|
118 */ |
b51e92fef704
The RiverSelect state creates the dynamic UI part for the describe document now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
109
diff
changeset
|
119 protected Element createRiverItem(XMLUtils.ElementCreator cr, River river) { |
b51e92fef704
The RiverSelect state creates the dynamic UI part for the describe document now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
109
diff
changeset
|
120 Element item = ProtocolUtils.createArtNode(cr, "item", null, null); |
b51e92fef704
The RiverSelect state creates the dynamic UI part for the describe document now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
109
diff
changeset
|
121 Element label = ProtocolUtils.createArtNode(cr, "label", null, null); |
b51e92fef704
The RiverSelect state creates the dynamic UI part for the describe document now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
109
diff
changeset
|
122 Element value = ProtocolUtils.createArtNode(cr, "value", null, null); |
b51e92fef704
The RiverSelect state creates the dynamic UI part for the describe document now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
109
diff
changeset
|
123 |
b51e92fef704
The RiverSelect state creates the dynamic UI part for the describe document now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
109
diff
changeset
|
124 label.setTextContent(river.getName()); |
b51e92fef704
The RiverSelect state creates the dynamic UI part for the describe document now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
109
diff
changeset
|
125 value.setTextContent(river.getName()); |
b51e92fef704
The RiverSelect state creates the dynamic UI part for the describe document now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
109
diff
changeset
|
126 |
b51e92fef704
The RiverSelect state creates the dynamic UI part for the describe document now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
109
diff
changeset
|
127 item.appendChild(label); |
b51e92fef704
The RiverSelect state creates the dynamic UI part for the describe document now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
109
diff
changeset
|
128 item.appendChild(value); |
b51e92fef704
The RiverSelect state creates the dynamic UI part for the describe document now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
109
diff
changeset
|
129 |
b51e92fef704
The RiverSelect state creates the dynamic UI part for the describe document now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
109
diff
changeset
|
130 return item; |
109
9891d133f08d
Improved the init process of the WINFOArtifact - there are two new states to select the river and the gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
131 } |
324
cd9e397cc2a8
The inserted river is validated in the feed operation().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
132 |
cd9e397cc2a8
The inserted river is validated in the feed operation().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
133 |
cd9e397cc2a8
The inserted river is validated in the feed operation().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
134 @Override |
cd9e397cc2a8
The inserted river is validated in the feed operation().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
135 public boolean validate(Artifact artifact, CallContext context) |
cd9e397cc2a8
The inserted river is validated in the feed operation().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
136 throws IllegalArgumentException |
cd9e397cc2a8
The inserted river is validated in the feed operation().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
137 { |
cd9e397cc2a8
The inserted river is validated in the feed operation().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
138 logger.debug("RiverSelect.validate"); |
cd9e397cc2a8
The inserted river is validated in the feed operation().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
139 |
cd9e397cc2a8
The inserted river is validated in the feed operation().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
140 Map<String, StateData> data = getData(); |
cd9e397cc2a8
The inserted river is validated in the feed operation().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
141 |
cd9e397cc2a8
The inserted river is validated in the feed operation().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
142 StateData dRiver = data.get("river"); |
cd9e397cc2a8
The inserted river is validated in the feed operation().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
143 |
cd9e397cc2a8
The inserted river is validated in the feed operation().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
144 if (dRiver == null || dRiver.getValue() == null) { |
cd9e397cc2a8
The inserted river is validated in the feed operation().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
145 throw new IllegalArgumentException(ERROR_NO_RIVER_SELECTED); |
cd9e397cc2a8
The inserted river is validated in the feed operation().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
146 } |
cd9e397cc2a8
The inserted river is validated in the feed operation().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
147 |
cd9e397cc2a8
The inserted river is validated in the feed operation().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
148 River river = RiverFactory.getRiver((String) dRiver.getValue()); |
cd9e397cc2a8
The inserted river is validated in the feed operation().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
149 |
cd9e397cc2a8
The inserted river is validated in the feed operation().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
150 if (river == null) { |
cd9e397cc2a8
The inserted river is validated in the feed operation().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
151 throw new IllegalArgumentException(ERROR_NO_SUCH_RIVER); |
cd9e397cc2a8
The inserted river is validated in the feed operation().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
152 } |
cd9e397cc2a8
The inserted river is validated in the feed operation().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
153 |
cd9e397cc2a8
The inserted river is validated in the feed operation().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
154 return true; |
cd9e397cc2a8
The inserted river is validated in the feed operation().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
155 } |
109
9891d133f08d
Improved the init process of the WINFOArtifact - there are two new states to select the river and the gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
156 } |
9891d133f08d
Improved the init process of the WINFOArtifact - there are two new states to select the river and the gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
157 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : |