changeset 9556:9b8e8fc1f408

Use facetName in all processors as themeType for legend aggregation.
author gernotbelger
date Tue, 23 Oct 2018 16:26:58 +0200
parents ef5754ba5573
children 145895212b3c
files artifacts/src/main/java/org/dive4elements/river/artifacts/common/AbstractProcessor.java artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/PredefinedFlowDepthProcessor.java artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flood_duration/FloodDurationCurveGenerator.java artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/salix/SalixLineProcessor.java artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/vegetationzones/VegetationZonesCrossSectionProcessor.java artifacts/src/main/java/org/dive4elements/river/exports/DischargeCurveGenerator.java artifacts/src/main/java/org/dive4elements/river/exports/DurationCurveGenerator.java artifacts/src/main/java/org/dive4elements/river/exports/HistoricalDischargeCurveGenerator.java artifacts/src/main/java/org/dive4elements/river/exports/LongitudinalSectionGenerator.java artifacts/src/main/java/org/dive4elements/river/exports/ReferenceCurveGenerator.java artifacts/src/main/java/org/dive4elements/river/exports/extreme/ExtremeWQCurveGenerator.java artifacts/src/main/java/org/dive4elements/river/exports/fixings/FixDeltaWtGenerator.java artifacts/src/main/java/org/dive4elements/river/exports/fixings/FixWQCurveGenerator.java artifacts/src/main/java/org/dive4elements/river/exports/process/AreaProcessor.java artifacts/src/main/java/org/dive4elements/river/exports/process/BedDiffHeightYearProcessor.java artifacts/src/main/java/org/dive4elements/river/exports/process/BedDiffYearProcessor.java artifacts/src/main/java/org/dive4elements/river/exports/process/BedHeightProcessor.java artifacts/src/main/java/org/dive4elements/river/exports/process/BedQualityDensityProcessor.java artifacts/src/main/java/org/dive4elements/river/exports/process/BedQualityDiameterProcessor.java artifacts/src/main/java/org/dive4elements/river/exports/process/BedQualityPorosityProcessor.java artifacts/src/main/java/org/dive4elements/river/exports/process/BedWidthProcessor.java artifacts/src/main/java/org/dive4elements/river/exports/process/DeltaWProcessor.java artifacts/src/main/java/org/dive4elements/river/exports/process/DischargeProcessor.java artifacts/src/main/java/org/dive4elements/river/exports/process/FixDeltaWAProcessor.java artifacts/src/main/java/org/dive4elements/river/exports/process/FixDeltaWProcessor.java artifacts/src/main/java/org/dive4elements/river/exports/process/FixDerivedProcessor.java artifacts/src/main/java/org/dive4elements/river/exports/process/FixWQProcessor.java artifacts/src/main/java/org/dive4elements/river/exports/process/FlowVelocityProcessor.java artifacts/src/main/java/org/dive4elements/river/exports/process/ManualPointsProcessor.java artifacts/src/main/java/org/dive4elements/river/exports/process/MiddleBedHeightProcessor.java artifacts/src/main/java/org/dive4elements/river/exports/process/MiscDischargeProcessor.java artifacts/src/main/java/org/dive4elements/river/exports/process/QOutProcessor.java artifacts/src/main/java/org/dive4elements/river/exports/process/SQRelationProcessor.java artifacts/src/main/java/org/dive4elements/river/exports/process/SedimentDensityProcessor.java artifacts/src/main/java/org/dive4elements/river/exports/process/SedimentLoadLSProcessor.java artifacts/src/main/java/org/dive4elements/river/exports/process/SedimentLoadProcessor.java artifacts/src/main/java/org/dive4elements/river/exports/process/ShearStressProcessor.java artifacts/src/main/java/org/dive4elements/river/exports/process/WOutProcessor.java artifacts/src/main/java/org/dive4elements/river/jfree/JFreeUtil.java
diffstat 39 files changed, 196 insertions(+), 144 deletions(-) [+]
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/common/AbstractProcessor.java	Tue Oct 23 16:26:48 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/common/AbstractProcessor.java	Tue Oct 23 16:26:58 2018 +0200
@@ -104,11 +104,12 @@
 
         final Artifact artifact = bundle.getArtifact();
 
-        final StyledXYSeries series = new StyledXYSeries(bundle.getFacetDescription(), theme);
+        final String facetDescription = bundle.getFacetDescription();
+        final String facetName = bundle.getFacetName();
+
+        final StyledXYSeries series = new StyledXYSeries(facetName, facetDescription, theme);
         series.putMetaData(metaData, artifact, context);
 
-        final String facetName = bundle.getFacetName();
-
         final double[][] filteredPoints = filterPoints(points, context, artifact, facetName);
 
         if (gapDistance == null)
@@ -129,11 +130,12 @@
 
         final Artifact artifact = bundle.getArtifact();
 
-        final StyledXYSeries series = new StyledXYSeries(bundle.getFacetDescription(), theme);
+        final String facetName = bundle.getFacetName();
+        final String facetDescription = bundle.getFacetDescription();
+
+        final StyledXYSeries series = new StyledXYSeries(facetName, facetDescription, theme);
         series.putMetaData(metaData, artifact, context);
 
-        final String facetName = bundle.getFacetName();
-
         // Create WQKms to use the step points method
         // REMARK: must have any values in w array; not sure whether the name is needed
         final WQKms wqkms = new WQKms(points[0], points[1], points[1], facetName);
@@ -150,16 +152,19 @@
 
         final AbstractTkhCalculationResult data = (AbstractTkhCalculationResult) getResult(generator, bundle);
 
-        final StyledXYSeries seriesUp = new StyledXYSeries(bundle.getFacetDescription(), theme);
+        final String facetName = bundle.getFacetName();
+        final String facetDescription = bundle.getFacetDescription();
+
+        final StyledXYSeries seriesUp = new StyledXYSeries(facetName, facetDescription, theme);
         final double[][] pointsUp = data.getTkhUpPoints();
         StyledSeriesBuilder.addPoints(seriesUp, pointsUp, true);
 
         // REMARK: we add " " because the description is misused as id, which must be unique.
-        final StyledXYSeries seriesDown = new StyledXYSeries(bundle.getFacetDescription() + " ", theme);
+        final StyledXYSeries seriesDown = new StyledXYSeries(facetName, facetDescription + " ", theme);
         final double[][] pointsDown = data.getTkhDownPoints();
         StyledSeriesBuilder.addPoints(seriesDown, pointsDown, true);
 
-        final StyledAreaSeriesCollection area = new StyledAreaSeriesCollection(theme);
+        final StyledAreaSeriesCollection area = new StyledAreaSeriesCollection(facetName, theme);
         area.setMode(StyledAreaSeriesCollection.FILL_MODE.BETWEEN);
         area.addSeries(seriesUp);
         area.addSeries(seriesDown);
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/PredefinedFlowDepthProcessor.java	Tue Oct 23 16:26:48 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/PredefinedFlowDepthProcessor.java	Tue Oct 23 16:26:58 2018 +0200
@@ -54,7 +54,7 @@
 
         final Artifact artifact = bundle.getArtifact();
 
-        final StyledXYSeries series = new StyledXYSeries(bundle.getFacetDescription(), theme);
+        final StyledXYSeries series = new StyledXYSeries(bundle.getFacetName(), bundle.getFacetDescription(), theme);
         series.putMetaData(metaData, artifact, context);
 
         final String facetName = bundle.getFacetName();
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flood_duration/FloodDurationCurveGenerator.java	Tue Oct 23 16:26:48 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flood_duration/FloodDurationCurveGenerator.java	Tue Oct 23 16:26:58 2018 +0200
@@ -163,6 +163,11 @@
 
         final CallContext context = getContext();
 
+        // TODO: mainvalues.q
+        // TODO: mainvalues.w
+        // } else if (name.equals(MAINVALUES_Q) || name.equals(MAINVALUES_W)) {
+        // doAnnotations((RiverAnnotation) artifactFacet.getData(context), artifactFacet, attr, visible);
+
         if (name.equals(DURATION_W)) {
             doWOut((WQDay) (artifactFacet.getData(context)), artifactFacet, attr, visible);
         } else if (name.equals(DURATION_Q)) {
@@ -170,8 +175,9 @@
         } else if (name.equals(FloodDurationCurveProcessor.FACET_FLOOD_DURATION_MAINVALUES_Q)
                 || name.equals(FloodDurationCurveProcessor.FACET_FLOOD_DURATION_MAINVALUES_W)) {
             doAnnotations((RiverAnnotation) artifactFacet.getData(context), artifactFacet, attr, visible);
-        }
-        else if (FloodDurationCurveProcessor.isInfrastructureFacet(name) && (artifactFacet.getData(context) != null)) {
+        } else if (FloodDurationCurveProcessor.isInfrastructureFacet(name) && (artifactFacet.getData(context) != null)) {
+            doAnnotations((RiverAnnotation) artifactFacet.getData(context), artifactFacet, attr, visible);
+        } else if (name.equals(MAINVALUES_Q) || name.equals(MAINVALUES_W)) {
             doAnnotations((RiverAnnotation) artifactFacet.getData(context), artifactFacet, attr, visible);
         }
         // else if (name.equals(RELATIVE_POINT)) {
