From 5bc523fa93cf75ea12e04c12938ba7428a771079 Mon Sep 17 00:00:00 2001 From: Tim Molter <tim.molter@gmail.com> Date: Sun, 10 Feb 2013 07:52:26 +0100 Subject: [PATCH] plot gridline visibility, got rid of IHideable --- .../src/main/java/com/xeiam/xchart/Chart.java | 12 ------- .../xchart/internal/chartpart/AxisTick.java | 8 +---- .../xchart/internal/chartpart/AxisTitle.java | 8 +---- .../xchart/internal/chartpart/ChartTitle.java | 8 +---- .../xchart/internal/chartpart/Legend.java | 8 +---- .../internal/chartpart/PlotSurface.java | 14 ++------ .../xchart/internal/interfaces/IHideable.java | 19 ----------- .../com/xeiam/xchart/style/StyleManager.java | 34 +++++++++++++++++-- .../com/xeiam/xchart/style/theme/Theme.java | 4 +++ .../xeiam/xchart/style/theme/XChartTheme.java | 10 ++++++ 10 files changed, 52 insertions(+), 73 deletions(-) delete mode 100644 xchart/src/main/java/com/xeiam/xchart/internal/interfaces/IHideable.java diff --git a/xchart/src/main/java/com/xeiam/xchart/Chart.java b/xchart/src/main/java/com/xeiam/xchart/Chart.java index 6d4b3064..20fd1971 100644 --- a/xchart/src/main/java/com/xeiam/xchart/Chart.java +++ b/xchart/src/main/java/com/xeiam/xchart/Chart.java @@ -254,18 +254,6 @@ public class Chart { this.axisPair.yAxis.axisTitle.setText(title); } - // ChartPart visibility //////////////////////////////// - - /** - * Set the chart grid lines visibility - * - * @param isVisible - */ - public void setGridlinesVisible(boolean isVisible) { - - this.plot.plotSurface.setVisible(isVisible); - } - /** * Set the chart foreground color - the part the series are drawn on * diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTick.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTick.java index 030fe332..20207578 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTick.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTick.java @@ -26,13 +26,12 @@ import java.util.TimeZone; import com.xeiam.xchart.internal.chartpart.Axis.AxisType; import com.xeiam.xchart.internal.chartpart.Axis.Direction; import com.xeiam.xchart.internal.interfaces.IChartPart; -import com.xeiam.xchart.internal.interfaces.IHideable; import com.xeiam.xchart.internal.misc.AxisValueFormatterUtil; /** * An axis tick */ -public class AxisTick implements IChartPart, IHideable { +public class AxisTick implements IChartPart { /** the default tick mark step hint for x axis */ private static final int DEFAULT_TICK_MARK_STEP_HINT_X = 74; @@ -265,9 +264,4 @@ public class AxisTick implements IChartPart, IHideable { } - @Override - public void setVisible(boolean isVisible) { - - // this.isVisible = isVisible; - } } diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTitle.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTitle.java index 2317d430..fa0391a6 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTitle.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTitle.java @@ -22,12 +22,11 @@ import java.awt.font.TextLayout; import java.awt.geom.AffineTransform; import com.xeiam.xchart.internal.interfaces.IChartPart; -import com.xeiam.xchart.internal.interfaces.IHideable; /** * AxisTitle */ -public class AxisTitle implements IChartPart, IHideable { +public class AxisTitle implements IChartPart { /** parent */ private final Axis axis; @@ -58,11 +57,6 @@ public class AxisTitle implements IChartPart, IHideable { this.text = text; } - @Override - public void setVisible(boolean isVisible) { - - } - @Override public Rectangle getBounds() { diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/ChartTitle.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/ChartTitle.java index 01284ef4..654db3bd 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/ChartTitle.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/ChartTitle.java @@ -22,12 +22,11 @@ import java.awt.font.TextLayout; import com.xeiam.xchart.Chart; import com.xeiam.xchart.internal.interfaces.IChartPart; -import com.xeiam.xchart.internal.interfaces.IHideable; /** * Chart Title */ -public class ChartTitle implements IChartPart, IHideable { +public class ChartTitle implements IChartPart { /** parent */ private final Chart chart; @@ -58,11 +57,6 @@ public class ChartTitle implements IChartPart, IHideable { this.text = text; } - @Override - public void setVisible(boolean isVisible) { - - } - @Override public void paint(Graphics2D g) { diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/Legend.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/Legend.java index 95c8d3a7..3c1a8793 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/Legend.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/Legend.java @@ -23,14 +23,13 @@ import java.util.Map; import com.xeiam.xchart.Chart; import com.xeiam.xchart.internal.interfaces.IChartPart; -import com.xeiam.xchart.internal.interfaces.IHideable; import com.xeiam.xchart.internal.markers.Marker; import com.xeiam.xchart.style.Series; /** * @author timmolter */ -public class Legend implements IChartPart, IHideable { +public class Legend implements IChartPart { /** parent */ private final Chart chart; @@ -48,11 +47,6 @@ public class Legend implements IChartPart, IHideable { this.chart = chart; } - @Override - public void setVisible(boolean isVisible) { - - } - @Override public void paint(Graphics2D g) { diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/PlotSurface.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/PlotSurface.java index 2942fdc9..146f766b 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/PlotSurface.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/PlotSurface.java @@ -22,13 +22,12 @@ import java.awt.Rectangle; import java.util.List; import com.xeiam.xchart.internal.interfaces.IChartPart; -import com.xeiam.xchart.internal.interfaces.IHideable; import com.xeiam.xchart.style.ChartColor; /** * @author timmolter */ -public class PlotSurface implements IChartPart, IHideable { +public class PlotSurface implements IChartPart { /** parent */ private Plot plot; @@ -42,9 +41,6 @@ public class PlotSurface implements IChartPart, IHideable { /** the line style */ private BasicStroke stroke; - /** the visibility state of PlotSurface */ - protected boolean isVisible = true; // default to true - /** * Constructor * @@ -78,7 +74,7 @@ public class PlotSurface implements IChartPart, IHideable { g.draw(borderRectangle); // paint grid lines - if (isVisible) { + if (plot.chart.getStyleManager().isPlotGridLinesVisible()) { // horizontal List<Integer> yAxisTickLocations = plot.chart.axisPair.yAxis.axisTick.tickLocations; for (int i = 0; i < yAxisTickLocations.size(); i++) { @@ -106,12 +102,6 @@ public class PlotSurface implements IChartPart, IHideable { } } - @Override - public void setVisible(boolean isVisible) { - - this.isVisible = isVisible; - } - /** * @param gridLinesColor the gridLinesColor to set */ diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/interfaces/IHideable.java b/xchart/src/main/java/com/xeiam/xchart/internal/interfaces/IHideable.java deleted file mode 100644 index 9c4fb791..00000000 --- a/xchart/src/main/java/com/xeiam/xchart/internal/interfaces/IHideable.java +++ /dev/null @@ -1,19 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008-2011 SWTChart project. All rights reserved. - * - * This code is distributed under the terms of the Eclipse Public License v1.0 - * which is available at http://www.eclipse.org/legal/epl-v10.html - *******************************************************************************/ -package com.xeiam.xchart.internal.interfaces; - -/** - * ChartParts that can be set visible or not should implement this interface - * - * @author timmolter - */ -// TODO get rid of this after theme refactor is done -public interface IHideable extends IChartPart { - - public void setVisible(boolean isVisible); - -} \ No newline at end of file diff --git a/xchart/src/main/java/com/xeiam/xchart/style/StyleManager.java b/xchart/src/main/java/com/xeiam/xchart/style/StyleManager.java index 2fea5b2e..6988a744 100644 --- a/xchart/src/main/java/com/xeiam/xchart/style/StyleManager.java +++ b/xchart/src/main/java/com/xeiam/xchart/style/StyleManager.java @@ -35,19 +35,23 @@ public class StyleManager { /** the default Theme */ private Theme theme = new XChartTheme(); + // Chart Style /////////////////////////////// private Color chartBackgroundColor; public Color chartBordersColor; public Color chartFontColor; private int chartPadding; + // Chart Title /////////////////////////////// private Font chartTitleFont; private boolean isChartTitleVisible; + // Chart Legend /////////////////////////////// private boolean isLegendVisible; private Color legendBackgroundColor; private Font legendFont; private int legendPadding; + // Chart Axes /////////////////////////////// private boolean xAxisTitleVisible; private boolean yAxisTitleVisible; private Font axisTitleFont; @@ -60,6 +64,9 @@ public class StyleManager { private int plotPadding; private int axisTitlePadding; + // Chart Plot Area /////////////////////////////// + private boolean isPlotGridLinesVisible; + /** * Constructor */ @@ -70,19 +77,22 @@ public class StyleManager { private void setAllStyles() { - // chart + // Chart Style /////////////////////////////// chartBackgroundColor = theme.getChartBackgroundColor(); chartBordersColor = theme.getChartBordersColor(); chartFontColor = theme.getChartFontColor(); chartPadding = theme.getChartPadding(); - // chart title + + // Chart Title /////////////////////////////// chartTitleFont = theme.getChartTitleFont(); isChartTitleVisible = theme.isChartTitleVisible(); + // legend isLegendVisible = theme.isLegendVisible(); legendBackgroundColor = theme.getLegendBackgroundColor(); legendFont = theme.getLegendFont(); legendPadding = theme.getLegendPadding(); + // axes xAxisTitleVisible = theme.isXAxisTitleVisible(); yAxisTitleVisible = theme.isYAxisTitleVisible(); @@ -95,6 +105,9 @@ public class StyleManager { isAxisTicksLineVisible = theme.isAxisTicksLineVisible(); plotPadding = theme.getPlotPadding(); axisTitlePadding = theme.getAxisTitlePadding(); + + // Chart Plot Area /////////////////////////////// + isPlotGridLinesVisible = theme.isPlotGridLinesVisible(); } /** @@ -456,4 +469,21 @@ public class StyleManager { return axisTitlePadding; } + + // Chart Plot Area /////////////////////////////// + + /** + * sets the visibility of the gridlines on the plot area + * + * @param isPlotGridLinesVisible + */ + public void setPlotGridLinesVisible(boolean isPlotGridLinesVisible) { + + this.isPlotGridLinesVisible = isPlotGridLinesVisible; + } + + public boolean isPlotGridLinesVisible() { + + return isPlotGridLinesVisible; + } } diff --git a/xchart/src/main/java/com/xeiam/xchart/style/theme/Theme.java b/xchart/src/main/java/com/xeiam/xchart/style/theme/Theme.java index 87abdcec..b31cefa2 100644 --- a/xchart/src/main/java/com/xeiam/xchart/style/theme/Theme.java +++ b/xchart/src/main/java/com/xeiam/xchart/style/theme/Theme.java @@ -79,4 +79,8 @@ public interface Theme { public int getPlotPadding(); + // Chart Plot Area /////////////////////////////// + + public boolean isPlotGridLinesVisible(); + } diff --git a/xchart/src/main/java/com/xeiam/xchart/style/theme/XChartTheme.java b/xchart/src/main/java/com/xeiam/xchart/style/theme/XChartTheme.java index 93ed3b98..86d69e42 100644 --- a/xchart/src/main/java/com/xeiam/xchart/style/theme/XChartTheme.java +++ b/xchart/src/main/java/com/xeiam/xchart/style/theme/XChartTheme.java @@ -97,6 +97,8 @@ public class XChartTheme implements Theme { return 10; } + // Chart Axes /////////////////////////////// + @Override public boolean isXAxisTitleVisible() { @@ -162,4 +164,12 @@ public class XChartTheme implements Theme { return 10; } + + // Chart Plot Area /////////////////////////////// + + @Override + public boolean isPlotGridLinesVisible() { + + return true; + } } -- GitLab