comparison artifacts/src/main/java/org/dive4elements/river/artifacts/states/SoundingsSelect.java @ 8070:d77f53c1e5a1

Added meta infos for multi items to enable client to order the columns in a defined order.
author Sascha L. Teichmann <teichmann@intevation.de>
date Tue, 05 Aug 2014 18:03:45 +0200
parents 868f55932fe6
children 3772d1433868
comparison
equal deleted inserted replaced
8069:86c1ff462fb5 8070:d77f53c1e5a1
8 8
9 package org.dive4elements.river.artifacts.states; 9 package org.dive4elements.river.artifacts.states;
10 10
11 import java.text.NumberFormat; 11 import java.text.NumberFormat;
12 import java.util.ArrayList; 12 import java.util.ArrayList;
13 import java.util.Collections;
13 import java.util.List; 14 import java.util.List;
14 15
15 import org.apache.log4j.Logger; 16 import org.apache.log4j.Logger;
16
17 import org.dive4elements.artifacts.Artifact; 17 import org.dive4elements.artifacts.Artifact;
18 import org.dive4elements.artifacts.CallContext; 18 import org.dive4elements.artifacts.CallContext;
19
20 import org.dive4elements.artifacts.common.model.KVP; 19 import org.dive4elements.artifacts.common.model.KVP;
21 import org.dive4elements.artifacts.common.utils.XMLUtils; 20 import org.dive4elements.artifacts.common.utils.XMLUtils;
22 import org.dive4elements.artifacts.common.utils.XMLUtils.ElementCreator; 21 import org.dive4elements.artifacts.common.utils.XMLUtils.ElementCreator;
23
24 import org.dive4elements.river.model.BedHeightSingle; 22 import org.dive4elements.river.model.BedHeightSingle;
25 import org.dive4elements.river.model.River; 23 import org.dive4elements.river.model.River;
26
27 import org.dive4elements.river.artifacts.D4EArtifact; 24 import org.dive4elements.river.artifacts.D4EArtifact;
28 import org.dive4elements.river.artifacts.resources.Resources; 25 import org.dive4elements.river.artifacts.resources.Resources;
29 import org.dive4elements.river.utils.Formatter; 26 import org.dive4elements.river.utils.Formatter;
30 import org.dive4elements.river.utils.RiverUtils; 27 import org.dive4elements.river.utils.RiverUtils;
31 import org.w3c.dom.Element; 28 import org.w3c.dom.Element;
55 Element select 52 Element select
56 ) { 53 ) {
57 try { 54 try {
58 creator.addAttr(select, "type", "multiattribute", true); 55 creator.addAttr(select, "type", "multiattribute", true);
59 56
57 appendMeta(creator, select);
58
60 getOptions(artifact, name, context, creator, select); 59 getOptions(artifact, name, context, creator, select);
61 } 60 }
62 catch (IllegalArgumentException iae) { 61 catch (IllegalArgumentException iae) {
63 logger.warn("Illegal argument", iae); 62 logger.warn("Illegal argument", iae);
64 } 63 }
64 }
65
66 private static Element order(ElementCreator creator, String name, String order) {
67 Element element = creator.create(name);
68 creator.addAttr(element, "order", order, false);
69 return element;
70 }
71
72 private void appendMeta(ElementCreator creator, Element select) {
73
74 Element meta = creator.create("meta");
75
76 meta.appendChild(order(creator, "year", "0"));
77 meta.appendChild(order(creator, "value", "1"));
78 meta.appendChild(order(creator, "analyzed_range", "2"));
79 meta.appendChild(order(creator, "label", "3"));
80 meta.appendChild(order(creator, "minfo_type", "4"));
81
82 select.appendChild(meta);
83
65 } 84 }
66 85
67 protected KVP<String, String>[] getOptions( 86 protected KVP<String, String>[] getOptions(
68 Artifact artifact, 87 Artifact artifact,
69 String parameterName, 88 String parameterName,
85 double hi = ((D4EArtifact) artifact).getDataAsDouble("ld_to"); 104 double hi = ((D4EArtifact) artifact).getDataAsDouble("ld_to");
86 105
87 double kmLo = Math.min(lo, hi); 106 double kmLo = Math.min(lo, hi);
88 double kmHi = Math.max(lo, hi); 107 double kmHi = Math.max(lo, hi);
89 108
90 List<KVP<String, String>> kvp = new ArrayList<KVP<String, String>>();
91
92 appendSingles(river, kmLo, kmHi, creator, select, context); 109 appendSingles(river, kmLo, kmHi, creator, select, context);
93 110
111 List<KVP<String, String>> kvp = Collections.<KVP<String, String>>emptyList();
94 return kvp.toArray(new KVP[kvp.size()]); 112 return kvp.toArray(new KVP[kvp.size()]);
95 } 113 }
96 114
97 115
98 protected void appendSingles( 116 protected void appendSingles(
130 year != null ? s.getYear().toString() : ""); 148 year != null ? s.getYear().toString() : "");
131 creator.addAttr(item, "minfo_type", s.getType().getName()); 149 creator.addAttr(item, "minfo_type", s.getType().getName());
132 select.appendChild(item); 150 select.appendChild(item);
133 } 151 }
134 } 152 }
135 logger.debug("appended singles"); 153 if (logger.isDebugEnabled()) {
136 logger.debug(XMLUtils.toString(select)); 154 logger.debug("appended singles");
155 logger.debug(XMLUtils.toString(select));
156 }
137 } 157 }
138 158
139 @Override 159 @Override
140 protected Element createStaticData( 160 protected Element createStaticData(
141 D4EArtifact flys, 161 D4EArtifact flys,

http://dive4elements.wald.intevation.org