# HG changeset patch # User Tom Gottfried # Date 1376043113 -7200 # Node ID 23ab795f2f0e7bf1b9b34b143bf1ab111e2cf4d8 # Parent bdbe704dd433bc4ee9c50acfa704b30fbc2c1ebd Moved most of the functionality of FlowVelocityGenerator to LongitudinalSectionGenerator on the way to longitudinal-section symmetry. ToDos left. diff -r bdbe704dd433 -r 23ab795f2f0e artifacts/src/main/java/org/dive4elements/river/exports/FlowVelocityGenerator.java --- a/artifacts/src/main/java/org/dive4elements/river/exports/FlowVelocityGenerator.java Thu Aug 08 17:36:44 2013 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/exports/FlowVelocityGenerator.java Fri Aug 09 12:11:53 2013 +0200 @@ -37,7 +37,7 @@ /** - * An OutGenerator that generates flow velocity curves. + * An OutGenerator that generates flow velocity diagramms. * * @author Ingo Weinzierl */ @@ -46,24 +46,21 @@ implements FacetTypes { public enum YAXIS { - V(0), - T(1), - Q(2), - D(3); - /* TODO Q and Density will come as 4th and 3rd axis. */ + V(0), // flow velocity + T(1), // tau (shear stress) + Q(2), // discharge + O(3), // diameter + W(4), // waterlevel + D(5); // waterlevel-difference protected int idx; private YAXIS(int c) { - idx = c; + idx = c; } } /** The logger that is used in this generator. */ private static Logger logger = Logger.getLogger(FlowVelocityGenerator.class); - /** Key to look up internationalized String for annotations label. */ - public static final String I18N_ANNOTATIONS_LABEL = - "chart.flow_velocity.annotations.label"; - /** * Key to look up internationalized String for LongitudinalSection diagrams * titles. @@ -71,298 +68,10 @@ public static final String I18N_CHART_TITLE = "chart.flow_velocity.section.title"; - /** - * Key to look up internationalized String for LongitudinalSection diagrams - * subtitles. - */ - public static final String I18N_CHART_SUBTITLE = - "chart.flow_velocity.section.subtitle"; - - /** - * Key to look up internationalized String for LongitudinalSection diagrams - * short subtitles. - */ - public static final String I18N_CHART_SHORT_SUBTITLE = - "chart.flow_velocity.section.shortsubtitle"; - - public static final String I18N_YAXIS_LABEL = - "chart.flow_velocity.section.yaxis.label"; - - public static final String I18N_2YAXIS_LABEL = - "chart.flow_velocity.section.yaxis.second.label"; - - public static final String I18N_3YAXIS_LABEL = - "chart.flow_velocity.section.yaxis.third.label"; - public static final String I18N_4YAXIS_LABEL = "chart.bedquality.yaxis.label.diameter"; - - public static final String I18N_CHART_TITLE_DEFAULT = "Geschwindigkeit- und Schubspannung"; - public static final String I18N_YAXIS_LABEL_DEFAULT = "Geschwindigkeit v [m/s]"; - public static final String I18N_2YAXIS_LABEL_DEFAULT = "Schubspannung Tau [N]"; - public static final String I18N_3YAXIS_LABEL_DEFAULT = "Q [m³/s]"; - public static final String I18N_4YAXIS_LABEL_DEFAULT = "Durchmesser [mm]"; - - @Override - protected YAxisWalker getYAxisWalker() { - return new YAxisWalker() { - @Override - public int length() { - return YAXIS.values().length; - } - - @Override - public String getId(int idx) { - YAXIS[] yaxes = YAXIS.values(); - return yaxes[idx].toString(); - } - }; - } - - - /** - * Returns the default title for this chart. - * - * @return the default title for this chart. - */ - @Override - public String getDefaultChartTitle() { - Object[] args = new Object[] { - getRiverName() - }; - - return msg(I18N_CHART_TITLE, I18N_CHART_TITLE_DEFAULT, args); - } - - - /** - * Get internationalized label for the x axis. - */ - @Override - protected String getDefaultXAxisLabel() { - D4EArtifact flys = (D4EArtifact) master; - - return msg( - I18N_XAXIS_LABEL, - I18N_XAXIS_LABEL_DEFAULT, - new Object[] { RiverUtils.getRiver(flys).getName() }); - } - - - @Override - protected String getDefaultYAxisLabel(int index) { - String label = "default"; - - if (index == YAXIS.V.idx) { - label = getVAxisLabel(); - } - else if (index == YAXIS.T.idx) { - label = getTAxisLabel(); - } - else if (index == YAXIS.Q.idx) { - label = getQAxisLabel(); - } - else if (index == YAXIS.D.idx) { - label = getDAxisLabel(); - } - - return label; - } - - - /** - * Get internationalized label for the y axis. - */ - protected String getVAxisLabel() { - return msg(I18N_YAXIS_LABEL, I18N_YAXIS_LABEL_DEFAULT); - } - - - /** - * Get internationalized label for the y axis. - */ - protected String getQAxisLabel() { - return msg(I18N_3YAXIS_LABEL, I18N_3YAXIS_LABEL_DEFAULT); - } - - /** - * Get internationalized label for the y axis. - */ - protected String getTAxisLabel() { - return msg(I18N_2YAXIS_LABEL, I18N_2YAXIS_LABEL_DEFAULT); - } - - /** - * Get internationalized label for the y axis. - */ - protected String getDAxisLabel() { - return msg(I18N_4YAXIS_LABEL, I18N_4YAXIS_LABEL_DEFAULT); - } - - /** - * Produce output. - * @param artifactAndFacet current facet. - * @param attr theme for facet - * @param visible Whether this facets data is actually visible or not. + /** TODO: + * are the following defined somewhere else too? + * remove them here! */ - public void doOut( - ArtifactAndFacet artifactAndFacet, - Document attr, - boolean visible - ) { - String name = artifactAndFacet.getFacetName(); - - logger.debug("FlowVelocityGenerator.doOut: " + name); - - if (name == null) { - logger.error("No facet name for doOut(). No output generated!"); - return; - } - - Facet facet = artifactAndFacet.getFacet(); - - if (facet == null) { - return; - } - - if (getXBounds(0) != null && getDomainAxisRange() != null) { - logger.debug(Arrays.toString(getDomainAxisRangeFromRequest())); - Bounds bounds = - calculateZoom(getXBounds(0), getDomainAxisRange()); - context.putContextValue("startkm", bounds.getLower()); - context.putContextValue("endkm", bounds.getUpper()); - } - else if (getXBounds(0) != null && getDomainAxisRange() == null) { - context.putContextValue("startkm", getXBounds(0).getLower()); - context.putContextValue("endkm", getXBounds(0).getUpper()); - } - else if (getXBounds(0) == null && getDomainAxisRange() == null) { - D4EArtifact artifact = (D4EArtifact)artifactAndFacet.getArtifact(); - FlowVelocityAccess access = new FlowVelocityAccess(artifact); - context.putContextValue("startkm", access.getLowerKM()); - context.putContextValue("endkm", access.getUpperKM()); - } - else if (getXBounds(0) == null && getDomainAxisRange() != null){ - D4EArtifact artifact = (D4EArtifact)artifactAndFacet.getArtifact(); - FlowVelocityAccess access = new FlowVelocityAccess(artifact); - Bounds b = new DoubleBounds(access.getLowerKM(), access.getUpperKM()); - Bounds bounds = - calculateZoom(b, getDomainAxisRange()); - context.putContextValue("startkm", bounds.getLower()); - context.putContextValue("endkm", bounds.getUpper()); - } - if (name.equals(FLOW_VELOCITY_MAINCHANNEL)) { - doMainChannelOut( - (FlowVelocityData) artifactAndFacet.getData(context), - artifactAndFacet, - attr, - visible); - } - else if (name.equals(FLOW_VELOCITY_TOTALCHANNEL)) { - doTotalChannelOut( - (FlowVelocityData) artifactAndFacet.getData(context), - artifactAndFacet, - attr, - visible); - } - else if (name.equals(FLOW_VELOCITY_MAINCHANNEL_FILTERED)) { - doMainChannelOut( - (FlowVelocityData) artifactAndFacet.getData(context), - artifactAndFacet, - attr, - visible); - } - else if (name.equals(FLOW_VELOCITY_TOTALCHANNEL_FILTERED)) { - doTotalChannelOut( - (FlowVelocityData) artifactAndFacet.getData(context), - artifactAndFacet, - attr, - visible); - } - else if (name.equals(FLOW_VELOCITY_DISCHARGE)) { - doQOut( - (FlowVelocityData) artifactAndFacet.getData(context), - artifactAndFacet, - attr, - visible); - } - else if (name.equals(FLOW_VELOCITY_TAU)) { - doTauOut( - (FlowVelocityData) artifactAndFacet.getData(context), - artifactAndFacet, - attr, - visible); - } - else if (name.equals(FLOW_VELOCITY_TAU_FILTERED)) { - doTauOut( - (FlowVelocityData) artifactAndFacet.getData(context), - artifactAndFacet, - attr, - visible); - } - - else if (name.equals(FLOW_VELOCITY_ANNOTATION)) { - doAnnotations( - (RiverAnnotation) artifactAndFacet.getData(context), - artifactAndFacet, - attr, - visible); - } - else if (FacetTypes.IS.AREA(name)) { - doArea( - artifactAndFacet.getData(context), - artifactAndFacet, - attr, - visible); - } - else if (FacetTypes.IS.MANUALPOINTS(name)) { - doPoints( - artifactAndFacet.getData(context), - artifactAndFacet, - attr, - visible, - YAXIS.V.idx); - } - else if (name.equals(LONGITUDINAL_ANNOTATION)) { - doAnnotations( - (RiverAnnotation) artifactAndFacet.getData(context), - artifactAndFacet, - attr, - visible); - } - else if (name.equals(FLOW_VELOCITY_MEASUREMENT)) { - doVPointOut( - artifactAndFacet.getData(context), - artifactAndFacet, - attr, - visible); - } - else if (name.equals(BED_QUALITY_BED_DIAMETER_SUBLAYER)) { - doBedQualitySubLayerOut( - (BedDiameterResult)artifactAndFacet.getData(context), - artifactAndFacet, - attr, - visible); - } - else if (name.equals(BED_QUALITY_BED_DIAMETER_TOPLAYER)) { - doBedQualityTopLayerOut( - (BedDiameterResult)artifactAndFacet.getData(context), - artifactAndFacet, - attr, - visible); - } - else if (name.equals(BED_QUALITY_BEDLOAD_DIAMETER)) { - doBedQualityLoadDiameter( - (BedloadDiameterResult)artifactAndFacet.getData(context), - artifactAndFacet, - attr, - visible); - } - else { - logger.warn("Unknown facet name: " + name); - return; - } - } - - private void doBedQualityLoadDiameter( BedloadDiameterResult data, ArtifactAndFacet aandf, @@ -397,155 +106,5 @@ StyledSeriesBuilder.addPoints(series, data.getDiameterSubData(), true); addAxisSeries(series, YAXIS.D.idx, visible); } - - - /** - * Process the output for W facets in a longitudinal section curve. - * - * @param data A FlowVelocityData object - * @param aandf The facet. This facet does NOT support any data objects. Use - * D4EArtifact.getNativeFacet() instead to retrieve a Facet which supports - * data. - * @param theme The theme that contains styling information. - * @param visible The visibility of the curve. - */ - protected void doMainChannelOut( - FlowVelocityData data, - ArtifactAndFacet aandf, - Document theme, - boolean visible - ) { - logger.debug("FlowVelocityGenerator.doMainChannelOut"); - - XYSeries series = new StyledXYSeries(aandf.getFacetDescription(), theme); - - StyledSeriesBuilder.addPoints(series, data.getMainChannelPoints(), true); - - addAxisSeries(series, YAXIS.V.idx, visible); - } - - - /** Handle VWQKms. */ - protected void doVPointOut ( - Object data, - ArtifactAndFacet aandf, - Document theme, - boolean visible - ) { - logger.debug("FlowVelocityGenerator.doVPointOut"); - - XYSeries series = new StyledXYSeries(aandf.getFacetDescription(), theme); - - FlowVelocityMeasurementValue.FastFlowVelocityMeasurementValue - value = (FlowVelocityMeasurementValue.FastFlowVelocityMeasurementValue) - data; - - StyledSeriesBuilder.addPoints(series, new double[][] {{value.getStation()},{value.getV()}}, true); - - addAxisSeries(series, YAXIS.V.idx, visible); - } - - - /** - * Add items to dataseries which describes the differences. - */ - protected void doTotalChannelOut( - FlowVelocityData data, - ArtifactAndFacet aandf, - Document theme, - boolean visible - ) { - logger.debug("FlowVelocityGenerator.doTotalChannelOut"); - - if (data == null) { - logger.warn("No data to add to FlowVelocity chart."); - return; - } - - XYSeries series = new StyledXYSeries(aandf.getFacetDescription(), theme); - - StyledSeriesBuilder.addPoints(series, data.getTotalChannelPoints(), true); - - addAxisSeries(series, YAXIS.V.idx, visible); - } - - - - /** - * @param data A FlowVelocityData object - * @param aandf The facet. This facet does NOT support any data objects. Use - * D4EArtifact.getNativeFacet() instead to retrieve a Facet which supports - * data. - * @param theme The theme that contains styling information. - * @param visible The visibility of the curve. - */ - protected void doQOut( - FlowVelocityData data, - ArtifactAndFacet aandf, - Document theme, - boolean visible - ) { - logger.debug("FlowVelocityGenerator.doTauOut"); - - XYSeries series = new StyledXYSeries(aandf.getFacetDescription(), theme); - - StyledSeriesBuilder.addPoints(series, data.getQPoints(), true); - - addAxisSeries(series, YAXIS.Q.idx, visible); - } - - /** - * @param data A FlowVelocityData object - * @param aandf The facet. This facet does NOT support any data objects. Use - * D4EArtifact.getNativeFacet() instead to retrieve a Facet which supports - * data. - * @param theme The theme that contains styling information. - * @param visible The visibility of the curve. - */ - protected void doTauOut( - FlowVelocityData data, - ArtifactAndFacet aandf, - Document theme, - boolean visible - ) { - logger.debug("FlowVelocityGenerator.doTauOut"); - - XYSeries series = new StyledXYSeries(aandf.getFacetDescription(), theme); - - StyledSeriesBuilder.addPoints(series, data.getTauPoints(), true); - - addAxisSeries(series, YAXIS.T.idx, visible); - } - - - /** Look up the axis identifier for a given facet type. */ - public int axisIdxForFacet(String facetName) { - if (FacetTypes.IS.V(facetName)) { - return YAXIS.V.idx; - } - else if (FacetTypes.IS.T(facetName)) { - return YAXIS.T.idx; - } - else { - logger.warn("Could not find axis for facet " + facetName); - return YAXIS.V.idx; - } - } - - - /** - * Do Area out. - * @param theme styling information. - * @param visible whether or not visible. - */ - protected void doArea( - Object o, - ArtifactAndFacet aandf, - Document theme, - boolean visible - ) { - logger.debug("FlowVelocityGenerator.doArea"); - logger.warn("TODO: Implement FlowVelocityGenerator.doArea"); - } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r bdbe704dd433 -r 23ab795f2f0e artifacts/src/main/java/org/dive4elements/river/exports/LongitudinalSectionGenerator.java --- a/artifacts/src/main/java/org/dive4elements/river/exports/LongitudinalSectionGenerator.java Thu Aug 08 17:36:44 2013 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/exports/LongitudinalSectionGenerator.java Fri Aug 09 12:11:53 2013 +0200 @@ -8,6 +8,8 @@ package org.dive4elements.river.exports; +import java.util.Arrays; + import org.dive4elements.artifactdatabase.state.ArtifactAndFacet; import org.dive4elements.artifactdatabase.state.Facet; import org.dive4elements.river.artifacts.D4EArtifact; @@ -23,6 +25,12 @@ import org.dive4elements.river.exports.process.BedheightProcessor; import org.dive4elements.river.exports.process.WOutProcessor; +import org.dive4elements.river.artifacts.access.FlowVelocityAccess; +import org.dive4elements.river.artifacts.model.FlowVelocityData; +import org.dive4elements.river.model.FlowVelocityMeasurementValue; + +import org.dive4elements.river.jfree.Bounds; +import org.dive4elements.river.jfree.DoubleBounds; import org.dive4elements.river.jfree.RiverAnnotation; import org.dive4elements.river.jfree.StyledAreaSeriesCollection; import org.dive4elements.river.jfree.StyledXYSeries; @@ -46,9 +54,12 @@ implements FacetTypes { public enum YAXIS { - W(0), - D(1), - Q(2); + W(0), // waterlevel + D(1), // waterlevel-difference + Q(2), // discharge + V(3), // flow velocity + T(4), // tau (shear stress) + O(3); // diameter protected int idx; private YAXIS(int c) { idx = c; @@ -67,8 +78,13 @@ * Key to look up internationalized String for LongitudinalSection diagrams * titles. */ + /** TODO: + * create a class which extends this one to avoid following definition here + */ public static final String I18N_CHART_TITLE = "chart.longitudinal.section.title"; + public static final String I18N_CHART_TITLE_DEFAULT = + "L\u00e4ngsschnitt"; /** * Key to look up internationalized String for LongitudinalSection diagrams @@ -84,24 +100,32 @@ public static final String I18N_CHART_SHORT_SUBTITLE = "chart.longitudinal.section.shortsubtitle"; + /** + * Key to look up internationalized String for LongitudinalSection diagrams + * X-axis title. + */ public static final String I18N_XAXIS_LABEL = "chart.longitudinal.section.xaxis.label"; - - public static final String I18N_YAXIS_LABEL = - "chart.longitudinal.section.yaxis.label"; - - public static final String I18N_2YAXIS_LABEL = - "chart.longitudinal.section.yaxis.second.label"; + public static final String I18N_XAXIS_LABEL_DEFAULT = + "km"; - public static final String I18N_CHART_TITLE_DEFAULT = "W-L\u00e4ngsschnitt"; - public static final String I18N_XAXIS_LABEL_DEFAULT = "km"; - public static final String I18N_YAXIS_LABEL_DEFAULT = "W [NN + m]"; - public static final String I18N_2YAXIS_LABEL_DEFAULT = "Q [m\u00b3/s]"; + /** + * Key to look up internationalized String for LongitudinalSection diagrams + * Y-axis titles. + */ + public static final String I18N_YAXIS_LABEL_W = + "chart.longitudinal.section.yaxis.label.w"; + public static final String I18N_YAXIS_LABEL_Q = + "chart.longitudinal.section.yaxis.label.q"; + public static final String I18N_YAXIS_LABEL_D = + "chart.w_differences.yaxis.label"; + public static final String I18N_YAXIS_LABEL_V = + "chart.flow_velocity.section.yaxis.label"; + public static final String I18N_YAXIS_LABEL_T = + "chart.flow_velocity.section.yaxis.second.label"; + public static final String I18N_YAXIS_LABEL_DEFAULT = + "Y-axis"; - public final static String I18N_WDIFF_YAXIS_LABEL = - "chart.w_differences.yaxis.label"; - - public final static String I18N_WDIFF_YAXIS_LABEL_DEFAULT = "m"; public LongitudinalSectionGenerator() { super(); @@ -218,36 +242,43 @@ } - @Override - protected String getDefaultYAxisLabel(int index) { - String label = "default"; - - if (index == YAXIS.W.idx) { - label = getWAxisLabel(); - } - else if (index == YAXIS.Q.idx) { - label = msg(getQAxisLabelKey(), getQAxisDefaultLabel()); - } - else if (index == YAXIS.D.idx) { - label = msg(I18N_WDIFF_YAXIS_LABEL, I18N_WDIFF_YAXIS_LABEL_DEFAULT); - } - - return label; - } - - /** * Get internationalized label for the y axis. */ - protected String getWAxisLabel() { + @Override + protected String getDefaultYAxisLabel(int index) { + D4EArtifact flys = (D4EArtifact) master; - String unit = RiverUtils.getRiver(flys).getWstUnit().getName(); - return msg( - I18N_YAXIS_LABEL, - I18N_YAXIS_LABEL_DEFAULT, - new Object[] { unit }); + if (index == YAXIS.W.idx) { + return msg( + I18N_YAXIS_LABEL_W, + I18N_YAXIS_LABEL_DEFAULT, + new Object[] { unit }); + } + if (index == YAXIS.Q.idx) { + return msg( + I18N_YAXIS_LABEL_Q, + I18N_YAXIS_LABEL_DEFAULT); + } + if (index == YAXIS.D.idx) { + return msg( + I18N_YAXIS_LABEL_D, + I18N_YAXIS_LABEL_DEFAULT); + } + if (index == YAXIS.V.idx) { + return msg( + I18N_YAXIS_LABEL_V, + I18N_YAXIS_LABEL_DEFAULT); + } + if (index == YAXIS.T.idx) { + return msg( + I18N_YAXIS_LABEL_T, + I18N_YAXIS_LABEL_DEFAULT); + } + + return "default"; } @@ -272,23 +303,6 @@ /** - * Get default value for the second Y-Axis' label (if no translation was - * found). - */ - protected String getQAxisDefaultLabel() { - return I18N_2YAXIS_LABEL_DEFAULT; - } - - - /** - * Get key for internationalization of the second Y-Axis' label. - */ - protected String getQAxisLabelKey() { - return I18N_2YAXIS_LABEL; - } - - - /** * Trigger inversion. */ @Override @@ -399,6 +413,92 @@ visible, YAXIS.W.idx); } + + /* output for flow velocity */ + if (getXBounds(0) != null && getDomainAxisRange() != null) { + logger.debug(Arrays.toString(getDomainAxisRangeFromRequest())); + Bounds bounds = + calculateZoom(getXBounds(0), getDomainAxisRange()); + context.putContextValue("startkm", bounds.getLower()); + context.putContextValue("endkm", bounds.getUpper()); + } + else if (getXBounds(0) != null && getDomainAxisRange() == null) { + context.putContextValue("startkm", getXBounds(0).getLower()); + context.putContextValue("endkm", getXBounds(0).getUpper()); + } + else if (getXBounds(0) == null && getDomainAxisRange() == null) { + D4EArtifact artifact = (D4EArtifact)artifactAndFacet.getArtifact(); + FlowVelocityAccess access = new FlowVelocityAccess(artifact); + context.putContextValue("startkm", access.getLowerKM()); + context.putContextValue("endkm", access.getUpperKM()); + } + else if (getXBounds(0) == null && getDomainAxisRange() != null){ + D4EArtifact artifact = (D4EArtifact)artifactAndFacet.getArtifact(); + FlowVelocityAccess access = new FlowVelocityAccess(artifact); + Bounds b = new DoubleBounds(access.getLowerKM(), access.getUpperKM()); + Bounds bounds = + calculateZoom(b, getDomainAxisRange()); + context.putContextValue("startkm", bounds.getLower()); + context.putContextValue("endkm", bounds.getUpper()); + } + if (name.equals(FLOW_VELOCITY_MAINCHANNEL)) { + doMainChannelOut( + (FlowVelocityData) artifactAndFacet.getData(context), + artifactAndFacet, + attr, + visible); + } + else if (name.equals(FLOW_VELOCITY_TOTALCHANNEL)) { + doTotalChannelOut( + (FlowVelocityData) artifactAndFacet.getData(context), + artifactAndFacet, + attr, + visible); + } + else if (name.equals(FLOW_VELOCITY_MAINCHANNEL_FILTERED)) { + doMainChannelOut( + (FlowVelocityData) artifactAndFacet.getData(context), + artifactAndFacet, + attr, + visible); + } + else if (name.equals(FLOW_VELOCITY_TOTALCHANNEL_FILTERED)) { + doTotalChannelOut( + (FlowVelocityData) artifactAndFacet.getData(context), + artifactAndFacet, + attr, + visible); + } + else if (name.equals(FLOW_VELOCITY_DISCHARGE)) { + doQOut( + (FlowVelocityData) artifactAndFacet.getData(context), + artifactAndFacet, + attr, + visible); + } + else if (name.equals(FLOW_VELOCITY_TAU)) { + doTauOut( + (FlowVelocityData) artifactAndFacet.getData(context), + artifactAndFacet, + attr, + visible); + } + else if (name.equals(FLOW_VELOCITY_TAU_FILTERED)) { + doTauOut( + (FlowVelocityData) artifactAndFacet.getData(context), + artifactAndFacet, + attr, + visible); + } + else if (name.equals(FLOW_VELOCITY_MEASUREMENT)) { + doVPointOut( + artifactAndFacet.getData(context), + artifactAndFacet, + attr, + visible); + } + + else { logger.warn("Unknown facet name: " + name); return; @@ -521,6 +621,12 @@ else if (FacetTypes.IS.Q(facetName)) { return YAXIS.Q.idx; } + else if (FacetTypes.IS.V(facetName)) { + return YAXIS.V.idx; + } + else if (FacetTypes.IS.T(facetName)) { + return YAXIS.T.idx; + } else { logger.warn("Could not find axis for facet " + facetName); return YAXIS.W.idx; @@ -627,5 +733,123 @@ // Add area to the respective axis. addAreaSeries(area, axisIdxForFacet(data.getRootFacetName()), visible); } + + + /** + * flow velocity specific outs + */ + + /** + * Process the output for flow velocity in main channel in a longitudinal section curve. + * + * @param data A FlowVelocityData object + * @param aandf The facet. This facet does NOT support any data objects. Use + * D4EArtifact.getNativeFacet() instead to retrieve a Facet which supports + * data. + * @param theme The theme that contains styling information. + * @param visible The visibility of the curve. + */ + protected void doMainChannelOut( + FlowVelocityData data, + ArtifactAndFacet aandf, + Document theme, + boolean visible + ) { + logger.debug("FlowVelocityGenerator.doMainChannelOut"); + + XYSeries series = new StyledXYSeries(aandf.getFacetDescription(), theme); + + StyledSeriesBuilder.addPoints(series, data.getMainChannelPoints(), true); + + addAxisSeries(series, YAXIS.V.idx, visible); + } + + /** + * Process the output for flow velocity in total channel in a longitudinal section curve. + */ + protected void doTotalChannelOut( + FlowVelocityData data, + ArtifactAndFacet aandf, + Document theme, + boolean visible + ) { + logger.debug("FlowVelocityGenerator.doTotalChannelOut"); + + if (data == null) { + logger.warn("No data to add to FlowVelocity chart."); + return; + } + + XYSeries series = new StyledXYSeries(aandf.getFacetDescription(), theme); + + StyledSeriesBuilder.addPoints(series, data.getTotalChannelPoints(), true); + + addAxisSeries(series, YAXIS.V.idx, visible); + } + + /** + * @param data A FlowVelocityData object + * @param aandf The facet. This facet does NOT support any data objects. Use + * D4EArtifact.getNativeFacet() instead to retrieve a Facet which supports + * data. + * @param theme The theme that contains styling information. + * @param visible The visibility of the curve. + */ + protected void doTauOut( + FlowVelocityData data, + ArtifactAndFacet aandf, + Document theme, + boolean visible + ) { + logger.debug("FlowVelocityGenerator.doTauOut"); + + XYSeries series = new StyledXYSeries(aandf.getFacetDescription(), theme); + + StyledSeriesBuilder.addPoints(series, data.getTauPoints(), true); + + addAxisSeries(series, YAXIS.T.idx, visible); + } + + protected void doVPointOut ( + Object data, + ArtifactAndFacet aandf, + Document theme, + boolean visible + ) { + logger.debug("FlowVelocityGenerator.doVPointOut"); + + XYSeries series = new StyledXYSeries(aandf.getFacetDescription(), theme); + + FlowVelocityMeasurementValue.FastFlowVelocityMeasurementValue + value = (FlowVelocityMeasurementValue.FastFlowVelocityMeasurementValue) + data; + + StyledSeriesBuilder.addPoints(series, new double[][] {{value.getStation()},{value.getV()}}, true); + + addAxisSeries(series, YAXIS.V.idx, visible); + } + + /** + * @param data A FlowVelocityData object + * @param aandf The facet. This facet does NOT support any data objects. Use + * D4EArtifact.getNativeFacet() instead to retrieve a Facet which supports + * data. + * @param theme The theme that contains styling information. + * @param visible The visibility of the curve. + */ + protected void doQOut( + FlowVelocityData data, + ArtifactAndFacet aandf, + Document theme, + boolean visible + ) { + logger.debug("FlowVelocityGenerator.doTauOut"); + + XYSeries series = new StyledXYSeries(aandf.getFacetDescription(), theme); + + StyledSeriesBuilder.addPoints(series, data.getQPoints(), true); + + addAxisSeries(series, YAXIS.Q.idx, visible); + } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r bdbe704dd433 -r 23ab795f2f0e artifacts/src/main/java/org/dive4elements/river/exports/MiddleBedHeightGenerator.java --- a/artifacts/src/main/java/org/dive4elements/river/exports/MiddleBedHeightGenerator.java Thu Aug 08 17:36:44 2013 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/exports/MiddleBedHeightGenerator.java Fri Aug 09 12:11:53 2013 +0200 @@ -64,7 +64,7 @@ public static final String I18N_CHART_TITLE_DEFAULT = "Mittlere Sohlhöhe"; public static final String I18N_YAXIS_LABEL_DEFAULT = "mittlere Sohlhöhen [müNN]"; public static final String I18N_W_YAXIS_LABEL = - "chart.longitudinal.section.yaxis.label"; + "chart.longitudinal.section.yaxis.label.w"; public static final String I18N_W_YAXIS_LABEL_DEFAULT = "W [NN + m]"; public static final String I18N_P_YAXIS_LABEL_DEFAULT = "Gepeilte Breite [m]"; public static final String I18N_P_YAXIS_LABEL = diff -r bdbe704dd433 -r 23ab795f2f0e artifacts/src/main/java/org/dive4elements/river/exports/fixings/FixLongitudinalSectionGenerator.java --- a/artifacts/src/main/java/org/dive4elements/river/exports/fixings/FixLongitudinalSectionGenerator.java Thu Aug 08 17:36:44 2013 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/exports/fixings/FixLongitudinalSectionGenerator.java Fri Aug 09 12:11:53 2013 +0200 @@ -64,10 +64,10 @@ "chart.fixings.longitudinalsection.yaxis.label"; public static final String I18N_W_YAXIS_LABEL = - "chart.longitudinal.section.yaxis.label"; + "chart.longitudinal.section.yaxis.label.w"; public static final String I18N_Q_YAXIS_LABEL = - "chart.longitudinal.section.yaxis.second.label"; + "chart.longitudinal.section.yaxis.label.q"; public static final String I18N_W_YAXIS_LABEL_DEFAULT = "W [NN + m]"; public static final String I18N_Q_YAXIS_LABEL_DEFAULT = "Q [m\u00b3/s]"; diff -r bdbe704dd433 -r 23ab795f2f0e artifacts/src/main/java/org/dive4elements/river/exports/minfo/BedDifferenceEpochGenerator.java --- a/artifacts/src/main/java/org/dive4elements/river/exports/minfo/BedDifferenceEpochGenerator.java Thu Aug 08 17:36:44 2013 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/exports/minfo/BedDifferenceEpochGenerator.java Fri Aug 09 12:11:53 2013 +0200 @@ -62,7 +62,7 @@ "chart.fixings.longitudinalsection.yaxis.label"; private static final String I18N_W_YAXIS_LABEL = - "chart.longitudinal.section.yaxis.label"; + "chart.longitudinal.section.yaxis.label.w"; private static final String I18N_W_YAXIS_LABEL_DEFAULT = "W [NN + m]"; diff -r bdbe704dd433 -r 23ab795f2f0e artifacts/src/main/java/org/dive4elements/river/exports/minfo/BedDifferenceYearGenerator.java --- a/artifacts/src/main/java/org/dive4elements/river/exports/minfo/BedDifferenceYearGenerator.java Thu Aug 08 17:36:44 2013 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/exports/minfo/BedDifferenceYearGenerator.java Fri Aug 09 12:11:53 2013 +0200 @@ -63,7 +63,7 @@ public static final String I18N_DW_YAXIS_LABEL = "chart.fixings.longitudinalsection.yaxis.label"; private static final String I18N_W_YAXIS_LABEL = - "chart.longitudinal.section.yaxis.label"; + "chart.longitudinal.section.yaxis.label.w"; private static final String I18N_W_YAXIS_LABEL_DEFAULT = "W [NN + m]"; @Override diff -r bdbe704dd433 -r 23ab795f2f0e artifacts/src/main/resources/messages.properties --- a/artifacts/src/main/resources/messages.properties Thu Aug 08 17:36:44 2013 +0200 +++ b/artifacts/src/main/resources/messages.properties Fri Aug 09 12:11:53 2013 +0200 @@ -153,8 +153,8 @@ chart.longitudinal.section.subtitle = Range: {0}-km {1,number,#.###} - {2,number,#.###} chart.longitudinal.section.shortsubtitle = {0} chart.longitudinal.section.xaxis.label = {0}-km -chart.longitudinal.section.yaxis.label = W [{0}] -chart.longitudinal.section.yaxis.second.label = Q [m\u00b3/s] +chart.longitudinal.section.yaxis.label.w = W [{0}] +chart.longitudinal.section.yaxis.label.q = Q [m\u00b3/s] chart.longitudinal.annotations.label = {0}.km chart.cross_section.title = Cross Section for river {0} diff -r bdbe704dd433 -r 23ab795f2f0e artifacts/src/main/resources/messages_de.properties --- a/artifacts/src/main/resources/messages_de.properties Thu Aug 08 17:36:44 2013 +0200 +++ b/artifacts/src/main/resources/messages_de.properties Fri Aug 09 12:11:53 2013 +0200 @@ -159,8 +159,8 @@ chart.longitudinal.section.subtitle = Bereich: {0}-km {1,number,#.###} - {2,number,#.###} chart.longitudinal.section.shortsubtitle = {0} chart.longitudinal.section.xaxis.label = {0}-km -chart.longitudinal.section.yaxis.label = W [{0}] -chart.longitudinal.section.yaxis.second.label = Q [m\u00b3/s] +chart.longitudinal.section.yaxis.label.w = W [{0}] +chart.longitudinal.section.yaxis.label.q = Q [m\u00b3/s] chart.longitudinal.annotations.label = {0}.km chart.discharge.curve.title = Abflusskurve chart.discharge.curve.xaxis.label = Q [m\u00b3/s] diff -r bdbe704dd433 -r 23ab795f2f0e artifacts/src/main/resources/messages_de_DE.properties --- a/artifacts/src/main/resources/messages_de_DE.properties Thu Aug 08 17:36:44 2013 +0200 +++ b/artifacts/src/main/resources/messages_de_DE.properties Fri Aug 09 12:11:53 2013 +0200 @@ -158,8 +158,8 @@ chart.longitudinal.section.subtitle = Bereich: {0}-km {1,number,#.###} - {2,number,#.###} chart.longitudinal.section.shortsubtitle = {0} chart.longitudinal.section.xaxis.label = {0}-km -chart.longitudinal.section.yaxis.label = W [{0}] -chart.longitudinal.section.yaxis.second.label = Q [m\u00b3/s] +chart.longitudinal.section.yaxis.label.w = W [{0}] +chart.longitudinal.section.yaxis.label.q = Q [m\u00b3/s] chart.longitudinal.annotations.label = {0}.km chart.discharge.curve.title = Abflusskurve chart.discharge.curve.xaxis.label = Q [m\u00b3/s] diff -r bdbe704dd433 -r 23ab795f2f0e artifacts/src/main/resources/messages_en.properties --- a/artifacts/src/main/resources/messages_en.properties Thu Aug 08 17:36:44 2013 +0200 +++ b/artifacts/src/main/resources/messages_en.properties Fri Aug 09 12:11:53 2013 +0200 @@ -158,8 +158,8 @@ chart.longitudinal.section.subtitle = Range: {0}-km {1,number,#.###} - {2,number,#.###} chart.longitudinal.section.shortsubtitle = {0} chart.longitudinal.section.xaxis.label = {0}-km -chart.longitudinal.section.yaxis.label = W [{0}] -chart.longitudinal.section.yaxis.second.label = Q [m\u00b3/s] +chart.longitudinal.section.yaxis.label.w = W [{0}] +chart.longitudinal.section.yaxis.label.q = Q [m\u00b3/s] chart.longitudinal.annotations.label = {0}.km chart.computed.discharge.curve.gauge = Discharge curve at gauge {0} (km {1}) chart.discharge.curve.title = Discharge Curve