From cc76f6a6de9d420912e6d065d6ac4fbdf1a62303 Mon Sep 17 00:00:00 2001 From: Tim Molter <tim.molter@gmail.com> Date: Sat, 15 Nov 2014 14:57:14 +0100 Subject: [PATCH] Issue #87 allow error bar color to match series color --- .../java/com/xeiam/xchart/StyleManager.java | 19 ++++++++++++++++++- .../chartpart/PlotContentLineChart.java | 9 ++++++++- .../xchart/internal/style/GGPlot2Theme.java | 5 +++++ .../xchart/internal/style/MatlabTheme.java | 5 +++++ .../xeiam/xchart/internal/style/Theme.java | 2 ++ .../xchart/internal/style/XChartTheme.java | 6 ++++++ 6 files changed, 44 insertions(+), 2 deletions(-) diff --git a/xchart/src/main/java/com/xeiam/xchart/StyleManager.java b/xchart/src/main/java/com/xeiam/xchart/StyleManager.java index fb4d87a2..58fe2917 100644 --- a/xchart/src/main/java/com/xeiam/xchart/StyleManager.java +++ b/xchart/src/main/java/com/xeiam/xchart/StyleManager.java @@ -143,6 +143,7 @@ public class StyleManager { // Error Bars /////////////////////////////// private Color errorBarsColor; + private boolean isErrorBarsColorSeriesColor; // Formatting //////////////////////////////// private Locale locale; @@ -231,6 +232,7 @@ public class StyleManager { // Error Bars /////////////////////////////// errorBarsColor = theme.getErrorBarsColor(); + isErrorBarsColorSeriesColor = theme.isErrorBarsColorSeriesColor(); // Formatting //////////////////////////////// locale = Locale.getDefault(); @@ -1045,7 +1047,7 @@ public class StyleManager { /** * set whether or no bars are filled with a solid color or empty. - * + * * @param isBarFilled */ public void setBarFilled(boolean isBarFilled) { @@ -1092,6 +1094,21 @@ public class StyleManager { return errorBarsColor; } + /** + * Set true if the the error bar color should match the series color + * + * @return + */ + public void setErrorBarsColorSeriesColor(boolean isErrorBarsColorSeriesColor) { + + this.isErrorBarsColorSeriesColor = isErrorBarsColorSeriesColor; + } + + public boolean isErrorBarsColorSeriesColor() { + + return isErrorBarsColorSeriesColor; + } + // Formatting //////////////////////////////// /** diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/PlotContentLineChart.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/PlotContentLineChart.java index 0b2e49aa..bcf987e8 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/PlotContentLineChart.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/PlotContentLineChart.java @@ -236,7 +236,14 @@ public class PlotContentLineChart extends PlotContent { if (errorBars != null) { - g.setColor(getChartPainter().getStyleManager().getErrorBarsColor()); + // set error bar color + + if (getChartPainter().getStyleManager().isErrorBarsColorSeriesColor()) { + g.setColor(series.getStrokeColor()); + } + else { + g.setColor(getChartPainter().getStyleManager().getErrorBarsColor()); + } g.setStroke(errorBarStroke); double topValue = 0.0; diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/style/GGPlot2Theme.java b/xchart/src/main/java/com/xeiam/xchart/internal/style/GGPlot2Theme.java index cb95e1a1..5a454f99 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/style/GGPlot2Theme.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/style/GGPlot2Theme.java @@ -315,4 +315,9 @@ public class GGPlot2Theme implements Theme { return ChartColor.getAWTColor(ChartColor.DARK_GREY); } + @Override + public boolean isErrorBarsColorSeriesColor() { + + return false; + } } diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/style/MatlabTheme.java b/xchart/src/main/java/com/xeiam/xchart/internal/style/MatlabTheme.java index 5756a29d..1cbbe35a 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/style/MatlabTheme.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/style/MatlabTheme.java @@ -316,4 +316,9 @@ public class MatlabTheme implements Theme { return ChartColor.getAWTColor(ChartColor.BLACK); } + @Override + public boolean isErrorBarsColorSeriesColor() { + + return false; + } } diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/style/Theme.java b/xchart/src/main/java/com/xeiam/xchart/internal/style/Theme.java index 4ca1c5dd..97b4bffb 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/style/Theme.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/style/Theme.java @@ -132,4 +132,6 @@ public interface Theme { public Color getErrorBarsColor(); + public boolean isErrorBarsColorSeriesColor(); + } diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/style/XChartTheme.java b/xchart/src/main/java/com/xeiam/xchart/internal/style/XChartTheme.java index 1a4cf322..d09084da 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/style/XChartTheme.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/style/XChartTheme.java @@ -315,4 +315,10 @@ public class XChartTheme implements Theme { return ChartColor.getAWTColor(ChartColor.DARK_GREY); } + @Override + public boolean isErrorBarsColorSeriesColor() { + + return false; + } + } -- GitLab