Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/ComputationRangeState.java @ 1712:7e19449d7826
#253 Modified the title creation of chart curves - titles will now equal the Facet's description.
flys-artifacts/trunk@2984 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Mon, 17 Oct 2011 10:47:36 +0000 |
parents | 022f62c75878 |
children | 9144e5a5027b |
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/ComputationRangeState.java Mon Oct 17 08:45:26 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/ComputationRangeState.java Mon Oct 17 10:47:36 2011 +0000 @@ -1,5 +1,6 @@ package de.intevation.flys.artifacts.states; +import java.util.Date; import java.util.List; import org.apache.log4j.Logger; @@ -15,12 +16,16 @@ import de.intevation.artifactdatabase.data.StateData; import de.intevation.artifactdatabase.state.Facet; +import de.intevation.flys.model.DischargeTable; +import de.intevation.flys.model.Gauge; import de.intevation.flys.model.River; +import de.intevation.flys.model.TimeInterval; import de.intevation.flys.artifacts.FLYSArtifact; import de.intevation.flys.artifacts.WINFOArtifact; import de.intevation.flys.artifacts.model.CalculationResult; import de.intevation.flys.artifacts.model.FacetTypes; +import de.intevation.flys.artifacts.model.GaugesFactory; import de.intevation.flys.artifacts.model.RiverFactory; import de.intevation.flys.artifacts.model.WaterlevelFacet; import de.intevation.flys.artifacts.model.WQKms; @@ -173,7 +178,7 @@ String stateID = winfo.getCurrentStateId(); for (int i = 0; i < wqkms.length; ++i) { - String name = wqkms[i].getName(); + String name = getSeriesName(context, wqkms[i].getName()); facets.add(new WaterlevelFacet( i, DISCHARGE_CURVE, name, ComputeType.FEED, stateID, hash)); } @@ -182,6 +187,47 @@ return res; } + protected String getSeriesName(CallContext cc, String gaugeName) { + Gauge gauge = GaugesFactory.getGauge(gaugeName); + + if (gauge == null) { + logger.warn("Cannot determine Gauge for name: " + gaugeName); + return gaugeName; + } + + List<DischargeTable> dts = gauge.getDischargeTables(); + + for (DischargeTable dt: dts) { + if (dt.getKind() == 0) { + TimeInterval ti = dt.getTimeInterval(); + + Date start = ti.getStartTime(); + Date end = ti.getStopTime(); + + String name = gauge.getName(); + + if (end == null) { + Object[] args = new Object[] { name, start }; + return Resources.getMsg( + cc.getMeta(), + "chart.discharge.curve.curve.valid.from", + "", + args); + } + else { + Object[] args = new Object[] { name, start, end }; + return Resources.getMsg( + cc.getMeta(), + "chart.discharge.curve.curve.valid.range", + "", + args); + } + } + } + + return gauge.getName(); + } + @Override protected double[] getMinMax(Artifact artifact) {