From 40a3bbb0b41762ae1ddecfdaefe6d72ace0f7891 Mon Sep 17 00:00:00 2001
From: Tim Molter <tim@knowm.org>
Date: Fri, 22 Jan 2016 16:40:16 +0100
Subject: [PATCH] allow for resetting of axes types when removing and adding
 series (Issue #127)

---
 .../xchart/standalone/TestForIssue127.java    |  1 +
 .../java/org/knowm/xchart/Chart_Category.java |  9 ++++-----
 .../main/java/org/knowm/xchart/Chart_XY.java  |  5 ++---
 .../xchart/internal/Series_AxesChart.java     |  4 ++--
 .../knowm/xchart/internal/chartpart/Axis.java | 20 +++++++++----------
 .../xchart/internal/chartpart/AxisPair.java   |  8 ++++++++
 .../xchart/internal/chartpart/ChartTitle.java |  5 ++---
 7 files changed, 29 insertions(+), 23 deletions(-)

diff --git a/xchart-demo/src/main/java/org/knowm/xchart/standalone/TestForIssue127.java b/xchart-demo/src/main/java/org/knowm/xchart/standalone/TestForIssue127.java
index 7c23b15a..6b63bf15 100644
--- a/xchart-demo/src/main/java/org/knowm/xchart/standalone/TestForIssue127.java
+++ b/xchart-demo/src/main/java/org/knowm/xchart/standalone/TestForIssue127.java
@@ -51,6 +51,7 @@ public class TestForIssue127 {
 
     chart.removeSeries("test");
     new SwingWrapper(chart).displayChart();
+    Thread.sleep(1000);
 
     DateFormat sdf = new SimpleDateFormat("dd-HH-mm");
 
diff --git a/xchart/src/main/java/org/knowm/xchart/Chart_Category.java b/xchart/src/main/java/org/knowm/xchart/Chart_Category.java
index 060ad0af..938746d4 100644
--- a/xchart/src/main/java/org/knowm/xchart/Chart_Category.java
+++ b/xchart/src/main/java/org/knowm/xchart/Chart_Category.java
@@ -22,7 +22,6 @@ import java.awt.Shape;
 import java.awt.geom.Rectangle2D;
 import java.util.List;
 
-import org.knowm.xchart.internal.chartpart.Axis.AxisDataType;
 import org.knowm.xchart.internal.chartpart.AxisPair;
 import org.knowm.xchart.internal.chartpart.Chart;
 import org.knowm.xchart.internal.chartpart.Legend_AxesChart;
@@ -188,8 +187,8 @@ public class Chart_Category extends Chart<Styler_Category, Series_Category> {
 
     seriesMap.put(seriesName, series);
 
-    getXAxis().setAxisType(series.getxAxisType());
-    getYAxis().setAxisType(AxisDataType.Number);
+    // getXAxis().setAxisType(series.getxAxisDataType());
+    // getYAxis().setAxisType(AxisDataType.Number);
 
     return series;
   }
@@ -261,8 +260,8 @@ public class Chart_Category extends Chart<Styler_Category, Series_Category> {
    */
   public void setSeriesStyles() {
 
-    SeriesColorMarkerLineStyleCycler seriesColorMarkerLineStyleCycler = new SeriesColorMarkerLineStyleCycler(getStyler().getSeriesColors(), getStyler().getSeriesMarkers(),
-        getStyler().getSeriesLines());
+    SeriesColorMarkerLineStyleCycler seriesColorMarkerLineStyleCycler = new SeriesColorMarkerLineStyleCycler(getStyler().getSeriesColors(), getStyler().getSeriesMarkers(), getStyler()
+        .getSeriesLines());
     for (Series_Category series : getSeriesMap().values()) {
 
       SeriesColorMarkerLineStyle seriesColorMarkerLineStyle = seriesColorMarkerLineStyleCycler.getNextSeriesColorMarkerLineStyle();
diff --git a/xchart/src/main/java/org/knowm/xchart/Chart_XY.java b/xchart/src/main/java/org/knowm/xchart/Chart_XY.java
index 9f367d82..127b3291 100644
--- a/xchart/src/main/java/org/knowm/xchart/Chart_XY.java
+++ b/xchart/src/main/java/org/knowm/xchart/Chart_XY.java
@@ -22,7 +22,6 @@ import java.awt.Shape;
 import java.awt.geom.Rectangle2D;
 import java.util.List;
 
-import org.knowm.xchart.internal.chartpart.Axis.AxisDataType;
 import org.knowm.xchart.internal.chartpart.AxisPair;
 import org.knowm.xchart.internal.chartpart.Chart;
 import org.knowm.xchart.internal.chartpart.Legend_AxesChart;
@@ -188,8 +187,8 @@ public class Chart_XY extends Chart<Styler_XY, Series_XY> {
 
     seriesMap.put(seriesName, series);
 
-    getXAxis().setAxisType(series.getxAxisType());
-    getYAxis().setAxisType(AxisDataType.Number);
+    // getXAxis().setAxisType(series.getxAxisDataType());
+    // getYAxis().setAxisType(AxisDataType.Number);
 
     return series;
   }
diff --git a/xchart/src/main/java/org/knowm/xchart/internal/Series_AxesChart.java b/xchart/src/main/java/org/knowm/xchart/internal/Series_AxesChart.java
index 5bf688f1..02a9900d 100644
--- a/xchart/src/main/java/org/knowm/xchart/internal/Series_AxesChart.java
+++ b/xchart/src/main/java/org/knowm/xchart/internal/Series_AxesChart.java
@@ -244,7 +244,7 @@ public abstract class Series_AxesChart extends Series {
     return xData;
   }
 
-  public AxisDataType getxAxisType() {
+  public AxisDataType getxAxisDataType() {
 
     return xAxisType;
   }
@@ -254,7 +254,7 @@ public abstract class Series_AxesChart extends Series {
     return yData;
   }
 
-  public AxisDataType getyAxisType() {
+  public AxisDataType getyAxisDataType() {
 
     return yAxisType;
   }
diff --git a/xchart/src/main/java/org/knowm/xchart/internal/chartpart/Axis.java b/xchart/src/main/java/org/knowm/xchart/internal/chartpart/Axis.java
index 47c03576..0d0ef32d 100644
--- a/xchart/src/main/java/org/knowm/xchart/internal/chartpart/Axis.java
+++ b/xchart/src/main/java/org/knowm/xchart/internal/chartpart/Axis.java
@@ -101,7 +101,7 @@ public class Axis<ST extends Styler_AxesChart, S extends Series> implements Char
   /**
    * Reset the default min and max values in preparation for calculating the actual min and max
    */
-  public void resetMinMax() {
+  protected void resetMinMax() {
 
     min = Double.MAX_VALUE;
     max = -Double.MAX_VALUE;
@@ -111,7 +111,7 @@ public class Axis<ST extends Styler_AxesChart, S extends Series> implements Char
    * @param min
    * @param max
    */
-  public void addMinMax(double min, double max) {
+  protected void addMinMax(double min, double max) {
 
     // System.out.println(min);
     // System.out.println(max);
@@ -127,14 +127,6 @@ public class Axis<ST extends Styler_AxesChart, S extends Series> implements Char
     // System.out.println(this.max);
   }
 
-  public void setAxisType(AxisDataType axisDataType) {
-
-    if (this.axisDataType != null && this.axisDataType != axisDataType) {
-      throw new IllegalArgumentException("Different Axes (Date, Number, String) cannot be mixed on the same chart!!");
-    }
-    this.axisDataType = axisDataType;
-  }
-
   @Override
   public void paint(Graphics2D g) {
 
@@ -392,6 +384,14 @@ public class Axis<ST extends Styler_AxesChart, S extends Series> implements Char
     return axisDataType;
   }
 
+  public void setAxisDataType(AxisDataType axisDataType) {
+
+    if (axisDataType != null && this.axisDataType != null && this.axisDataType != axisDataType) {
+      throw new IllegalArgumentException("Different Axes (e.g. Date, Number, String) cannot be mixed on the same chart!!");
+    }
+    this.axisDataType = axisDataType;
+  }
+
   protected double getMin() {
 
     return min;
diff --git a/xchart/src/main/java/org/knowm/xchart/internal/chartpart/AxisPair.java b/xchart/src/main/java/org/knowm/xchart/internal/chartpart/AxisPair.java
index e197aa11..5c3d625c 100644
--- a/xchart/src/main/java/org/knowm/xchart/internal/chartpart/AxisPair.java
+++ b/xchart/src/main/java/org/knowm/xchart/internal/chartpart/AxisPair.java
@@ -60,6 +60,14 @@ public class AxisPair<ST extends Styler_AxesChart, S extends Series> implements
 
   private void prepareForPaint() {
 
+    // set the axis data types, making sure all are compatible
+    xAxis.setAxisDataType(null);
+    yAxis.setAxisDataType(null);
+    for (Series_AxesChart series : chart.getSeriesMap().values()) {
+      xAxis.setAxisDataType(series.getxAxisDataType());
+      yAxis.setAxisDataType(series.getyAxisDataType());
+    }
+
     // calculate axis min and max
     xAxis.resetMinMax();
     yAxis.resetMinMax();
diff --git a/xchart/src/main/java/org/knowm/xchart/internal/chartpart/ChartTitle.java b/xchart/src/main/java/org/knowm/xchart/internal/chartpart/ChartTitle.java
index eee78f11..d443d55e 100644
--- a/xchart/src/main/java/org/knowm/xchart/internal/chartpart/ChartTitle.java
+++ b/xchart/src/main/java/org/knowm/xchart/internal/chartpart/ChartTitle.java
@@ -17,7 +17,6 @@
 package org.knowm.xchart.internal.chartpart;
 
 import java.awt.BasicStroke;
-import java.awt.Color;
 import java.awt.Graphics2D;
 import java.awt.Shape;
 import java.awt.font.FontRenderContext;
@@ -91,8 +90,8 @@ public class ChartTitle implements ChartPart {
     double width = 2 * chart.getStyler().getChartTitlePadding() + textBounds.getWidth();
     double height = 2 * chart.getStyler().getChartTitlePadding() + textBounds.getHeight();
     bounds = new Rectangle2D.Double(xOffset - chart.getStyler().getChartTitlePadding(), yOffset - textBounds.getHeight() - chart.getStyler().getChartTitlePadding(), width, height);
-    g.setColor(Color.green);
-    g.draw(bounds);
+    // g.setColor(Color.green);
+    // g.draw(bounds);
 
   }
 
-- 
GitLab