@@ -195,7 +201,7 @@
     protected void doWOut(final WQDay wqdays, final ArtifactAndFacet aaf, final ThemeDocument theme, final boolean visible) {
 
         // log.debug("DurationCurveGenerator.doWOut");
-        final XYSeries series = new StyledXYSeries(aaf.getFacetDescription(), theme);
+        final XYSeries series = new StyledXYSeries(aaf.getFacetName(), aaf.getFacetDescription(), theme);
         final int size = wqdays.size();
         for (int i = 0; i < size; i++) {
             final int day = wqdays.getDay(i);
@@ -208,7 +214,7 @@
     protected void doPointOut(final Point2D point, final ArtifactAndFacet aandf, final ThemeDocument theme, final boolean visible) {
 
         // log.debug("DurationCurveGenerator.doPointOut");
-        final XYSeries series = new StyledXYSeries(aandf.getFacetDescription(), theme);
+        final XYSeries series = new StyledXYSeries(aandf.getFacetName(), aandf.getFacetDescription(), theme);
         series.add(point.getX(), point.getY());
         addAxisSeries(series, YAXIS.W.idx, visible);
     }
@@ -223,7 +229,7 @@
     protected void doQOut(final WQDay wqdays, final ArtifactAndFacet aaf, final ThemeDocument theme, final boolean visible) {
 
         // log.debug("DurationCurveGenerator.doQOut");
-        final XYSeries series = new StyledXYSeries(aaf.getFacetDescription(), theme);
+        final XYSeries series = new StyledXYSeries(aaf.getFacetName(), aaf.getFacetDescription(), theme);
         final int size = wqdays.size();
         for (int i = 0; i < size; i++) {
             final int day = wqdays.getDay(i);
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/salix/SalixLineProcessor.java	Tue Oct 23 16:26:48 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/salix/SalixLineProcessor.java	Tue Oct 23 16:26:58 2018 +0200
@@ -169,7 +169,9 @@
 
     @Override
     protected String generateSeries(final DiagramGenerator generator, final ArtifactAndFacet bundle, final ThemeDocument theme, final boolean visible) {
-        if (bundle.getFacetName().equals(FACET_SALIX_SCENARIO_FILTERED) || bundle.getFacetName().equals(FACET_SALIX_SCENARIO_RAW)) {
+        final String facetName = bundle.getFacetName();
+
+        if (facetName.equals(FACET_SALIX_SCENARIO_FILTERED) || facetName.equals(FACET_SALIX_SCENARIO_RAW)) {
             final CallContext context = generator.getContext();
             final SalixLineCalculationResult data = (SalixLineCalculationResult) bundle.getData(context);
             final int dataIndex = ((SalixScenarioResultFacet) bundle.getFacet()).getDataIndex();
@@ -177,10 +179,10 @@
             return buildSeriesForPoints(scenarioPoints, generator, bundle, theme, visible, GAP_DISTANCE);
         }
 
-        if (bundle.getFacetName().equals(FACET_SALIX_RANK)) {
+        if (facetName.equals(FACET_SALIX_RANK)) {
             final CallMeta meta = generator.getContext().getMeta();
 
-            final StripedAreaDataset dataset = new StripedAreaDataset(theme);
+            final StripedAreaDataset dataset = new StripedAreaDataset(facetName, theme);
             dataset.addStripe(new Stripe(getSimpleMsg("uinfo_salix_rank.excellent", meta), Color.decode("#00B0F0"), -0.3, 0.3));
             dataset.addStripe(new Stripe(getSimpleMsg("uinfo_salix_rank.good", meta), Color.decode("#00B050"), 0.3, 0.5));
             dataset.addStripe(new Stripe(getSimpleMsg("uinfo_salix_rank.moderate", meta), Color.decode("#FFFF00"), 0.5, 1.0));
@@ -192,7 +194,7 @@
             return null;
         }
 
-        return buildSeriesForType(generator, bundle, theme, visible, doGetType(bundle.getFacetName()), GAP_DISTANCE);
+        return buildSeriesForType(generator, bundle, theme, visible, doGetType(facetName), GAP_DISTANCE);
     }
 
     private String getSimpleMsg(final String code, final CallMeta meta) {
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/vegetationzones/VegetationZonesCrossSectionProcessor.java	Tue Oct 23 16:26:48 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/vegetationzones/VegetationZonesCrossSectionProcessor.java	Tue Oct 23 16:26:58 2018 +0200
@@ -83,7 +83,7 @@
 
         final List<VegetationZoneServerClientXChange> zones = findZonesData(bundle, context, river);
 
-        final StripedAreaDataset dataset = new StripedAreaDataset(theme);
+        final StripedAreaDataset dataset = new StripedAreaDataset(bundle.getFacetName(), theme);
 
         for (final VegetationZoneServerClientXChange zone : zones) {
 
--- a/artifacts/src/main/java/org/dive4elements/river/exports/DischargeCurveGenerator.java	Tue Oct 23 16:26:48 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/DischargeCurveGenerator.java	Tue Oct 23 16:26:58 2018 +0200
@@ -238,7 +238,7 @@
             // In Base DischargeCurveGenerator, always at gauge, use WCm axis.
             dProcessor.doOut(this, artifactFacet, theme, visible, YAXIS.WCm.idx);
         } else if (name.equals(DISCHARGE_CURVE) || name.equals(GAUGE_DISCHARGE_CURVE)) {
-            doDischargeOut((D4EArtifact) artifactFacet.getArtifact(), artifactFacet.getData(context), artifactFacet.getFacetDescription(), theme, visible);
+            doDischargeOut(artifactFacet.getFacetName(),(D4EArtifact) artifactFacet.getArtifact(), artifactFacet.getData(context), artifactFacet.getFacetDescription(), theme, visible);
         } else if (FacetTypes.IS.MANUALPOINTS(name)) {
             doPoints(artifactFacet.getData(context), artifactFacet, theme, visible, YAXIS.W.idx);
         } else if (STATIC_WQ.equals(name)) {
@@ -251,8 +251,9 @@
 
     /**
      * Add series with discharge curve to diagram.
+     * @param string 
      */
-    protected void doDischargeOut(final D4EArtifact artifact, final Object o, final String description, final ThemeDocument theme, final boolean visible) {
+    protected void doDischargeOut(String facetName, final D4EArtifact artifact, final Object o, final String description, final ThemeDocument theme, final boolean visible) {
         log.debug("DischargeCurveGenerator.doDischargeOut");
         final WQKms wqkms = (WQKms) o;
 
@@ -272,7 +273,7 @@
             return;
         }
 
-        final XYSeries series = new StyledXYSeries(description, theme);
+        final XYSeries series = new StyledXYSeries(facetName, description, theme);
 
         StyledSeriesBuilder.addPointsQW(series, wqkms);
 
@@ -289,7 +290,7 @@
      */
     protected void doQOut(final Object wqkms, final ArtifactAndFacet aaf, final ThemeDocument theme, final boolean visible) {
         log.debug("DischargeCurveGenerator: doQOut (add W/Q data).");
-        final XYSeries series = new StyledXYSeries(aaf.getFacetDescription(), theme);
+        final XYSeries series = new StyledXYSeries(aaf.getFacetName(), aaf.getFacetDescription(), theme);
 
         StyledSeriesBuilder.addPointsQW(series, (WQKms) wqkms);
 
@@ -356,7 +357,7 @@
         }
 
         // Otherwise add points.
-        final XYSeries series = new StyledXYSeries(title, theme);
+        final XYSeries series = new StyledXYSeries(aaf.getFacetName(),title, theme);
 
         if (translate != 0d) {
             StyledSeriesBuilder.addPointsQW(series, data, -translate, 100d);
--- a/artifacts/src/main/java/org/dive4elements/river/exports/DurationCurveGenerator.java	Tue Oct 23 16:26:48 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/DurationCurveGenerator.java	Tue Oct 23 16:26:58 2018 +0200
@@ -183,7 +183,7 @@
     protected void doWOut(final WQDay wqdays, final ArtifactAndFacet aaf, final ThemeDocument theme, final boolean visible) {
         log.debug("DurationCurveGenerator.doWOut");
 
-        final XYSeries series = new StyledXYSeries(aaf.getFacetDescription(), theme);
+        final XYSeries series = new StyledXYSeries(aaf.getFacetName(), aaf.getFacetDescription(), theme);
 
         final int size = wqdays.size();
         for (int i = 0; i < size; i++) {
@@ -199,7 +199,7 @@
     protected void doPointOut(final Point2D point, final ArtifactAndFacet aandf, final ThemeDocument theme, final boolean visible) {
         log.debug("DurationCurveGenerator.doPointOut");
 
-        final XYSeries series = new StyledXYSeries(aandf.getFacetDescription(), theme);
+        final XYSeries series = new StyledXYSeries(aandf.getFacetName(), aandf.getFacetDescription(), theme);
 
         series.add(point.getX(), point.getY());
 
@@ -216,7 +216,7 @@
     protected void doQOut(final WQDay wqdays, final ArtifactAndFacet aaf, final ThemeDocument theme, final boolean visible) {
         log.debug("DurationCurveGenerator.doQOut");
 
-        final XYSeries series = new StyledXYSeries(aaf.getFacetDescription(), theme);
+        final XYSeries series = new StyledXYSeries(aaf.getFacetName(), aaf.getFacetDescription(), theme);
 
         final int size = wqdays.size();
         for (int i = 0; i < size; i++) {
--- a/artifacts/src/main/java/org/dive4elements/river/exports/HistoricalDischargeCurveGenerator.java	Tue Oct 23 16:26:48 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/HistoricalDischargeCurveGenerator.java	Tue Oct 23 16:26:58 2018 +0200
@@ -113,22 +113,24 @@
     @Override
     public void doOut(final ArtifactAndFacet artifactFacet, final ThemeDocument theme, final boolean visible) {
         final String name = artifactFacet.getFacetName();
+        String facetDescription = artifactFacet.getFacetDescription(); 
+
         log.debug("HistoricalDischargeCurveGenerator.doOut: " + name);
-        log.debug("Theme description is: " + artifactFacet.getFacetDescription());
+        log.debug("Theme description is: " + facetDescription);
 
         final CallContext context = getContext();
 
         if (name.equals(HISTORICAL_DISCHARGE_Q)) {
-            doHistoricalDischargeOutQ((D4EArtifact) artifactFacet.getArtifact(), artifactFacet.getData(context), artifactFacet.getFacetDescription(), theme,
+            doHistoricalDischargeOutQ(name, (D4EArtifact) artifactFacet.getArtifact(), artifactFacet.getData(context), facetDescription, theme,
                     visible);
         } else if (name.equals(HISTORICAL_DISCHARGE_W)) {
-            doHistoricalDischargeOutW((D4EArtifact) artifactFacet.getArtifact(), artifactFacet.getData(context), artifactFacet.getFacetDescription(), theme,
+            doHistoricalDischargeOutW(name, (D4EArtifact) artifactFacet.getArtifact(), artifactFacet.getData(context), facetDescription, theme,
                     visible);
         } else if (name.equals(HISTORICAL_DISCHARGE_Q_DIFF)) {
-            doHistoricalDischargeDifferenceOutQ((D4EArtifact) artifactFacet.getArtifact(), artifactFacet.getData(context), artifactFacet.getFacetDescription(),
+            doHistoricalDischargeDifferenceOutQ(name, (D4EArtifact) artifactFacet.getArtifact(), artifactFacet.getData(context), facetDescription,
                     theme, visible);
         } else if (name.equals(HISTORICAL_DISCHARGE_W_DIFF)) {
-            doHistoricalDischargeDifferenceOutW((D4EArtifact) artifactFacet.getArtifact(), artifactFacet.getData(context), artifactFacet.getFacetDescription(),
+            doHistoricalDischargeDifferenceOutW(name, (D4EArtifact) artifactFacet.getArtifact(), artifactFacet.getData(context), facetDescription,
                     theme, visible);
         } else if (FacetTypes.IS.MANUALPOINTS(name)) {
             final HistoricalDischargeAccess.EvaluationMode mode = new HistoricalDischargeAccess((D4EArtifact) getMaster()).getEvaluationMode();
@@ -141,46 +143,46 @@
         }
     }
 
-    protected void doHistoricalDischargeOutQ(final D4EArtifact artifact, final Object data, final String desc, final ThemeDocument theme,
-            final boolean visible) {
-        log.debug("doHistoricalDischargeOut(): description = " + desc);
-
-        final WQTimerange wqt = (WQTimerange) data;
-
-        final TimeSeriesCollection tsc = newTimeSeriesCollection(wqt.getTimeranges(), wqt.getQs(), theme, desc);
-
-        addAxisDataset(tsc, YAXIS.Q.idx, visible);
-    }
-
-    protected void doHistoricalDischargeOutW(final D4EArtifact artifact, final Object data, final String desc, final ThemeDocument theme,
+    protected void doHistoricalDischargeOutQ(final String facetName, final D4EArtifact artifact, final Object data, final String desc, final ThemeDocument theme,
             final boolean visible) {
         log.debug("doHistoricalDischargeOut(): description = " + desc);
 
         final WQTimerange wqt = (WQTimerange) data;
 
-        final TimeSeriesCollection tsc = newTimeSeriesCollection(wqt.getTimeranges(), wqt.getWs(), theme, desc);
+        final TimeSeriesCollection tsc = newTimeSeriesCollection(facetName, wqt.getTimeranges(), wqt.getQs(), theme, desc);
+
+        addAxisDataset(tsc, YAXIS.Q.idx, visible);
+    }
+
+    protected void doHistoricalDischargeOutW(final String facetName, final D4EArtifact artifact, final Object data, final String desc, final ThemeDocument theme,
+            final boolean visible) {
+        log.debug("doHistoricalDischargeOut(): description = " + desc);
+
+        final WQTimerange wqt = (WQTimerange) data;
+
+        final TimeSeriesCollection tsc = newTimeSeriesCollection(facetName, wqt.getTimeranges(), wqt.getWs(), theme, desc);
 
         addAxisDataset(tsc, YAXIS.W.idx, visible);
     }
 
-    protected void doHistoricalDischargeDifferenceOutQ(final D4EArtifact artifact, final Object data, final String desc, final ThemeDocument theme,
+    protected void doHistoricalDischargeDifferenceOutQ(final String facetName, final D4EArtifact artifact, final Object data, final String desc, final ThemeDocument theme,
             final boolean visible) {
         log.debug("doHistoricalDischargeDifferenceOut: desc = " + desc);
 
         final HistoricalWQTimerange wqt = (HistoricalWQTimerange) data;
 
-        final TimeSeriesCollection tsc = newTimeSeriesCollection(wqt.getTimeranges(), wqt.getDiffs(), theme, desc);
+        final TimeSeriesCollection tsc = newTimeSeriesCollection(facetName, wqt.getTimeranges(), wqt.getDiffs(), theme, desc);
 
         addAxisDataset(tsc, YAXIS.Q.idx, visible);
     }
 
-    protected void doHistoricalDischargeDifferenceOutW(final D4EArtifact artifact, final Object data, final String desc, final ThemeDocument theme,
+    protected void doHistoricalDischargeDifferenceOutW(final String facetName, final D4EArtifact artifact, final Object data, final String desc, final ThemeDocument theme,
             final boolean visible) {
         log.debug("doHistoricalDischargeDifferenceOut: desc = " + desc);
 
         final HistoricalWQTimerange wqt = (HistoricalWQTimerange) data;
 
-        final TimeSeriesCollection tsc = newTimeSeriesCollection(wqt.getTimeranges(), wqt.getDiffs(), theme, desc);
+        final TimeSeriesCollection tsc = newTimeSeriesCollection(facetName, wqt.getTimeranges(), wqt.getDiffs(), theme, desc);
 
         addAxisDataset(tsc, YAXIS.W.idx, visible);
     }
@@ -191,11 +193,11 @@
      * provided by <i>wqt</i>. This has the effect, that the line in the chart
      * looks like a "step chart".
      */
-    protected TimeSeriesCollection newTimeSeriesCollection(final Timerange[] timeranges, final double[] values, final ThemeDocument theme, final String desc) {
+    protected TimeSeriesCollection newTimeSeriesCollection(final String facetName, final Timerange[] timeranges, final double[] values, final ThemeDocument theme, final String desc) {
         log.debug("Create new TimeSeriesCollection for: " + desc);
 
         final TimeSeriesCollection tsc = new TimeSeriesCollection();
-        final TimeSeries series = new StyledTimeSeries(desc, theme);
+        final TimeSeries series = new StyledTimeSeries(facetName, desc, theme);
 
         for (int i = 0, n = timeranges.length; i < n; i++) {
             final RegularTimePeriod[] rtp = newRegularTimePeriod(timeranges[i]);
--- a/artifacts/src/main/java/org/dive4elements/river/exports/LongitudinalSectionGenerator.java	Tue Oct 23 16:26:48 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/LongitudinalSectionGenerator.java	Tue Oct 23 16:26:58 2018 +0200
@@ -161,7 +161,7 @@
 
     /**
      * Gets key to look up internationalized String for the charts subtitle.
-     * 
+     *
      * @return key to look up translated subtitle.
      */
     protected String getChartSubtitleKey() {
@@ -171,7 +171,7 @@
     /**
      * Gets key to look up internationalized String for the charts short
      * subtitle.
-     * 
+     *
      * @return key to look up translated subtitle.
      */
     protected String getChartShortSubtitleKey() {
@@ -216,7 +216,7 @@
 
     /**
      * Create Axis for given index.
-     * 
+     *
      * @return axis with according internationalized label.
      */
     @Override
@@ -274,7 +274,7 @@
 
     /**
      * Produce output.
-     * 
+     *
      * @param artifactAndFacet
      *            current facet and artifact.
      * @param attr
@@ -338,7 +338,7 @@
             return;
         }
 
-        final XYSeries series = new StyledXYSeries(aandf.getFacetDescription(), theme);
+        final XYSeries series = new StyledXYSeries(aandf.getFacetName(), aandf.getFacetDescription(), theme);
 
         if (log.isDebugEnabled()) {
             if (wkms.size() > 0) {
@@ -356,7 +356,7 @@
 
     /**
      * Get name of series (displayed in legend).
-     * 
+     *
      * @return name of the series.
      */
     protected String getSeriesName(final WQKms wqkms, final String mode) {
@@ -380,7 +380,7 @@
 
     /**
      * Do Area out.
-     * 
+     *
      * @param theme
      *            styling information.
      * @param visible
@@ -388,7 +388,10 @@
      */
     protected void doArea(final Object o, final ArtifactAndFacet aandf, final ThemeDocument theme, final boolean visible) {
         log.debug("LongitudinalSectionGenerator.doArea");
-        final StyledAreaSeriesCollection area = new StyledAreaSeriesCollection(theme);
+
+        final String facetName = aandf.getFacetName();
+
+        final StyledAreaSeriesCollection area = new StyledAreaSeriesCollection(facetName, theme);
 
         final String seriesName = aandf.getFacetDescription();
 
@@ -398,7 +401,7 @@
         XYSeries down = null;
 
         if (data.getUpperData() != null) {
-            up = new StyledXYSeries(seriesName, false, theme);
+            up = new StyledXYSeries(facetName, seriesName, false, theme);
             if (data.getUpperData() instanceof WQKms) {
                 if (FacetTypes.IS.Q(data.getUpperFacetName())) {
                     StyledSeriesBuilder.addPointsKmQ(up, (WQKms) data.getUpperData());
@@ -422,7 +425,7 @@
         if (data.getLowerData() != null) {
             // TODO: Sort this out: when the two series have the same name,
             // the renderer (or anything in between) will not work correctly.
-            down = new StyledXYSeries(seriesName + " ", false, theme);
+            down = new StyledXYSeries(facetName, seriesName + " ", false, theme);
             if (data.getLowerData() instanceof WQKms) {
                 if (FacetTypes.IS.Q(data.getLowerFacetName())) {
                     StyledSeriesBuilder.addPointsKmQ(down, (WQKms) data.getLowerData());
--- a/artifacts/src/main/java/org/dive4elements/river/exports/ReferenceCurveGenerator.java	Tue Oct 23 16:26:48 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/ReferenceCurveGenerator.java	Tue Oct 23 16:26:58 2018 +0200
@@ -153,7 +153,7 @@
         final CallContext context = getContext();
         
         if (name.equals(facetName())) {
-            doReferenceOut(artifactFacet.getData(context), theme, visible);
+            doReferenceOut(name, artifactFacet.getData(context), theme, visible);
         }
         else if (FacetTypes.IS.MANUALPOINTS(name)) {
             doPoints(
@@ -191,6 +191,7 @@
 
     /** Register DataSeries with (maybe transformed) points. */
     public void doReferenceOut(
+        String facetName,
         Object        data,
         ThemeDocument theme,
         boolean       visible
@@ -205,7 +206,7 @@
 
         ApplyFunctionIterator iter = wwat.transform(ww, doNormalize());
 
-        XYSeries series = new StyledXYSeries(
+        XYSeries series = new StyledXYSeries(facetName,
             ww.getName(), false, theme);
 
         double [] values = new double[2];
@@ -228,7 +229,7 @@
         log.debug("ReferenceCurveGenerator.doPointOut");
 
         XYSeries series =
-            new StyledXYSeries(aandf.getFacetDescription(), theme);
+            new StyledXYSeries(aandf.getFacetName(),aandf.getFacetDescription(), theme);
 
         series.add(point.getX(), point.getY());
 
--- a/artifacts/src/main/java/org/dive4elements/river/exports/extreme/ExtremeWQCurveGenerator.java	Tue Oct 23 16:26:48 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/extreme/ExtremeWQCurveGenerator.java	Tue Oct 23 16:26:58 2018 +0200
@@ -121,7 +121,7 @@
             return;
         }
 
-        XYSeries qwseries = new StyledXYSeries(
+        XYSeries qwseries = new StyledXYSeries(aaf.getFacetName(),
             aaf.getFacetDescription(), theme);
 
         double gaugeDatum = getCurrentGaugeDatum();
@@ -133,7 +133,7 @@
         }
         else {
             XYSeries series2 =
-                new StyledXYSeries(aaf.getFacetDescription(), theme);
+                new StyledXYSeries(aaf.getFacetName(), aaf.getFacetDescription(), theme);
             StyledSeriesBuilder.addPointsQW(
                 series2, curve.getQs(), curve.getWs());
             addAxisSeries(series2, YAXIS.W.idx, false);
@@ -168,6 +168,7 @@
         }
 
         StyledXYSeries series = JFreeUtil.sampleFunction2D(
+                aaf.getFacetName(),
                 curve,
                 theme,
                 aaf.getFacetDescription(),
--- a/artifacts/src/main/java/org/dive4elements/river/exports/fixings/FixDeltaWtGenerator.java	Tue Oct 23 16:26:48 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/fixings/FixDeltaWtGenerator.java	Tue Oct 23 16:26:58 2018 +0200
@@ -166,9 +166,11 @@
             boolean          visible
             ) {
         String name = artifactFacet.getFacetName();
+        String facetDescription = artifactFacet.getFacetDescription();
+
         log.debug("FixDeltaWtGenerator.doOut: " + name);
         log.debug("Theme description is: "
-            + artifactFacet.getFacetDescription());
+            + facetDescription);
 
         this.artifact = (D4EArtifact)artifactFacet.getArtifact();
 
@@ -176,29 +178,32 @@
         
         if (name.contains(FIX_SECTOR_AVERAGE_DWT)) {
             doSectorAverageOut(
+                    name,
                     artifactFacet.getData(context),
-                    artifactFacet.getFacetDescription(),
+                    facetDescription,
                     theme,
                     visible);
         }
         else if (name.equals(FIX_REFERENCE_EVENTS_DWT)) {
             doReferenceEventsOut(
+                    name,
                     artifactFacet.getData(context),
-                    artifactFacet.getFacetDescription(),
+                    facetDescription,
                     theme,
                     visible);
         }
         else if (name.equals(FIX_ANALYSIS_EVENTS_DWT)) {
             doAnalysisEventsOut(
+                    name,
                     artifactFacet.getData(context),
-                    artifactFacet.getFacetDescription(),
+                    facetDescription,
                     theme,
                     visible);
         }
         else if (name.equals(FIX_DEVIATION_DWT)) {
             doDeviationOut(
                     artifactFacet.getData(context),
-                    artifactFacet.getFacetDescription(),
+                    facetDescription,
                     theme,
                     visible);
         }
@@ -255,6 +260,7 @@
 
 
     protected void doSectorAverageOut(
+            String facetName,
             Object        data,
             String        desc,
             ThemeDocument theme,
@@ -264,7 +270,7 @@
 
         QWDDateRange qwd = (QWDDateRange) data;
         TimeSeriesCollection tsc = new TimeSeriesCollection();
-        TimeSeries        series = new StyledTimeSeries(desc, theme);
+        TimeSeries        series = new StyledTimeSeries(facetName, desc, theme);
 
         if (qwd == null || qwd.qwd == null || qwd.dateRange == null) {
             return;
@@ -301,6 +307,7 @@
 
 
     protected void doAnalysisEventsOut(
+            String facetName,
             Object       data,
             String       desc,
             ThemeDocument theme,
@@ -309,11 +316,12 @@
         log.debug("doAnalysisEventsOut: desc = " + desc);
 
         QWD qwd = (QWD) data;
-        doQWDEventsOut(qwd, desc, theme, visible);
+        doQWDEventsOut(facetName, qwd, desc, theme, visible);
     }
 
 
     protected void doQWDEventsOut(
+        String facetName,
         QWD qwd,
         String desc,
         ThemeDocument theme,
@@ -336,7 +344,7 @@
         final RegularTimePeriod rtp = new FixedMillisecond(time);
         final double value =  qwd.getDeltaW();
 
-        final TimeSeries series = new StyledTimeSeries(label, themeInterpolated, shape);
+        final TimeSeries series = new StyledTimeSeries(facetName,label, themeInterpolated, shape);
         series.addOrUpdate(rtp, value);
 
         tsc.addSeries(series);
@@ -377,6 +385,7 @@
     }
 
     protected void doReferenceEventsOut(
+            String        facetName,
             Object        data,
             String        desc,
             ThemeDocument theme,
@@ -385,7 +394,7 @@
         log.debug("doReferenceEventsOut: desc = " + desc);
 
         QWD qwd = (QWD) data;
-        doQWDEventsOut(qwd, desc, theme, visible);
+        doQWDEventsOut(facetName, qwd, desc, theme, visible);
     }
 
 
--- a/artifacts/src/main/java/org/dive4elements/river/exports/fixings/FixWQCurveGenerator.java	Tue Oct 23 16:26:48 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/fixings/FixWQCurveGenerator.java	Tue Oct 23 16:26:58 2018 +0200
@@ -254,6 +254,7 @@
         else if (name.equals(DISCHARGE_CURVE)) {
             log.debug("diso " + name);
             doDischargeOut(
+                    aaf.getFacetName(),
                     (WINFOArtifact) aaf.getArtifact(),
                     aaf.getData(context),
                     aaf.getFacetDescription(),
@@ -401,7 +402,7 @@
         final int size = theme.parsePointWidth();
         final Shape shape = FixWQCurveGenerator.getWQDShape(qwd, size);
         
-        final XYSeries series = new StyledXYSeries( description, theme, shape );
+        final XYSeries series = new StyledXYSeries( bundle.getFacetName(), description, theme, shape );
 
         series.add(q, w, false);
 
@@ -462,12 +463,12 @@
         return buffer.toString();
     }
 
-    private void addPointFromWQKms(WQKms wqkms,
+    private void addPointFromWQKms(String facetName, WQKms wqkms,
         String        title,
         ThemeDocument theme,
         boolean       visible
     ) {
-        XYSeries series = new StyledXYSeries(title, theme);
+        XYSeries series = new StyledXYSeries(facetName, title, theme);
         Double ckm = (Double) getContext().getContextValue(CURRENT_KM);
         if (wqkms == null || wqkms.getKms().length == 0 || ckm == null) {
             log.info("addPointFromWQKms: No event data to show.");
@@ -505,7 +506,7 @@
     ) {
         log.debug("doEventsOut");
         // Find W/Q at km.
-        addPointFromWQKms((WQKms) aaf.getData(getContext()),
+        addPointFromWQKms(aaf.getFacetName(),(WQKms) aaf.getData(getContext()),
             aaf.getFacetDescription(), doc, visible);
     }
 
@@ -530,6 +531,7 @@
 
         if (maxQ > 0) {
             StyledXYSeries series = JFreeUtil.sampleFunction2D(
+                    aaf.getFacetName(),
                     func.getFunction(),
                     doc,
                     aaf.getFacetDescription(),
@@ -544,6 +546,7 @@
             }
             else {
                 StyledXYSeries series2 = JFreeUtil.sampleFunction2D(
+                        aaf.getFacetName(),
                         func.getFunction(),
                         doc,
                         aaf.getFacetDescription(),
@@ -682,8 +685,10 @@
 
     /**
      * Add series with discharge curve to diagram.
+     * @param string 
      */
     protected void doDischargeOut(
+            String facetName, 
             WINFOArtifact artifact,
             Object        o,
             String        description,
@@ -708,7 +713,7 @@
             return;
         }
 
-        XYSeries series = new StyledXYSeries(description, theme);
+        XYSeries series = new StyledXYSeries(facetName, description, theme);
 
         double gaugeDatum = getCurrentGaugeDatum();
 
@@ -717,7 +722,7 @@
             addAxisSeries(series, YAXIS.W.idx, visible);
         }
         else {
-            XYSeries series2 = new StyledXYSeries(description, theme);
+            XYSeries series2 = new StyledXYSeries(facetName, description, theme);
             StyledSeriesBuilder.addPointsQW(series2, wqkms);
             addAxisSeries(series2, YAXIS.W.idx, false);
 
@@ -744,14 +749,14 @@
             // be delivered by the facet already (instead of in the Generator).
             log.debug("FixWQCurveGenerator: doWQOut: WQKms");
 
-            addPointFromWQKms((WQKms)aaf.getData(getContext()),
+            addPointFromWQKms(aaf.getFacetName(),(WQKms)aaf.getData(getContext()),
                 aaf.getFacetDescription(), theme, visible);
         }
         else {
             log.debug("FixWQCurveGenerator: doWQOut: double[][]");
             double [][] data = (double [][]) wqkms;
 
-            XYSeries series = new StyledXYSeries(
+            XYSeries series = new StyledXYSeries(aaf.getFacetName(),
                 aaf.getFacetDescription(), false, true, theme);
             StyledSeriesBuilder.addPoints(series, data, true);
 
@@ -770,7 +775,7 @@
             return;
         }
 
-        XYSeries series = new StyledXYSeries(
+        XYSeries series = new StyledXYSeries(aaf.getFacetName(),
             aaf.getFacetDescription(),
             false, true,
             theme);
--- a/artifacts/src/main/java/org/dive4elements/river/exports/process/AreaProcessor.java	Tue Oct 23 16:26:48 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/process/AreaProcessor.java	Tue Oct 23 16:26:58 2018 +0200
@@ -34,6 +34,7 @@
     private static final Logger log = Logger.getLogger(AreaProcessor.class);
 
     protected XYSeries getSeries(
+        String facetName,
         String seriesName,
         Object data,
         String facetType,
@@ -43,7 +44,7 @@
             return null;
         }
 
-        XYSeries series = new StyledXYSeries(seriesName, false, theme);
+        XYSeries series = new StyledXYSeries(facetName,seriesName, false, theme);
 
         if (facetType.equals(FacetTypes.DISCHARGE_LONGITUDINAL_C)) {
             WQCKms wqckms = (WQCKms) data;
@@ -85,7 +86,7 @@
             boolean          visible) {
         CallContext context = generator.getContext();
         String seriesName = bundle.getFacetDescription();
-        StyledAreaSeriesCollection area = new StyledAreaSeriesCollection(theme);
+        StyledAreaSeriesCollection area = new StyledAreaSeriesCollection(bundle.getFacetName(),theme);
 
         log.debug("Area Processor processing: " + seriesName);
 
@@ -94,9 +95,9 @@
         String lowerFacetName = data.getLowerFacetName();
         String upperFacetName = data.getUpperFacetName();
 
-        XYSeries up = getSeries(
+        XYSeries up = getSeries(bundle.getFacetName(),
             seriesName, data.getUpperData(), upperFacetName, theme);
-        XYSeries down = getSeries(
+        XYSeries down = getSeries(bundle.getFacetName(),
             seriesName + " ", data.getLowerData(), lowerFacetName, theme);
 
 
--- a/artifacts/src/main/java/org/dive4elements/river/exports/process/BedDiffHeightYearProcessor.java	Tue Oct 23 16:26:48 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/process/BedDiffHeightYearProcessor.java	Tue Oct 23 16:26:58 2018 +0200
@@ -58,7 +58,7 @@
         double[][] bData = (double[][]) data;
 
         StyledXYSeries series =
-            new StyledXYSeries(bundle.getFacetDescription(), theme);
+            new StyledXYSeries(bundle.getFacetName(), bundle.getFacetDescription(), theme);
         series.putMetaData(metaData, bundle.getArtifact(), context);
 
         StyledSeriesBuilder.addPoints(series, bData, false, GAP_TOLERANCE);
@@ -86,7 +86,7 @@
 
         double[][] bData = (double[][]) data;
         XYSeries series =
-            new StyledXYSeries(bundle.getFacetDescription(), theme);
+            new StyledXYSeries(bundle.getFacetName(), bundle.getFacetDescription(), theme);
         StyledSeriesBuilder.addPoints(series, bData, false, GAP_TOLERANCE);
 
         generator.addAxisSeries(series, index, visible);
--- a/artifacts/src/main/java/org/dive4elements/river/exports/process/BedDiffYearProcessor.java	Tue Oct 23 16:26:48 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/process/BedDiffYearProcessor.java	Tue Oct 23 16:26:58 2018 +0200
@@ -64,7 +64,7 @@
         }
 
         StyledXYSeries series =
-            new StyledXYSeries(bundle.getFacetDescription(), theme);
+            new StyledXYSeries(bundle.getFacetName(), bundle.getFacetDescription(), theme);
         series.putMetaData(metaData, bundle.getArtifact(), context);
         StyledSeriesBuilder.addPoints(series,
             bData,
--- a/artifacts/src/main/java/org/dive4elements/river/exports/process/BedHeightProcessor.java	Tue Oct 23 16:26:48 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/process/BedHeightProcessor.java	Tue Oct 23 16:26:58 2018 +0200
@@ -79,7 +79,7 @@
     ) {
         Map<String, String> metaData = bundle.getFacet().getMetaData(
             bundle.getArtifact(), context);
-        StyledXYSeries series = new StyledXYSeries(bundle.getFacetDescription(),
+        StyledXYSeries series = new StyledXYSeries(bundle.getFacetName(), bundle.getFacetDescription(),
                 theme);
         series.putMetaData(metaData, bundle.getArtifact(), context);
         yAxisLabel = metaData.get("Y");
--- a/artifacts/src/main/java/org/dive4elements/river/exports/process/BedQualityDensityProcessor.java	Tue Oct 23 16:26:48 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/process/BedQualityDensityProcessor.java	Tue Oct 23 16:26:58 2018 +0200
@@ -38,7 +38,7 @@
             ThemeDocument    theme,
             boolean          visible) {
         CallContext context = generator.getContext();
-        StyledXYSeries series = new StyledXYSeries(bundle.getFacetDescription(),
+        StyledXYSeries series = new StyledXYSeries(bundle.getFacetName(), bundle.getFacetDescription(),
                 theme);
         Map<String, String> metaData = bundle.getFacet().getMetaData();
         series.putMetaData(metaData, bundle.getArtifact(), context);
--- a/artifacts/src/main/java/org/dive4elements/river/exports/process/BedQualityDiameterProcessor.java	Tue Oct 23 16:26:48 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/process/BedQualityDiameterProcessor.java	Tue Oct 23 16:26:58 2018 +0200
@@ -39,7 +39,7 @@
             boolean          visible) {
         CallContext context = generator.getContext();
         Map<String, String> metaData = bundle.getFacet().getMetaData();
-        StyledXYSeries series = new StyledXYSeries(bundle.getFacetDescription(),
+        StyledXYSeries series = new StyledXYSeries(bundle.getFacetName(), bundle.getFacetDescription(),
                 theme);
         series.putMetaData(metaData, bundle.getArtifact(), context);
         yAxisLabel = metaData.get("Y");
--- a/artifacts/src/main/java/org/dive4elements/river/exports/process/BedQualityPorosityProcessor.java	Tue Oct 23 16:26:48 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/process/BedQualityPorosityProcessor.java	Tue Oct 23 16:26:58 2018 +0200
@@ -39,7 +39,7 @@
             boolean          visible) {
         CallContext context = generator.getContext();
         Map<String, String> metaData = bundle.getFacet().getMetaData();
-        StyledXYSeries series = new StyledXYSeries(bundle.getFacetDescription(),
+        StyledXYSeries series = new StyledXYSeries(bundle.getFacetName(), bundle.getFacetDescription(),
                 theme);
         series.putMetaData(metaData, bundle.getArtifact(), context);
         yAxisLabel = metaData.get("Y");
--- a/artifacts/src/main/java/org/dive4elements/river/exports/process/BedWidthProcessor.java	Tue Oct 23 16:26:48 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/process/BedWidthProcessor.java	Tue Oct 23 16:26:58 2018 +0200
@@ -43,7 +43,7 @@
             boolean          visible) {
         CallContext context = generator.getContext();
         Map<String, String> metaData = bundle.getFacet().getMetaData();
-        StyledXYSeries series = new StyledXYSeries(bundle.getFacetDescription(),
+        StyledXYSeries series = new StyledXYSeries(bundle.getFacetName(), bundle.getFacetDescription(),
                 theme);
         if (!metaData.isEmpty()) {
             series.putMetaData(metaData, bundle.getArtifact(), context);
--- a/artifacts/src/main/java/org/dive4elements/river/exports/process/DeltaWProcessor.java	Tue Oct 23 16:26:48 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/process/DeltaWProcessor.java	Tue Oct 23 16:26:58 2018 +0200
@@ -99,7 +99,7 @@
             return;
         }
 
-        XYSeries series = new StyledXYSeries(
+        XYSeries series = new StyledXYSeries(bundle.getFacetName(),
             bundle.getFacetDescription(), doc);
 
         for (KMIndex.Entry<AnalysisPeriod> entry: kms) {
@@ -129,7 +129,7 @@
 
         XYSeriesCollection col = new XYSeriesCollection();
 
-        StyledXYSeries series = new StyledXYSeries(
+        StyledXYSeries series = new StyledXYSeries(bundle.getFacetName(),
             bundle.getFacetDescription(), false, doc);
 
         for (KMIndex.Entry<QWD> entry: kms) {
@@ -159,7 +159,7 @@
 
         XYSeriesCollection col = new XYSeriesCollection();
 
-        StyledXYSeries series = new StyledXYSeries(
+        StyledXYSeries series = new StyledXYSeries(bundle.getFacetName(),
             bundle.getFacetDescription(), false, doc);
 
         for (KMIndex.Entry<QWD> entry: kms) {
@@ -189,11 +189,13 @@
         if(kms == null) {
             return;
         }
+        
+        final String facetName = bundle.getFacetName();
 
-        StyledAreaSeriesCollection area = new StyledAreaSeriesCollection(doc);
+        StyledAreaSeriesCollection area = new StyledAreaSeriesCollection(facetName,doc);
         XYSeries upper =
-                new StyledXYSeries(bundle.getFacetDescription(), false, doc);
-        XYSeries lower = new StyledXYSeries(
+                new StyledXYSeries(facetName, bundle.getFacetDescription(), false, doc);
+        XYSeries lower = new StyledXYSeries(facetName,
             bundle.getFacetDescription() + " ", false, doc);
 
         for (KMIndex.Entry<AnalysisPeriod> entry: kms) {
@@ -229,11 +231,13 @@
         if(kms == null) {
             return;
         }
+        
+        final String facetName = bundle.getFacetName();
 
-        StyledAreaSeriesCollection area = new StyledAreaSeriesCollection(doc);
+        StyledAreaSeriesCollection area = new StyledAreaSeriesCollection(facetName, doc);
         XYSeries upper =
-                new StyledXYSeries(bundle.getFacetDescription(), false, doc);
-        XYSeries lower = new StyledXYSeries(
+                new StyledXYSeries(facetName, bundle.getFacetDescription(), false, doc);
+        XYSeries lower = new StyledXYSeries(facetName,
             bundle.getFacetDescription() + " ", false, doc);
 
         for (KMIndex.Entry<double[]> entry: kms) {
--- a/artifacts/src/main/java/org/dive4elements/river/exports/process/DischargeProcessor.java	Tue Oct 23 16:26:48 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/process/DischargeProcessor.java	Tue Oct 23 16:26:58 2018 +0200
@@ -107,7 +107,7 @@
         if (skm != null && Math.abs(skm-km) > 0.00001) {
             return;
         }
-        StyledXYSeries series = new StyledXYSeries(
+        StyledXYSeries series = new StyledXYSeries(bundle.getFacetName(),
             bundle.getFacetDescription().trim(), theme);
         double[][] wqData = new double[2][data.size()];
         for (int i = 0, n = data.size(); i < n; i++) {
--- a/artifacts/src/main/java/org/dive4elements/river/exports/process/FixDeltaWAProcessor.java	Tue Oct 23 16:26:48 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/process/FixDeltaWAProcessor.java	Tue Oct 23 16:26:58 2018 +0200
@@ -42,7 +42,9 @@
         CallContext context = generator.getContext();
         Object data = bundle.getData(context);
 
-        XYSeries series = new StyledXYSeries(
+        final String facetName = bundle.getFacetName(); 
+        
+        XYSeries series = new StyledXYSeries(facetName,
             bundle.getFacetDescription(), theme);
 
         // Handle WKms data.
@@ -54,15 +56,15 @@
         // If a "band around the curve shall be drawn, add according area.
         double bandWidth = theme.parseBandWidth();
         if (bandWidth > 0 ) {
-            XYSeries seriesDown = new StyledXYSeries(
+            XYSeries seriesDown = new StyledXYSeries(facetName,
                 "band " + bundle.getFacetDescription(), false, theme);
-            XYSeries seriesUp = new StyledXYSeries(
+            XYSeries seriesUp = new StyledXYSeries(facetName,
                 bundle.getFacetDescription()+"+/-"+bandWidth, false, theme);
             StyledSeriesBuilder.addUpperBand(seriesUp, wkms, bandWidth);
             StyledSeriesBuilder.addLowerBand(seriesDown, wkms, bandWidth);
 
             StyledAreaSeriesCollection area =
-                new StyledAreaSeriesCollection(theme);
+                new StyledAreaSeriesCollection(facetName, theme);
             area.addSeries(seriesUp);
             area.addSeries(seriesDown);
             area.setMode(StyledAreaSeriesCollection.FILL_MODE.BETWEEN);
--- a/artifacts/src/main/java/org/dive4elements/river/exports/process/FixDeltaWProcessor.java	Tue Oct 23 16:26:48 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/process/FixDeltaWProcessor.java	Tue Oct 23 16:26:58 2018 +0200
@@ -42,7 +42,9 @@
         CallContext context = generator.getContext();
         Object data = bundle.getData(context);
 
-        XYSeries series = new StyledXYSeries(
+        String facetName = bundle.getFacetName();
+        
+        XYSeries series = new StyledXYSeries(facetName,
             bundle.getFacetDescription(), theme);
 
         // Handle WKms data.
@@ -54,15 +56,15 @@
         // If a "band around the curve shall be drawn, add according area.
         double bandWidth = theme.parseBandWidth();
         if (bandWidth > 0 ) {
-            XYSeries seriesDown = new StyledXYSeries(
+            XYSeries seriesDown = new StyledXYSeries(facetName,
                 "band " + bundle.getFacetDescription(), false, theme);
-            XYSeries seriesUp = new StyledXYSeries(
+            XYSeries seriesUp = new StyledXYSeries(facetName,
                 bundle.getFacetDescription()+"+/-"+bandWidth, false, theme);
             StyledSeriesBuilder.addUpperBand(seriesUp, wkms, bandWidth);
             StyledSeriesBuilder.addLowerBand(seriesDown, wkms, bandWidth);
 
             StyledAreaSeriesCollection area =
-                new StyledAreaSeriesCollection(theme);
+                new StyledAreaSeriesCollection(facetName,theme);
             area.addSeries(seriesUp);
             area.addSeries(seriesDown);
             area.setMode(StyledAreaSeriesCollection.FILL_MODE.BETWEEN);
--- a/artifacts/src/main/java/org/dive4elements/river/exports/process/FixDerivedProcessor.java	Tue Oct 23 16:26:48 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/process/FixDerivedProcessor.java	Tue Oct 23 16:26:58 2018 +0200
@@ -67,6 +67,7 @@
 
         if (maxQ > 0) {
             StyledXYSeries series = JFreeUtil.sampleFunction2D(
+                    bundle.getFacetName(),
                     func.getFunction(),
                     theme,
                     bundle.getFacetDescription(),
--- a/artifacts/src/main/java/org/dive4elements/river/exports/process/FixWQProcessor.java	Tue Oct 23 16:26:48 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/process/FixWQProcessor.java	Tue Oct 23 16:26:58 2018 +0200
@@ -109,7 +109,7 @@
         QWD qwd = qwdd != null ? qwdd.getQWD() : null;
 
         if(qwd != null) {
-            XYSeries series = new StyledXYSeries(
+            XYSeries series = new StyledXYSeries(bundle.getFacetName(),
                 bundle.getFacetDescription(),
                 false, true,
                 theme);
@@ -200,6 +200,7 @@
 
         if (maxQ > 0) {
             StyledXYSeries series = JFreeUtil.sampleFunction2D(
+                    bundle.getFacetName(),
                     func.getFunction(),
                     theme,
                     bundle.getFacetDescription(),
@@ -347,7 +348,7 @@
             WQKms wqkms = (WQKms)data;
             // TODO As in doEventsOut, the value-searching should
             // be delivered by the facet already
-            XYSeries series = new StyledXYSeries(
+            XYSeries series = new StyledXYSeries(bundle.getFacetName(),
                 bundle.getFacetDescription(), theme);
             Double ckm = (Double) generator.getContext()
                 .getContextValue(CURRENT_KM);
@@ -385,7 +386,7 @@
             log.debug("FixWQCurveGenerator: doWQOut: double[][]");
             double [][] values = (double [][]) data;
 
-            XYSeries series = new StyledXYSeries(
+            XYSeries series = new StyledXYSeries(bundle.getFacetName(),
                 bundle.getFacetDescription(), false, true, theme);
             StyledSeriesBuilder.addPoints(series, values, true);
 
--- a/artifacts/src/main/java/org/dive4elements/river/exports/process/FlowVelocityProcessor.java	Tue Oct 23 16:26:48 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/process/FlowVelocityProcessor.java	Tue Oct 23 16:26:58 2018 +0200
@@ -43,7 +43,7 @@
             boolean          visible) {
         CallContext context = generator.getContext();
         Map<String, String> metaData = bundle.getFacet().getMetaData();
-        StyledXYSeries series = new StyledXYSeries(
+        StyledXYSeries series = new StyledXYSeries(bundle.getFacetName(),
             bundle.getFacetDescription(),
             theme);
         series.putMetaData(metaData, bundle.getArtifact(), context);
--- a/artifacts/src/main/java/org/dive4elements/river/exports/process/ManualPointsProcessor.java	Tue Oct 23 16:26:48 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/process/ManualPointsProcessor.java	Tue Oct 23 16:26:58 2018 +0200
@@ -42,7 +42,7 @@
             boolean          visible) {
         CallContext context = generator.getContext();
         String seriesName = bundle.getFacetDescription();
-        XYSeries series = new StyledXYSeries(seriesName, theme);
+        XYSeries series = new StyledXYSeries(bundle.getFacetName(), seriesName, theme);
         String jsonData = (String) bundle.getData(context);
 
         // Add text annotations for single points.
--- a/artifacts/src/main/java/org/dive4elements/river/exports/process/MiddleBedHeightProcessor.java	Tue Oct 23 16:26:48 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/process/MiddleBedHeightProcessor.java	Tue Oct 23 16:26:58 2018 +0200
@@ -57,7 +57,7 @@
         }
 
         double[][] data = (double[][])raw;
-        StyledXYSeries series = new StyledXYSeries(bundle.getFacetDescription(),
+        StyledXYSeries series = new StyledXYSeries(bundle.getFacetName(), bundle.getFacetDescription(),
                 theme);
         series.putMetaData(metaData, bundle.getArtifact(), context);
 
--- a/artifacts/src/main/java/org/dive4elements/river/exports/process/MiscDischargeProcessor.java	Tue Oct 23 16:26:48 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/process/MiscDischargeProcessor.java	Tue Oct 23 16:26:58 2018 +0200
@@ -143,7 +143,7 @@
         boolean visible,
         int axisIndex
     ) {
-        XYSeries series = new StyledXYSeries(
+        XYSeries series = new StyledXYSeries(bundle.getFacetName(),
             bundle.getFacetDescription(), theme);
         Object wq = bundle.getData(generator.getContext());
         if (wq instanceof double[][]) {
@@ -167,7 +167,7 @@
     ) {
         log.debug("doWQKmsPointOut");
         String title = bundle.getFacetDescription();
-        XYSeries series = new StyledXYSeries(
+        XYSeries series = new StyledXYSeries(bundle.getFacetName(),
             title,
             theme);
 
@@ -302,7 +302,7 @@
         ThemeDocument theme,
         boolean visible
     ) {
-        XYSeries series = new StyledXYSeries(
+        XYSeries series = new StyledXYSeries(bundle.getFacetName(),
             bundle.getFacetDescription(), theme);
         StyledSeriesBuilder.addPoints(series, data, true);
         generator.addAxisSeries(series, axisName, visible);
@@ -318,7 +318,7 @@
     ) {
         log.debug("doWQKmsPointOut");
         String title = bundle.getFacetDescription();
-        XYSeries series = new StyledXYSeries(
+        XYSeries series = new StyledXYSeries(bundle.getFacetName(),
             title,
             theme);
 
--- a/artifacts/src/main/java/org/dive4elements/river/exports/process/QOutProcessor.java	Tue Oct 23 16:26:48 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/process/QOutProcessor.java	Tue Oct 23 16:26:58 2018 +0200
@@ -40,7 +40,7 @@
     public void doOut(final DiagramGenerator generator, final ArtifactAndFacet bundle, final ThemeDocument theme, final boolean visible) {
         final CallContext context = generator.getContext();
         final Object data = bundle.getData(context);
-        final XYSeries series = new StyledXYSeries(bundle.getFacetDescription(), theme);
+        final XYSeries series = new StyledXYSeries(bundle.getFacetName(), bundle.getFacetDescription(), theme);
         final String facetName = bundle.getFacetName();
 
         if (facetName.equals(FacetTypes.FLOW_VELOCITY_DISCHARGE)) {
@@ -65,7 +65,7 @@
         final CallContext context = generator.getContext();
         final WQKms wqkms = (WQKms) bundle.getData(context);
 
-        final XYSeries series = new StyledXYSeries(bundle.getFacetDescription(), theme);
+        final XYSeries series = new StyledXYSeries(bundle.getFacetName(),bundle.getFacetDescription(), theme);
 
         StyledSeriesBuilder.addStepPointsKmQ(series, wqkms);
 
--- a/artifacts/src/main/java/org/dive4elements/river/exports/process/SQRelationProcessor.java	Tue Oct 23 16:26:48 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/process/SQRelationProcessor.java	Tue Oct 23 16:26:58 2018 +0200
@@ -65,6 +65,7 @@
             SQFunction func = (SQFunction) data;
 
             series = JFreeUtil.sampleFunction2DPositive(
+                bundle.getFacetName(),    
                 func.getFunction(),
                 theme,
                 desc,
@@ -76,7 +77,7 @@
                FacetTypes.IS.SQ_OUTLIER(facetName)) {
 
             SQ[] sqs = (SQ[]) data;
-            series = new StyledXYSeries(desc, theme);
+            series = new StyledXYSeries(bundle.getFacetName(), desc, theme);
             List<XYTextAnnotation> xy = new ArrayList<XYTextAnnotation>();
 
             DateFormat dateFormat = DateFormat.getDateInstance(
--- a/artifacts/src/main/java/org/dive4elements/river/exports/process/SedimentDensityProcessor.java	Tue Oct 23 16:26:48 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/process/SedimentDensityProcessor.java	Tue Oct 23 16:26:58 2018 +0200
@@ -42,7 +42,7 @@
             ThemeDocument    theme,
             boolean          visible) {
         CallContext context = generator.getContext();
-        XYSeries series = new StyledXYSeries(bundle.getFacetDescription(),
+        XYSeries series = new StyledXYSeries(bundle.getFacetName(), bundle.getFacetDescription(),
                 theme);
         Object data = bundle.getData(context);
         String facetName = bundle.getFacetName();
--- a/artifacts/src/main/java/org/dive4elements/river/exports/process/SedimentLoadLSProcessor.java	Tue Oct 23 16:26:48 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/process/SedimentLoadLSProcessor.java	Tue Oct 23 16:26:58 2018 +0200
@@ -32,7 +32,7 @@
             boolean          visible) {
         log.debug("doOut " + bundle.getFacetName());
         CallContext context = generator.getContext();
-        XYSeries series = new StyledXYSeries(bundle.getFacetDescription(),
+        XYSeries series = new StyledXYSeries(bundle.getFacetName(), bundle.getFacetDescription(),
                 false, // Handle NaN
                 theme);
         Object data = bundle.getData(context);
--- a/artifacts/src/main/java/org/dive4elements/river/exports/process/SedimentLoadProcessor.java	Tue Oct 23 16:26:48 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/process/SedimentLoadProcessor.java	Tue Oct 23 16:26:58 2018 +0200
@@ -42,7 +42,7 @@
             boolean          visible) {
 
         CallContext context = generator.getContext();
-        XYSeries series = new StyledXYSeries(bundle.getFacetDescription(),
+        XYSeries series = new StyledXYSeries(bundle.getFacetName(),bundle.getFacetDescription(),
                 false, // Handle NaN
                 theme);
         Object data = bundle.getData(context);
--- a/artifacts/src/main/java/org/dive4elements/river/exports/process/ShearStressProcessor.java	Tue Oct 23 16:26:48 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/process/ShearStressProcessor.java	Tue Oct 23 16:26:58 2018 +0200
@@ -38,9 +38,9 @@
             ThemeDocument    theme,
             boolean          visible) {
         CallContext context = generator.getContext();
-        XYSeries series = new StyledXYSeries(bundle.getFacetDescription(),
+        String facetName = bundle.getFacetName();
+        XYSeries series = new StyledXYSeries(facetName, bundle.getFacetDescription(),
                 theme);
-        String facetName = bundle.getFacetName();
         FlowVelocityData data = (FlowVelocityData) bundle.getData(context);
 
         StyledSeriesBuilder.addPoints(series, data.getTauPoints(), true);
--- a/artifacts/src/main/java/org/dive4elements/river/exports/process/WOutProcessor.java	Tue Oct 23 16:26:48 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/process/WOutProcessor.java	Tue Oct 23 16:26:58 2018 +0200
@@ -53,7 +53,9 @@
         CallContext context = generator.getContext();
         Object data = bundle.getData(context);
 
-        XYSeries series = new StyledXYSeries(
+        final String facetName = bundle.getFacetName();
+        
+        XYSeries series = new StyledXYSeries(facetName,
             bundle.getFacetDescription(), theme);
 
         // Handle non WKms data.
@@ -89,15 +91,15 @@
         // If a "band around the curve shall be drawn, add according area.
         double bandWidth = theme.parseBandWidth();
         if (bandWidth > 0 ) {
-            XYSeries seriesDown = new StyledXYSeries(
+            XYSeries seriesDown = new StyledXYSeries(facetName,
                 "band " + bundle.getFacetDescription(), false, theme);
-            XYSeries seriesUp = new StyledXYSeries(
+            XYSeries seriesUp = new StyledXYSeries(facetName,
                 bundle.getFacetDescription()+"+/-"+bandWidth, false, theme);
             StyledSeriesBuilder.addUpperBand(seriesUp, wkms, bandWidth);
             StyledSeriesBuilder.addLowerBand(seriesDown, wkms, bandWidth);
 
             StyledAreaSeriesCollection area =
-                new StyledAreaSeriesCollection(theme);
+                new StyledAreaSeriesCollection(facetName,theme);
             area.addSeries(seriesUp);
             area.addSeries(seriesDown);
             area.setMode(StyledAreaSeriesCollection.FILL_MODE.BETWEEN);
@@ -130,7 +132,9 @@
 
         CallContext context = generator.getContext();
 
-        XYSeries series = new StyledXYSeries(
+        final String facetName = bundle.getFacetName();
+        
+        XYSeries series = new StyledXYSeries(facetName,
             bundle.getFacetDescription(), theme);
 
         WKms wkms = (WKms) bundle.getData(context);
@@ -141,15 +145,14 @@
         // If a "band around the curve shall be drawn, add according area.
         double bandWidth = theme.parseBandWidth();
         if (bandWidth > 0 ) {
-            XYSeries seriesDown = new StyledXYSeries(
+            XYSeries seriesDown = new StyledXYSeries(facetName,
                 "band " + bundle.getFacetDescription(), false, theme);
-            XYSeries seriesUp = new StyledXYSeries(
+            XYSeries seriesUp = new StyledXYSeries(facetName,
                 bundle.getFacetDescription()+"+/-"+bandWidth, false, theme);
             StyledSeriesBuilder.addUpperBand(seriesUp, wkms, bandWidth);
             StyledSeriesBuilder.addLowerBand(seriesDown, wkms, bandWidth);
 
-            StyledAreaSeriesCollection area =
-                new StyledAreaSeriesCollection(theme);
+            StyledAreaSeriesCollection area = new StyledAreaSeriesCollection(facetName,theme);
             area.addSeries(seriesUp);
             area.addSeries(seriesDown);
             area.setMode(StyledAreaSeriesCollection.FILL_MODE.BETWEEN);
--- a/artifacts/src/main/java/org/dive4elements/river/jfree/JFreeUtil.java	Tue Oct 23 16:26:48 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/jfree/JFreeUtil.java	Tue Oct 23 16:26:58 2018 +0200
@@ -106,6 +106,7 @@
 
 
     public static StyledXYSeries sampleFunction2D(
+        String facetName,
         Function func,
         ThemeDocument theme,
         String   seriesKey,
@@ -113,7 +114,7 @@
         double   start,
         double   end
     ) {
-        StyledXYSeries series = new StyledXYSeries(seriesKey, theme);
+        StyledXYSeries series = new StyledXYSeries(facetName,seriesKey, theme);
 
         double step = (end - start) / (samples - 1);
 
@@ -126,6 +127,7 @@
     }
 
     public static StyledXYSeries sampleFunction2DPositive(
+        String facetName,    
         Function func,
         ThemeDocument theme,
         String   seriesKey,
@@ -133,7 +135,7 @@
         double   start,
         double   end
     ) {
-        StyledXYSeries series = new StyledXYSeries(seriesKey, theme);
+        StyledXYSeries series = new StyledXYSeries(facetName,seriesKey, theme);
 
         double step = (end - start) / (samples - 1);
 

http://dive4elements.wald.intevation.org