Mercurial > dive4elements > gnv-client
comparison gnv-artifacts/src/main/java/de/intevation/gnv/transition/TransitionBase.java @ 76:2473440671ce
Integrate UI-Representation for Describe into the FISArtifact.
gnv-artifacts/trunk@87 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Tim Englich <tim.englich@intevation.de> |
---|---|
date | Tue, 15 Sep 2009 10:11:08 +0000 |
parents | d117fd4b82e5 |
children | 0e38f512f7e4 |
comparison
equal
deleted
inserted
replaced
75:9345835e2bc1 | 76:2473440671ce |
---|---|
26 import de.intevation.gnv.geobackend.util.DateUtils; | 26 import de.intevation.gnv.geobackend.util.DateUtils; |
27 import de.intevation.gnv.transition.describedata.DefaultKeyValueDescribeData; | 27 import de.intevation.gnv.transition.describedata.DefaultKeyValueDescribeData; |
28 import de.intevation.gnv.transition.describedata.KeyValueDescibeData; | 28 import de.intevation.gnv.transition.describedata.KeyValueDescibeData; |
29 import de.intevation.gnv.transition.describedata.MinMaxDescribeData; | 29 import de.intevation.gnv.transition.describedata.MinMaxDescribeData; |
30 import de.intevation.gnv.transition.exception.TransitionException; | 30 import de.intevation.gnv.transition.exception.TransitionException; |
31 import de.intevation.gnv.utils.ArtifactXMLUtilities; | |
31 | 32 |
32 /** | 33 /** |
33 * @author Tim Englich <tim.englich@intevation.de> | 34 * @author Tim Englich <tim.englich@intevation.de> |
34 * | 35 * |
35 */ | 36 */ |
36 public abstract class TransitionBase implements Transition { | 37 public abstract class TransitionBase implements Transition { |
37 /** | 38 /** |
38 * the logger, used to log exceptions and additonaly information | 39 * the logger, used to log exceptions and additonaly information |
39 */ | 40 */ |
40 private static Logger log = Logger.getLogger(GNVArtifactBase.class); | 41 private static Logger log = Logger.getLogger(GNVArtifactBase.class); |
41 | |
42 public static final String XFORM_URL = "http://www.w3.org/2002/xforms"; | |
43 public static final String XFORM_PREFIX = "xform"; | |
44 | 42 |
45 private String id = null; | 43 private String id = null; |
46 | 44 |
47 private String description = null; | 45 private String description = null; |
48 | 46 |
235 * @see de.intevation.gnv.transition.Transition#describe(org.w3c.dom.Document, org.w3c.dom.Node) | 233 * @see de.intevation.gnv.transition.Transition#describe(org.w3c.dom.Document, org.w3c.dom.Node) |
236 */ | 234 */ |
237 public void describe(Document document, Node rootNode) { | 235 public void describe(Document document, Node rootNode) { |
238 | 236 |
239 if(this.descibeData != null){ | 237 if(this.descibeData != null){ |
238 ArtifactXMLUtilities xmlutilities = new ArtifactXMLUtilities(); | |
240 Iterator<Object> it = this.descibeData.iterator(); | 239 Iterator<Object> it = this.descibeData.iterator(); |
241 while (it.hasNext()){ | 240 while (it.hasNext()){ |
242 Object o = it.next(); | 241 Object o = it.next(); |
243 if (o instanceof Collection<?>){ | 242 if (o instanceof Collection<?>){ |
244 Element selectNode = this.createXFormElement(document,"select"); | 243 Element selectNode = xmlutilities.createXFormElement(document,"select"); |
245 // TODO: HACK: | 244 // TODO: HACK: |
246 // BESSERE LÖSUNG FINDEN | 245 // BESSERE LÖSUNG FINDEN |
247 Object[] names = this.inputValueNames.toArray(); | 246 Object[] names = this.inputValueNames.toArray(); |
248 String name = names[names.length-1].toString(); | 247 String name = names[names.length-1].toString(); |
249 | 248 |
250 selectNode.setAttribute("ref", name); | 249 selectNode.setAttribute("ref", name); |
251 | 250 |
252 Element lableNode = this.createXFormElement(document, "label"); | 251 Element lableNode = xmlutilities.createXFormElement(document, "label"); |
253 lableNode.setTextContent(name); | 252 lableNode.setTextContent(name); |
254 Element choiceNode = this.createXFormElement(document, "choices"); | 253 Element choiceNode = xmlutilities.createXFormElement(document, "choices"); |
255 | 254 |
256 Collection<KeyValueDescibeData> values = (Collection)o; | 255 Collection<KeyValueDescibeData> values = (Collection)o; |
257 Iterator<KeyValueDescibeData> resultIt = values.iterator(); | 256 Iterator<KeyValueDescibeData> resultIt = values.iterator(); |
258 while (resultIt.hasNext()){ | 257 while (resultIt.hasNext()){ |
259 KeyValueDescibeData result = resultIt.next(); | 258 KeyValueDescibeData result = resultIt.next(); |
260 Element itemNode = this.createXFormElement(document, "item"); | 259 Element itemNode = xmlutilities.createXFormElement(document, "item"); |
261 | 260 |
262 | 261 |
263 Element choiceLableNode = this.createXFormElement(document, "label"); | 262 Element choiceLableNode = xmlutilities.createXFormElement(document, "label"); |
264 choiceLableNode.setTextContent(result.getValue()); | 263 choiceLableNode.setTextContent(result.getValue()); |
265 itemNode.appendChild(choiceLableNode); | 264 itemNode.appendChild(choiceLableNode); |
266 | 265 |
267 Element choicValueNode = this.createXFormElement(document, "value"); | 266 Element choicValueNode = xmlutilities.createXFormElement(document, "value"); |
268 choicValueNode.setTextContent(""+result.getKey()); | 267 choicValueNode.setTextContent(""+result.getKey()); |
269 itemNode.appendChild(choicValueNode); | 268 itemNode.appendChild(choicValueNode); |
270 | 269 |
271 choiceNode.appendChild(itemNode); | 270 choiceNode.appendChild(itemNode); |
272 } | 271 } |
285 if (max instanceof GregorianCalendar){ | 284 if (max instanceof GregorianCalendar){ |
286 Date d = ((GregorianCalendar)max).getTime(); | 285 Date d = ((GregorianCalendar)max).getTime(); |
287 max = DateUtils.getPatternedDateAmer(d); | 286 max = DateUtils.getPatternedDateAmer(d); |
288 } | 287 } |
289 | 288 |
290 Element inputMinNode = this.createXFormElement(document, "input"); | 289 Element inputMinNode = xmlutilities.createXFormElement(document, "input"); |
291 inputMinNode.setAttribute("ref", "minvalue"); | 290 inputMinNode.setAttribute("ref", "minvalue"); |
292 Element inputMinLableNode = this.createXFormElement(document, "label"); | 291 Element inputMinLableNode = xmlutilities.createXFormElement(document, "label"); |
293 inputMinLableNode.setTextContent("minvalue"); | 292 inputMinLableNode.setTextContent("minvalue"); |
294 inputMinNode.appendChild(inputMinLableNode); | 293 inputMinNode.appendChild(inputMinLableNode); |
295 | 294 |
296 Element inputMinValueNode = this.createXFormElement(document, "value"); | 295 Element inputMinValueNode = xmlutilities.createXFormElement(document, "value"); |
297 inputMinValueNode.setTextContent(min.toString()); | 296 inputMinValueNode.setTextContent(min.toString()); |
298 inputMinNode.appendChild(inputMinValueNode); | 297 inputMinNode.appendChild(inputMinValueNode); |
299 | 298 |
300 Element inputMaxNode = this.createXFormElement(document, "input"); | 299 Element inputMaxNode = xmlutilities.createXFormElement(document, "input"); |
301 inputMaxNode.setAttribute("ref", "maxvalue"); | 300 inputMaxNode.setAttribute("ref", "maxvalue"); |
302 Element inputMaxLableNode = this.createXFormElement(document, "label"); | 301 Element inputMaxLableNode = xmlutilities.createXFormElement(document, "label"); |
303 inputMaxLableNode.setTextContent("maxvalue"); | 302 inputMaxLableNode.setTextContent("maxvalue"); |
304 inputMaxNode.appendChild(inputMaxLableNode); | 303 inputMaxNode.appendChild(inputMaxLableNode); |
305 | 304 |
306 Element inputMaxValueNode = this.createXFormElement(document, "value"); | 305 Element inputMaxValueNode = xmlutilities.createXFormElement(document, "value"); |
307 inputMaxValueNode.setTextContent(max.toString()); | 306 inputMaxValueNode.setTextContent(max.toString()); |
308 inputMaxNode.appendChild(inputMaxValueNode); | 307 inputMaxNode.appendChild(inputMaxValueNode); |
309 | 308 |
310 rootNode.appendChild(inputMinNode); | 309 rootNode.appendChild(inputMinNode); |
311 rootNode.appendChild(inputMaxNode); | 310 rootNode.appendChild(inputMaxNode); |
315 } | 314 } |
316 } | 315 } |
317 | 316 |
318 } | 317 } |
319 | 318 |
320 private Element createXFormElement(Document document, String name) { | |
321 Element node = document.createElementNS(XFORM_URL, name); | |
322 node.setPrefix(XFORM_PREFIX); | |
323 return node; | |
324 } | |
325 | |
326 /** | 319 /** |
327 * @see de.intevation.gnv.transition.Transition#getDescibeData() | 320 * @see de.intevation.gnv.transition.Transition#getDescibeData() |
328 */ | 321 */ |
329 public Collection<Object> getDescibeData() { | 322 public Collection<Object> getDescibeData() { |
330 return this.descibeData; | 323 return this.descibeData; |