annotate artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/DatacagePairSelectState.java @ 9040:5294114b1df4

Fixed/changed some FIXMEs/TODOs
author gernotbelger
date Wed, 02 May 2018 12:19:31 +0200
parents 322b0e6298ea
children 839b2aa84dd0
rev   line source
8951
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
2 * Software engineering by Intevation GmbH
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
3 *
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
6 * documentation coming with Dive4Elements River for details.
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
7 */
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
8
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
9 package org.dive4elements.river.artifacts.sinfo.common;
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
10
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
11 import java.util.List;
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
12
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
13 import org.apache.log4j.Logger;
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
14 import org.dive4elements.artifactdatabase.ProtocolUtils;
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
15 import org.dive4elements.artifactdatabase.state.Facet;
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
16 import org.dive4elements.artifacts.Artifact;
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
17 import org.dive4elements.artifacts.CallContext;
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
18 import org.dive4elements.artifacts.common.utils.XMLUtils.ElementCreator;
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
19 import org.dive4elements.river.artifacts.D4EArtifact;
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
20 import org.dive4elements.river.artifacts.model.FacetTypes;
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
21 import org.dive4elements.river.artifacts.resources.Resources;
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
22 import org.dive4elements.river.artifacts.states.DefaultState;
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
23 import org.dive4elements.river.artifacts.states.WaterlevelPairSelectState;
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
24 import org.w3c.dom.Element;
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
25
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
26 /**
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
27 * Copy of {@link WaterlevelPairSelectState}. We must copy instead of crate an abstraction, else we break the
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
28 * serialization of {@link WaterlevelPairSelectState}.
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
29 * State in which the user selects 1 to n pairs of Waterlevels and alikes.
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
30 */
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
31 public abstract class DatacagePairSelectState extends DefaultState implements FacetTypes {
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
32
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
33 private static final long serialVersionUID = 1L;
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
34
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
35 /** The log that is used in this state. */
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
36 private static Logger log = Logger.getLogger(DatacagePairSelectState.class);
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
37
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
38 private final String dataId;
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
39
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
40 private final String uiProvider;
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
41
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
42 /**
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
43 * Name of the state data this state is responsible for.
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
44 */
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
45 public DatacagePairSelectState(final String uiProvider, final String dataId) {
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
46 this.uiProvider = uiProvider;
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
47 this.dataId = dataId;
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
48 }
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
49
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
50 /** Specify to display a datacage_twin_panel. */
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
51 @Override
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
52 protected final String getUIProvider() {
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
53 return this.uiProvider;
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
54 }
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
55
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
56 /**
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
57 * Overridden to do nothing.
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
58 */
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
59 @Override
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
60 public final Object computeAdvance(final D4EArtifact artifact, final String hash, final CallContext context, final List<Facet> facets, final Object old) {
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
61 // Get data and do stuff, do not calculate
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
62 return "";
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
63 }
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
64
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
65 /**
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
66 * Create elements for document (prepopulated with data, if any).
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
67 *
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
68 * @param artifact
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
69 * D4EArtifact to get data from.
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
70 * @param name
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
71 * DataName, expceted to be dataId given in constructor.
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
72 */
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
73 @Override
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
74 protected final Element[] createItems(final ElementCreator cr, final Artifact artifact, final String name, final CallContext context) {
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
75 log.debug("createItems: " + name);
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
76
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
77 if (name.equals(this.dataId)) {
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
78 final Element item = ProtocolUtils.createArtNode(cr, "item", null, null);
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
79 final Element label = ProtocolUtils.createArtNode(cr, "label", null, null);
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
80 final Element value = ProtocolUtils.createArtNode(cr, "value", null, null);
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
81
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
82 final D4EArtifact flys = (D4EArtifact) artifact;
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
83
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
84 final String s = flys.getDataAsString(name);
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
85 value.setTextContent(s);
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
86 item.appendChild(label);
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
87 item.appendChild(value);
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
88 return new Element[] { item };
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
89 }
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
90
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
91 return new Element[] {};
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
92 }
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
93
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
94 /**
9040
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8951
diff changeset
95 * Creates the data element used for the static part of DESCRIBE document.
8951
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
96 */
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
97 @Override
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
98 protected final Element createStaticData(final D4EArtifact flys, final ElementCreator creator, final CallContext cc, final String name, final String value,
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
99 final String type) {
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
100 final Element dataElement = creator.create("data");
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
101 creator.addAttr(dataElement, "name", name, true);
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
102 creator.addAttr(dataElement, "type", type, true);
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
103
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
104 final Element itemElement = creator.create("item");
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
105 creator.addAttr(itemElement, "value", value, true);
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
106
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
107 final String[] labels = WaterlevelPairSelectState.getLabels(cc, value);
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
108 final Object[] obj = new Object[] { labels[0] };
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
109
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
110 final String attrValue = Resources.getMsg(cc.getMeta(), "wsp.selected.string", "wsp.selected.string", obj);
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
111
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
112 creator.addAttr(itemElement, "label", attrValue, true);
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
113 dataElement.appendChild(itemElement);
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
114
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
115 return dataElement;
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
116 }
322b0e6298ea Work on SINFO FlowDepth-Development
gernotbelger
parents:
diff changeset
117 }

http://dive4elements.wald.intevation.org