# HG changeset patch # User Ingo Weinzierl # Date 1268667599 0 # Node ID 0563389138bbae47c30863db1aefb16961264adb # Parent a40a6de7045997879d4949096f5178cb4ffb0b26 Changed source of displayed coordinate in 'HorizontalProfil'-charts' subtitle (issue120). gnv-artifacts/trunk@779 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r a40a6de70459 -r 0563389138bb gnv-artifacts/ChangeLog --- a/gnv-artifacts/ChangeLog Mon Mar 15 15:26:26 2010 +0000 +++ b/gnv-artifacts/ChangeLog Mon Mar 15 15:39:59 2010 +0000 @@ -1,3 +1,18 @@ +2010-03-15 Ingo Weinzierl + + Issue120 + + * src/main/java/de/intevation/gnv/state/StateBase.java: New method + implemented which searches for a specific parameter by its name in the + current state and in all parent states. Null is returned if no parameter + could be found with this name, otherwise the InputData object. + + * src/main/java/de/intevation/gnv/state/profile/horizontal/HorizontalProfileOutputState.java: + Display that point in chart subtitle which have been entered by the user. + + * src/main/java/de/intevation/gnv/utils/WKTUtils.java: Added a new method + to transform a Point object to a user-friendly formatted string. + 2010-03-15 Tim Englich * doc/conf/products/verticalprofile/conf_timeseriespoint.xml: diff -r a40a6de70459 -r 0563389138bb gnv-artifacts/src/main/java/de/intevation/gnv/state/StateBase.java --- a/gnv-artifacts/src/main/java/de/intevation/gnv/state/StateBase.java Mon Mar 15 15:26:26 2010 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/state/StateBase.java Mon Mar 15 15:39:59 2010 +0000 @@ -1027,6 +1027,21 @@ return this.inputData != null ? this.inputData.values() : null; } + public InputData getInputDataByName(String name) { + State state = this; + + while (state != null) { + InputData data = state.inputData().get(name); + if (data != null) { + return data; + } + + state = state.getParent(); + } + + return null; + } + public void endOfLife(Object globalContext) { } } diff -r a40a6de70459 -r 0563389138bb gnv-artifacts/src/main/java/de/intevation/gnv/state/profile/horizontal/HorizontalProfileOutputState.java --- a/gnv-artifacts/src/main/java/de/intevation/gnv/state/profile/horizontal/HorizontalProfileOutputState.java Mon Mar 15 15:26:26 2010 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/state/profile/horizontal/HorizontalProfileOutputState.java Mon Mar 15 15:39:59 2010 +0000 @@ -1,11 +1,5 @@ -/** - * - */ package de.intevation.gnv.state.profile.horizontal; -import com.vividsolutions.jts.io.ParseException; -import com.vividsolutions.jts.io.WKTReader; - import de.intevation.artifacts.CallContext; import de.intevation.gnv.chart.Chart; @@ -25,17 +19,21 @@ import de.intevation.gnv.state.exception.StateException; +import de.intevation.gnv.state.InputData; + import de.intevation.gnv.state.timeseries.TimeSeriesOutputState; import de.intevation.gnv.statistics.HorizontalProfileStatistics; import de.intevation.gnv.statistics.Statistics; +import de.intevation.gnv.utils.InputValidator; import de.intevation.gnv.utils.WKTUtils; import java.io.IOException; import java.io.OutputStream; import java.io.UnsupportedEncodingException; +import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Collection; @@ -49,6 +47,7 @@ /** * @author Tim Englich (tim.englich@intevation.de) + * @author Ingo Weinzierl (ingo.weinzierl@intevation.de) */ public class HorizontalProfileOutputState extends TimeSeriesOutputState @@ -257,18 +256,26 @@ return ""; StringBuilder meta = new StringBuilder(); - WKTReader wktReader = new WKTReader(); - for (int i = 0; i < CHART_TITLE_META.length; i++) { String qry = CHART_TITLE_META[i]; if (qry.equals("SHAPE")) { - String wktPoint = result.getString(qry); - - meta.append(getMessage(locale,"coordinate","coordinate")); - meta.append(": "); - meta.append(WKTUtils.toText(wktPoint)); + try { + InputData data = getInputDataByName("mesh_coordinate"); + if (data == null) { + continue; + } + String wktPoint = data.getValue(); + meta.append(getMessage(locale,"coordinate","coordinate")); + meta.append(": "); + meta.append(WKTUtils.toText( + locale, + new InputValidator().getPointValue(wktPoint))); + } + catch (Exception e) { + log.error(e, e); + } } else { log.debug( @@ -330,7 +337,7 @@ endDate = current; } } - catch (java.text.ParseException pe) { + catch (ParseException pe) { log.warn("Error while parsing date: " + data.getValue(), pe); } } diff -r a40a6de70459 -r 0563389138bb gnv-artifacts/src/main/java/de/intevation/gnv/utils/WKTUtils.java --- a/gnv-artifacts/src/main/java/de/intevation/gnv/utils/WKTUtils.java Mon Mar 15 15:26:26 2010 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/utils/WKTUtils.java Mon Mar 15 15:39:59 2010 +0000 @@ -364,6 +364,14 @@ return toText(Locale.getDefault(), wkt); } + public static String toText(Point p) { + return toText(Locale.getDefault(), toWKT(p.getCoordinate())); + } + + public static String toText(Locale locale, Point p) { + return toText(locale, toWKT(p.getCoordinate())); + } + public static String toText(Locale locale, String wkt) { String formattedCoordinate = null; try {