annotate flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java @ 3294:5e52202302e5

SQ relation: Handle the error case of accessing wrong indexed SQ relation more smoothly. flys-artifacts/trunk@4973 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Fri, 13 Jul 2012 08:25:13 +0000
parents eccf966fb677
children cbe2febe30cc
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;
b51e92fef704 The RiverSelect state creates the dynamic UI part for the describe document now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 109
diff changeset
4
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
5 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
6
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
7 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
8 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
9
313
89bd0417418f The location/distance state now writes default values into DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 304
diff changeset
10 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
11 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
12
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
13 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
14
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 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
16 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
17
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
18 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
19
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: 424
diff changeset
20 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
21 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
22 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
23
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
24
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 * @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
27 */
126
b18aebd1342f Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 116
diff changeset
28 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
29
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 /** 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
31 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
32
324
cd9e397cc2a8 The inserted river is validated in the feed operation().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 313
diff changeset
33
cd9e397cc2a8 The inserted river is validated in the feed operation().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 313
diff changeset
34 /** 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
35 * name.*/
cd9e397cc2a8 The inserted river is validated in the feed operation().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 313
diff changeset
36 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
37 "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
38
cd9e397cc2a8 The inserted river is validated in the feed operation().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 313
diff changeset
39 /** 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
40 * name.*/
cd9e397cc2a8 The inserted river is validated in the feed operation().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 313
diff changeset
41 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
42 "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
43
cd9e397cc2a8 The inserted river is validated in the feed operation().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 313
diff changeset
44
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
45 /**
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 * 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
47 */
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 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
49 }
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 * 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
54 *
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 * @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
56 */
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 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
58 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
59 }
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
126
b18aebd1342f Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 116
diff changeset
62 protected Element createData(
b18aebd1342f Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 116
diff changeset
63 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
64 Artifact artifact,
126
b18aebd1342f Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 116
diff changeset
65 StateData data,
b18aebd1342f Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 116
diff changeset
66 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
67 {
126
b18aebd1342f Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 116
diff changeset
68 Element select = ProtocolUtils.createArtNode(
b18aebd1342f Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 116
diff changeset
69 cr, "select",
b18aebd1342f Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 116
diff changeset
70 new String[] { "uiprovider" },
b18aebd1342f Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 116
diff changeset
71 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
72 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
73
126
b18aebd1342f Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 116
diff changeset
74 Element label = ProtocolUtils.createArtNode(
b18aebd1342f Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 116
diff changeset
75 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
76
126
b18aebd1342f Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 116
diff changeset
77 Element choices = ProtocolUtils.createArtNode(
b18aebd1342f Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 116
diff changeset
78 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
79
304
992afc0299cd Bugfix: Repaired the dynamic UI part of the RiverSelect state in DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 132
diff changeset
80 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
81
126
b18aebd1342f Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 116
diff changeset
82 label.setTextContent(Resources.getMsg(
b18aebd1342f Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 116
diff changeset
83 context.getMeta(),
b18aebd1342f Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 116
diff changeset
84 getID(),
b18aebd1342f Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 116
diff changeset
85 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
86
126
b18aebd1342f Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 116
diff changeset
87 return select;
b18aebd1342f Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 116
diff changeset
88 }
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
89
126
b18aebd1342f Added an abstract base class DefaultState for States.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 116
diff changeset
90
660
627be3ca1ab6 code clean up in states
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 624
diff changeset
91 @Override
126
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
1050
eccf966fb677 State engine: Removed CallContext from state validation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 660
diff changeset
135 public boolean validate(Artifact artifact)
324
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
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: 424
diff changeset
140 FLYSArtifact flys = (FLYSArtifact) artifact;
324
cd9e397cc2a8 The inserted river is validated in the feed operation().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 313
diff changeset
141
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: 424
diff changeset
142 StateData dRiver = getData(flys, "river");
324
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 }
424
82bd39f27569 ISSUE-37 The river state wants to be rendered using a river_panel UI provider.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 343
diff changeset
156
82bd39f27569 ISSUE-37 The river state wants to be rendered using a river_panel UI provider.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 343
diff changeset
157
82bd39f27569 ISSUE-37 The river state wants to be rendered using a river_panel UI provider.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 343
diff changeset
158 @Override
82bd39f27569 ISSUE-37 The river state wants to be rendered using a river_panel UI provider.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 343
diff changeset
159 protected String getUIProvider() {
82bd39f27569 ISSUE-37 The river state wants to be rendered using a river_panel UI provider.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 343
diff changeset
160 return "river_panel";
82bd39f27569 ISSUE-37 The river state wants to be rendered using a river_panel UI provider.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 343
diff changeset
161 }
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
162 }
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
163 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org