From ad543a7655e7c5a126fb8a61806ba1df6a4397e8 Mon Sep 17 00:00:00 2001 From: Tim Molter <tim.molter@gmail.com> Date: Sat, 25 May 2013 19:22:27 +0200 Subject: [PATCH] improved Area Chart error conditions --- .../java/com/xeiam/xchart/demo/charts/area/AreaChart02.java | 4 ++++ xchart/src/main/java/com/xeiam/xchart/StyleManager.java | 3 +++ .../xeiam/xchart/internal/chartpart/PlotContentLineChart.java | 4 +++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/area/AreaChart02.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/area/AreaChart02.java index 7f015799..397d37f6 100644 --- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/area/AreaChart02.java +++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/area/AreaChart02.java @@ -64,6 +64,10 @@ public class AreaChart02 implements ExampleChart { } xData.add(10); yData.add(null); + xData.add(11); + yData.add(100); + xData.add(12); + yData.add(90); chart.addSeries("a", xData, yData); diff --git a/xchart/src/main/java/com/xeiam/xchart/StyleManager.java b/xchart/src/main/java/com/xeiam/xchart/StyleManager.java index 7a6f34ca..249e7b57 100644 --- a/xchart/src/main/java/com/xeiam/xchart/StyleManager.java +++ b/xchart/src/main/java/com/xeiam/xchart/StyleManager.java @@ -31,6 +31,9 @@ import com.xeiam.xchart.internal.style.XChartTheme; */ public class StyleManager { + /** + * Note: For Area Charts, the X-Axis data must be in ascending order. + */ public enum ChartType { Line, Scatter, Area, Bar 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 6fc1c6ea..d91c180e 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 @@ -194,9 +194,11 @@ public class PlotContentLineChart extends PlotContent { path.moveTo(previousX, yBottomOfArea); path.lineTo(previousX, previousY); } - path.lineTo(xOffset, yOffset); } + if (xOffset < previousX) { + throw new RuntimeException("X-Data must be in ascending order for Area Charts!!!"); + } } previousX = xOffset; -- GitLab