# HG changeset patch # User Felix Wolfsteller # Date 1320144005 0 # Node ID 26d7077e42d2b5583d0c8afcfdfbfa624297e4d2 # Parent 6f83d9d434f2bf18d10c96d119ca0944c94ce865 Corrected CrossSection diagram/out to include one facet per computed waterlevel. flys-artifacts/trunk@3126 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r 6f83d9d434f2 -r 26d7077e42d2 flys-artifacts/ChangeLog --- a/flys-artifacts/ChangeLog Mon Oct 31 17:05:14 2011 +0000 +++ b/flys-artifacts/ChangeLog Tue Nov 01 10:40:05 2011 +0000 @@ -1,3 +1,20 @@ +2011-11-01 Felix Wolfsteller + + Show multiple water lines and facets in cross-section diagram if + multiple waterlevel values had been entered. + + * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java + (appendBackgroundActivity): Made static. + (getWaterLines): Add 'idx' argument to specify index of queried + waterlevel. + + * src/main/java/de/intevation/flys/artifacts/model/CrossSectionWaterLineFacet.java: + Add index. + + * src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java: + Add one Facet for each of the computed waterlevels. + + 2011-10-31 Sascha L. Teichmann * src/main/java/de/intevation/flys/artifacts/geom/VectorUtils.java: diff -r 6f83d9d434f2 -r 26d7077e42d2 flys-artifacts/src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java --- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java Mon Oct 31 17:05:14 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java Tue Nov 01 10:40:05 2011 +0000 @@ -189,7 +189,7 @@ } - protected void appendBackgroundActivity( + protected static void appendBackgroundActivity( ElementCreator cr, Element root, CallContext context @@ -744,10 +744,11 @@ * @return an array holding coordinates of points of surface of water ( * in the form {{x1, x2} {y1, y2}} ). */ - public double [][] getWaterLines() { + public double [][] getWaterLines(int idx) { logger.debug("getWaterLines()"); CrossSectionLine csl = searchCrossSectionKmLine(); List points = csl.fetchCrossSectionLinesPoints(); + // Need W at km WQKms [] wqkms = (WQKms[]) getWaterlevelData().getData(); if (wqkms.length == 0) { @@ -755,11 +756,14 @@ return Lines.createWaterLines(points, 0.0f); } - if (wqkms.length > 1) { - logger.warn("More than one wqkms found, taking first one."); + if (wqkms.length < idx) { + logger.error("getWaterLines() requested index (" + + idx + " not found."); } + // Find W at km, linear naive approach. - WQKms triple = wqkms[0]; + WQKms triple = wqkms[idx]; + // Find index of km. double wishKM = 0.0f; int old_idx = 0; diff -r 6f83d9d434f2 -r 26d7077e42d2 flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/CrossSectionWaterLineFacet.java --- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/CrossSectionWaterLineFacet.java Mon Oct 31 17:05:14 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/CrossSectionWaterLineFacet.java Tue Nov 01 10:40:05 2011 +0000 @@ -22,8 +22,8 @@ /** Trivial constructor, set (maybe localized) description. */ - public CrossSectionWaterLineFacet(String description) { - super(0, CROSS_SECTION_WATER_LINE, description); + public CrossSectionWaterLineFacet(int idx, String description) { + super(idx, CROSS_SECTION_WATER_LINE, description); } @@ -35,14 +35,14 @@ WINFOArtifact winfo = (WINFOArtifact)artifact; - return winfo.getWaterLines(); + return winfo.getWaterLines(this.getIndex()); } /** Do a deep copy. */ @Override public Facet deepCopy() { - CrossSectionWaterLineFacet copy = new CrossSectionWaterLineFacet(this.description); + CrossSectionWaterLineFacet copy = new CrossSectionWaterLineFacet(this.getIndex(), this.description); copy.set(this); return copy; } diff -r 6f83d9d434f2 -r 26d7077e42d2 flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java --- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java Mon Oct 31 17:05:14 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java Tue Nov 01 10:40:05 2011 +0000 @@ -71,6 +71,8 @@ Facet q = new WaterlevelFacet( i, LONGITUDINAL_Q, nameQ, ComputeType.ADVANCE, id, hash); + facets.add(new CrossSectionWaterLineFacet(i, nameQ)); + facets.add(w); facets.add(q); } @@ -85,10 +87,6 @@ facets.add(csv); // Also register the CrossSectionFacet (added to respective out). facets.add(new CrossSectionFacet(winfo.getCrossSectionName())); - // Assume to be in wq_single mode. - // TODO: Use createWTitle for label. - facets.add(new CrossSectionWaterLineFacet("Q=" + - winfo.getDataAsString("wq_single"))); } if (res.getReport().hasProblems()) {