Mercurial > dive4elements > gnv-client
diff gnv-artifacts/src/main/java/de/intevation/gnv/transition/TransitionBase.java @ 61:5f47881f7c97
Implementation of the MIN- / MAX-Value Representation
gnv-artifacts/trunk@44 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Tim Englich <tim.englich@intevation.de> |
---|---|
date | Wed, 09 Sep 2009 09:29:39 +0000 |
parents | 2c5d8f5bced1 |
children | 6ae2d4134da3 |
line wrap: on
line diff
--- a/gnv-artifacts/src/main/java/de/intevation/gnv/transition/TransitionBase.java Tue Sep 08 16:24:34 2009 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/transition/TransitionBase.java Wed Sep 09 09:29:39 2009 +0000 @@ -5,6 +5,8 @@ import java.util.ArrayList; import java.util.Collection; +import java.util.Date; +import java.util.GregorianCalendar; import java.util.HashMap; import java.util.Iterator; import java.util.Map; @@ -21,6 +23,8 @@ import de.intevation.gnv.geobackend.base.query.QueryExecutor; import de.intevation.gnv.geobackend.base.query.QueryExecutorFactory; import de.intevation.gnv.geobackend.base.query.exception.QueryException; +import de.intevation.gnv.geobackend.util.DateUtils; +import de.intevation.gnv.transition.describedata.MinMaxDescribeData; import de.intevation.gnv.transition.exception.TransitionException; /** @@ -54,7 +58,8 @@ private Map<String,InputData> inputData = null; - private Collection<Object> descibeData = null; + protected Collection<Object> descibeData = null; + /** * Constructor */ @@ -200,15 +205,22 @@ } QueryExecutor queryExecutor = QueryExecutorFactory.getInstance().getQueryExecutor(); Collection<Result> result = queryExecutor.executeQuery(this.queryID, filterValues); - if (this.descibeData == null){ - this.descibeData = new ArrayList<Object>(); - } - this.descibeData.add(result); + this.purifyResult(result); } catch (QueryException e) { log.error(e,e); throw new TransitionException(e); } } + + /** + * @param result + */ + protected void purifyResult(Collection<Result> result) { + if (this.descibeData == null){ + this.descibeData = new ArrayList<Object>(); + } + this.descibeData.add(result); + } /** * @see de.intevation.gnv.transition.Transition#describe(org.w3c.dom.Document, org.w3c.dom.Node) @@ -218,43 +230,79 @@ if(this.descibeData != null){ Iterator<Object> it = this.descibeData.iterator(); while (it.hasNext()){ - Element selectNode = this.createXFormElement(document,"select"); - // TODO: HACK: - // BESSERE LÖSUNG FINDEN - Object[] names = this.inputValueNames.toArray(); - String name = names[names.length-1].toString(); - - selectNode.setAttribute("ref", name); - - Element lableNode = this.createXFormElement(document, "label"); - lableNode.setTextContent(name); - Element choiceNode = this.createXFormElement(document, "choices"); - - Object o = it.next(); if (o instanceof Collection<?>){ + Element selectNode = this.createXFormElement(document,"select"); + // TODO: HACK: + // BESSERE LÖSUNG FINDEN + Object[] names = this.inputValueNames.toArray(); + String name = names[names.length-1].toString(); + + selectNode.setAttribute("ref", name); + + Element lableNode = this.createXFormElement(document, "label"); + lableNode.setTextContent(name); + Element choiceNode = this.createXFormElement(document, "choices"); + Collection<Result> values = (Collection)o; Iterator<Result> resultIt = values.iterator(); while (resultIt.hasNext()){ Result result = resultIt.next(); Element itemNode = this.createXFormElement(document, "item"); - String lableName = result.getResultDescriptor().getColumnName(1); - String valueName = result.getResultDescriptor().getColumnName(0); + Element choiceLableNode = this.createXFormElement(document, "label"); - choiceLableNode.setTextContent(result.getString(lableName)); + choiceLableNode.setTextContent(result.getString("VALUE")); itemNode.appendChild(choiceLableNode); Element choicValueNode = this.createXFormElement(document, "value"); - choicValueNode.setTextContent(result.getString(valueName)); + choicValueNode.setTextContent(result.getString("KEY")); itemNode.appendChild(choicValueNode); choiceNode.appendChild(itemNode); } + selectNode.appendChild(lableNode); + selectNode.appendChild(choiceNode); + rootNode.appendChild(selectNode); + }else if (o instanceof MinMaxDescribeData){ + MinMaxDescribeData descibeData = (MinMaxDescribeData)o; + Object min = descibeData.getMinValue(); + Object max = descibeData.getMaxValue(); + if (min instanceof GregorianCalendar){ + Date d = ((GregorianCalendar)min).getTime(); + min = DateUtils.getPatternedDateGerm(d); + } + + if (max instanceof GregorianCalendar){ + Date d = ((GregorianCalendar)max).getTime(); + max = DateUtils.getPatternedDateGerm(d); + } + + Element inputMinNode = this.createXFormElement(document, "input"); + inputMinNode.setAttribute("ref", "minvalue"); + Element inputMinLableNode = this.createXFormElement(document, "label"); + inputMinLableNode.setTextContent("minvalue"); + inputMinNode.appendChild(inputMinLableNode); + + Element inputMinValueNode = this.createXFormElement(document, "value"); + inputMinValueNode.setTextContent(min.toString()); + inputMinNode.appendChild(inputMinValueNode); + + Element inputMaxNode = this.createXFormElement(document, "input"); + inputMaxNode.setAttribute("ref", "maxvalue"); + Element inputMaxLableNode = this.createXFormElement(document, "label"); + inputMaxLableNode.setTextContent("maxvalue"); + inputMaxNode.appendChild(inputMaxLableNode); + + Element inputMaxValueNode = this.createXFormElement(document, "value"); + inputMaxValueNode.setTextContent(max.toString()); + inputMaxNode.appendChild(inputMaxValueNode); + + rootNode.appendChild(inputMinNode); + rootNode.appendChild(inputMaxNode); + } - selectNode.appendChild(lableNode); - selectNode.appendChild(choiceNode); - rootNode.appendChild(selectNode); + } }