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