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;

http://dive4elements.wald.intevation.org