# HG changeset patch # User Felix Wolfsteller # Date 1351576806 -3600 # Node ID 41cf1172825c10ab7c82f164a7f4567770ece362 # Parent c74155ebe3ac2bcd3dfa119b11031aa937c42789# Parent 4c2005e6ac6581c708842878db621b1a045a6e99 Merged. diff -r 4c2005e6ac65 -r 41cf1172825c flys-artifacts/doc/conf/artifacts/winfo.xml --- a/flys-artifacts/doc/conf/artifacts/winfo.xml Mon Oct 29 15:43:49 2012 +0100 +++ b/flys-artifacts/doc/conf/artifacts/winfo.xml Tue Oct 30 07:00:06 2012 +0100 @@ -632,6 +632,11 @@ + + + + + diff -r 4c2005e6ac65 -r 41cf1172825c flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java --- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java Mon Oct 29 15:43:49 2012 +0100 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java Tue Oct 30 07:00:06 2012 +0100 @@ -321,5 +321,7 @@ String FIX_PARAMETERS = "fix_parameters"; String STATIC_BEDHEIGHT = "static_bedheight"; + + String EXTREME_WQ_CURVE = "extreme_wq_curve"; } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : diff -r 4c2005e6ac65 -r 41cf1172825c flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/WQFacet.java --- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/WQFacet.java Mon Oct 29 15:43:49 2012 +0100 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/WQFacet.java Tue Oct 30 07:00:06 2012 +0100 @@ -31,10 +31,10 @@ /** - * Returns the data this facet requires. + * Returns the data this facet provides at km given in context. * * @param artifact the owner artifact. - * @param context the CallContext (ignored). + * @param context the CallContext. * * @return the data. */ diff -r 4c2005e6ac65 -r 41cf1172825c flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/extreme/Curve.java --- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/extreme/Curve.java Mon Oct 29 15:43:49 2012 +0100 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/extreme/Curve.java Tue Oct 30 07:00:06 2012 +0100 @@ -16,6 +16,7 @@ import org.apache.log4j.Logger; +/** An extrapolating W/Q function/curve. */ public class Curve implements Serializable, Function { @@ -63,6 +64,8 @@ return coeffs; } + + /** Calculate value at given x. */ @Override public double value(double x) { if (x < qs[0]) return Double.NaN; diff -r 4c2005e6ac65 -r 41cf1172825c flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/extreme/ExtremeCurveFacet.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/extreme/ExtremeCurveFacet.java Tue Oct 30 07:00:06 2012 +0100 @@ -0,0 +1,104 @@ +package de.intevation.flys.artifacts.model.extreme; + +import de.intevation.artifacts.Artifact; +import de.intevation.artifacts.CallContext; + +import de.intevation.flys.artifacts.FLYSArtifact; + +import de.intevation.flys.artifacts.access.FixAnalysisAccess; + +import de.intevation.flys.artifacts.model.CalculationResult; +import de.intevation.flys.artifacts.model.DataFacet; +import de.intevation.flys.artifacts.model.FacetTypes; +import de.intevation.flys.artifacts.model.Parameters; + +import de.intevation.flys.artifacts.states.DefaultState.ComputeType; + +import de.intevation.flys.utils.KMIndex; + +import org.apache.log4j.Logger; + +/** + * Facet to show the W|Q values. + */ +public class ExtremeCurveFacet +extends DataFacet +implements FacetTypes { + + /** House logger. */ + private static Logger logger = Logger.getLogger(ExtremeCurveFacet.class); + + + /** Trivial Constructor. */ + public ExtremeCurveFacet() { + } + + + /** + * @param description Description of the facet. + */ + public ExtremeCurveFacet(String description) { + super(0, EXTREME_WQ_CURVE, description, ComputeType.ADVANCE, null, null); + } + + + public ExtremeCurveFacet(int index, String description) { + super(index, EXTREME_WQ_CURVE, description, ComputeType.ADVANCE, null, null); + } + + + /** + * Returns the data (a curve/function) this facet provides at km given in context. + * + * @param artifact the owner artifact. + * @param context the CallContext. + * + * @return the data. + */ + @Override + public Object getData(Artifact artifact, CallContext context) { + logger.debug("ExtremeCurveFacet.getData"); + if (artifact instanceof FLYSArtifact) { + FLYSArtifact flys = (FLYSArtifact)artifact; + + CalculationResult res = + (CalculationResult) flys.compute(context, + ComputeType.ADVANCE, + false); + + ExtremeResult result = (ExtremeResult) res.getData(); + double currentKm = + ((Double)context.getContextValue("currentKm")).doubleValue(); + + KMIndex curves = result.getCurves(); + + KMIndex.Entry curveEntry = curves.search(currentKm); + + if (curveEntry != null) { + logger.debug("A curve at km = " + currentKm); + return curveEntry.getValue(); + } + else { + logger.debug("No curve at km = " + currentKm); + return null; + } + } + else { + logger.debug("Not an instance of FLYSArtifact / WINFOArtifact."); + return null; + } + } + + + /** + * Create a deep copy of this Facet. + * @return a deep copy. + */ + @Override + public ExtremeCurveFacet deepCopy() { + ExtremeCurveFacet copy = new ExtremeCurveFacet(); + copy.set(this); + return copy; + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r 4c2005e6ac65 -r 41cf1172825c flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/extreme/ExtremeResult.java --- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/extreme/ExtremeResult.java Mon Oct 29 15:43:49 2012 +0100 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/extreme/ExtremeResult.java Tue Oct 30 07:00:06 2012 +0100 @@ -6,10 +6,13 @@ import de.intevation.flys.utils.KMIndex; +/** Result from an extreme value (extrapolation) calculation. */ public class ExtremeResult implements Serializable { + /** Curves that refer to actual values and a function for extrapolation. */ protected KMIndex curves; + protected WQKms [] wqkms; public ExtremeResult() { diff -r 4c2005e6ac65 -r 41cf1172825c flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/fixings/FixWQCurveFacet.java --- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/fixings/FixWQCurveFacet.java Mon Oct 29 15:43:49 2012 +0100 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/fixings/FixWQCurveFacet.java Tue Oct 30 07:00:06 2012 +0100 @@ -31,6 +31,7 @@ /** House logger. */ private static Logger logger = Logger.getLogger(FixWQCurveFacet.class); + /** Trivial Constructor. */ public FixWQCurveFacet() { } @@ -49,10 +50,10 @@ /** - * Returns the data this facet requires. + * Returns the data this facet provides at given km, a function. * * @param artifact the owner artifact. - * @param context the CallContext (ignored). + * @param context the CallContext. * * @return the data. */ @@ -107,7 +108,7 @@ return fix; } else { - logger.debug("Not an instance of FixationArtifact."); + logger.debug("Not an instance of FLYSArtifact / FixationArtifact."); return null; } } diff -r 4c2005e6ac65 -r 41cf1172825c flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/extreme/ExtremeCompute.java --- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/extreme/ExtremeCompute.java Mon Oct 29 15:43:49 2012 +0100 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/extreme/ExtremeCompute.java Tue Oct 30 07:00:06 2012 +0100 @@ -15,6 +15,7 @@ import de.intevation.flys.artifacts.model.WaterlevelFacet; import de.intevation.flys.artifacts.model.WQKms; +import de.intevation.flys.artifacts.model.extreme.ExtremeCurveFacet; import de.intevation.flys.artifacts.model.extreme.ExtremeCalculation; import de.intevation.flys.artifacts.model.extreme.ExtremeResult; @@ -94,9 +95,10 @@ i, LONGITUDINAL_Q, nameQ, ComputeType.ADVANCE, id, hash); // TODO add more facets like: - // csv, data, pdf wst facet + // csv, data, pdf wst facet, data facet // furthermore, waterlevel //facets.add(new CrossSectionWaterLineFacet(i, nameW)); + facets.add(new ExtremeCurveFacet("WQ")); facets.add(w); facets.add(q); diff -r 4c2005e6ac65 -r 41cf1172825c flys-client/src/main/java/de/intevation/flys/client/client/ui/chart/NaviChartOutputTab.java --- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/chart/NaviChartOutputTab.java Mon Oct 29 15:43:49 2012 +0100 +++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/chart/NaviChartOutputTab.java Tue Oct 30 07:00:06 2012 +0100 @@ -38,6 +38,7 @@ import java.util.Date; + /** * Tab representing and showing one Chart-output. * @@ -290,5 +291,5 @@ return attr; } - } +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r 4c2005e6ac65 -r 41cf1172825c flys-client/src/main/java/de/intevation/flys/client/shared/model/FixAnalysisArtifact.java --- a/flys-client/src/main/java/de/intevation/flys/client/shared/model/FixAnalysisArtifact.java Mon Oct 29 15:43:49 2012 +0100 +++ b/flys-client/src/main/java/de/intevation/flys/client/shared/model/FixAnalysisArtifact.java Tue Oct 30 07:00:06 2012 +0100 @@ -6,7 +6,7 @@ /** - * The Fixanalysis implementation of an Artifact. + * The Fixanalysis implementation of an Artifact (client side). * * @author Raimund Renkert */ @@ -17,6 +17,7 @@ protected FixFilter filter; + public FixAnalysisArtifact() { this.filter = null; } diff -r 4c2005e6ac65 -r 41cf1172825c flys-client/src/main/java/de/intevation/flys/client/shared/model/FixFilter.java --- a/flys-client/src/main/java/de/intevation/flys/client/shared/model/FixFilter.java Mon Oct 29 15:43:49 2012 +0100 +++ b/flys-client/src/main/java/de/intevation/flys/client/shared/model/FixFilter.java Tue Oct 30 07:00:06 2012 +0100 @@ -2,7 +2,7 @@ import java.io.Serializable; - +/** Probably something like *Access, but from client side. */ public class FixFilter implements Serializable{ protected String river; @@ -103,4 +103,4 @@ return this.events; } } - +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :