annotate artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/vegetationzones/VegetationZonesTableEditState.java @ 9118:431f1c269be5

Veg-Zone Table improved, State change data recovery;
author gernotbelger
date Mon, 04 Jun 2018 19:38:59 +0200
parents 1ffd38826175
children e511eb935ccd
rev   line source
9064
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
1 /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
2 * Software engineering by
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
3 * Björnsen Beratende Ingenieure GmbH
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
4 * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
5 *
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
6 * This file is Free Software under the GNU AGPL (>=v3)
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
7 * and comes with ABSOLUTELY NO WARRANTY! Check out the
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
8 * documentation coming with Dive4Elements River for details.
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
9 */
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
10 package org.dive4elements.river.artifacts.uinfo.vegetationzones;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
11
9118
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
12 import org.dive4elements.artifactdatabase.ProtocolUtils;
9069
1ffd38826175 access uinfo.vegetationzones+inundation_duration
gernotbelger
parents: 9066
diff changeset
13 import org.dive4elements.artifacts.Artifact;
9118
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
14 import org.dive4elements.artifacts.CallContext;
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
15 import org.dive4elements.artifacts.common.utils.XMLUtils.ElementCreator;
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
16 import org.dive4elements.river.artifacts.D4EArtifact;
9064
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
17 import org.dive4elements.river.artifacts.states.DefaultState;
9118
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
18 import org.w3c.dom.Element;
9064
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
19
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
20 /**
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
21 * @author Domenico Nardi Tironi
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
22 */
9066
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents: 9064
diff changeset
23 public class VegetationZonesTableEditState extends DefaultState {
9064
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
24
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
25 private static final long serialVersionUID = 1L;
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
26
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
27 @Override
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
28 protected String getUIProvider() {
9066
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents: 9064
diff changeset
29 return "uinfo.vegetationzones.table.edit";
9064
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
30 }
9069
1ffd38826175 access uinfo.vegetationzones+inundation_duration
gernotbelger
parents: 9066
diff changeset
31
1ffd38826175 access uinfo.vegetationzones+inundation_duration
gernotbelger
parents: 9066
diff changeset
32 @Override
9118
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
33 protected Element[] createItems(final ElementCreator cr, final Artifact artifact, final String name, final CallContext context) {
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
34 final String datakey = "vegzones";
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
35 if (name.equals(datakey)) {
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
36 final Element item = ProtocolUtils.createArtNode(cr, "item", null, null);
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
37 final Element label = ProtocolUtils.createArtNode(cr, "label", null, null);
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
38 final Element value = ProtocolUtils.createArtNode(cr, "value", null, null);
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
39 final D4EArtifact flys = (D4EArtifact) artifact;
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
40 final String s = flys.getDataAsString(datakey) == null ? VegetationZone.parseListToDataString(VegetationZone.getStandardList())
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
41 : flys.getDataAsString(datakey);
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
42
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
43 value.setTextContent(s);
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
44 item.appendChild(label);
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
45 item.appendChild(value);
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
46 return new Element[] { item };
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
47 }
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
48 return new Element[] {};
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
49 }
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
50
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
51 @Override
9069
1ffd38826175 access uinfo.vegetationzones+inundation_duration
gernotbelger
parents: 9066
diff changeset
52 public boolean validate(final Artifact artifact) throws IllegalArgumentException {
1ffd38826175 access uinfo.vegetationzones+inundation_duration
gernotbelger
parents: 9066
diff changeset
53 // TODO: check verstehen
1ffd38826175 access uinfo.vegetationzones+inundation_duration
gernotbelger
parents: 9066
diff changeset
54
1ffd38826175 access uinfo.vegetationzones+inundation_duration
gernotbelger
parents: 9066
diff changeset
55 // final InundationDurationAccess access = new InundationDurationAccess((SINFOArtifact) artifact);
1ffd38826175 access uinfo.vegetationzones+inundation_duration
gernotbelger
parents: 9066
diff changeset
56
1ffd38826175 access uinfo.vegetationzones+inundation_duration
gernotbelger
parents: 9066
diff changeset
57 // Second year should be later than first.
1ffd38826175 access uinfo.vegetationzones+inundation_duration
gernotbelger
parents: 9066
diff changeset
58
1ffd38826175 access uinfo.vegetationzones+inundation_duration
gernotbelger
parents: 9066
diff changeset
59 // if (access.getYears() == null || access.getYears().length == 0)
1ffd38826175 access uinfo.vegetationzones+inundation_duration
gernotbelger
parents: 9066
diff changeset
60 return true;
1ffd38826175 access uinfo.vegetationzones+inundation_duration
gernotbelger
parents: 9066
diff changeset
61 // throw new IllegalArgumentException("error_years_wrong");
1ffd38826175 access uinfo.vegetationzones+inundation_duration
gernotbelger
parents: 9066
diff changeset
62
1ffd38826175 access uinfo.vegetationzones+inundation_duration
gernotbelger
parents: 9066
diff changeset
63 // return true;
1ffd38826175 access uinfo.vegetationzones+inundation_duration
gernotbelger
parents: 9066
diff changeset
64 }
9118
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
65
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
66 /**
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
67 * Creats the data element used for the static part of DESCRIBE document.
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
68 */
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
69 // @Override
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
70 // protected Element createStaticData(final D4EArtifact flys, final ElementCreator creator, final CallContext cc, final
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
71 // String name, final String value,
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
72 // final String type) {
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
73 // final Element dataElement = creator.create("data");
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
74 // creator.addAttr(dataElement, "name", name, true);
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
75 // creator.addAttr(dataElement, "type", type, true);
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
76 //
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
77 // final Element itemElement = creator.create("item");
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
78 // creator.addAttr(itemElement, "value", value, true);
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
79 //
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
80 // final String[] labels = getLabels(cc, value);
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
81 // final Object[] obj = new Object[] { labels[0] };
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
82 //
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
83 // // TODO own i18n
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
84 // final String attrValue = Resources.getMsg(cc.getMeta(), "wsp.selected.string", "wsp.selected.string", obj);
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
85 // // I18N_STATIC_KEY, I18N_STATIC_KEY, obj);
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
86 //
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
87 // creator.addAttr(itemElement, "label", attrValue, true);
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
88 // dataElement.appendChild(itemElement);
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
89 //
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
90 // return dataElement;
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
91 // }
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9069
diff changeset
92
9064
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents:
diff changeset
93 }

http://dive4elements.wald.intevation.org