From b51a75fc4e7bf815a6c5c5415622f9ccbe364c6c Mon Sep 17 00:00:00 2001 From: Tim Molter <tim.molter@gmail.com> Date: Sun, 3 Feb 2013 20:49:59 +0100 Subject: [PATCH] chart title visibility --- .../xeiam/xchart/demo/charts/Example1.java | 2 +- .../xeiam/xchart/demo/charts/Example2.java | 2 +- .../xeiam/xchart/demo/charts/Example8.java | 2 +- .../xeiam/xchart/demo/charts/Example9.java | 2 +- .../src/main/java/com/xeiam/xchart/Chart.java | 20 ------------------- .../xchart/internal/chartpart/ChartTitle.java | 15 ++++++-------- .../xchart/internal/interfaces/IHideable.java | 1 + .../com/xeiam/xchart/style/StyleManager.java | 18 +++++++++++++++++ .../com/xeiam/xchart/style/theme/Theme.java | 6 ++++++ .../xeiam/xchart/style/theme/XChartTheme.java | 6 ++++++ 10 files changed, 41 insertions(+), 33 deletions(-) diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example1.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example1.java index a42d16ac..40588fc6 100644 --- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example1.java +++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example1.java @@ -75,7 +75,7 @@ public class Example1 implements ExampleChart { // Customize Chart chart.setTitle("Example1"); - chart.setTitleVisible(false); + chart.getStyleManager().setChartTitleVisible(false); chart.setLegendVisible(false); // Series 1 diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example2.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example2.java index cf6d62a6..9da85d2c 100644 --- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example2.java +++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example2.java @@ -56,7 +56,7 @@ public class Example2 implements ExampleChart { Chart chart = new Chart(800, 600); // Customize Chart - chart.setTitleVisible(false); + chart.getStyleManager().setChartTitleVisible(false); chart.setLegendVisible(false); // Series 1 diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example8.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example8.java index 59a6550c..b6d9036a 100644 --- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example8.java +++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example8.java @@ -57,7 +57,7 @@ public class Example8 implements ExampleChart { Chart chart = new Chart(800, 600); // Customize Chart - chart.setTitleVisible(false); + chart.getStyleManager().setChartTitleVisible(false); chart.setLegendVisible(false); chart.setAxisTitlesVisible(false); diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example9.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example9.java index 41be965a..f53a8e14 100644 --- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example9.java +++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example9.java @@ -80,7 +80,7 @@ public class Example9 implements ExampleChart { chart.setLegendBackgroundColor(Color.PINK); chart.getStyleManager().setChartBordersColor(Color.GREEN); chart.getStyleManager().setChartFontColor(Color.MAGENTA); - chart.setTitleFont(new Font(Font.MONOSPACED, Font.BOLD, 24)); + chart.getStyleManager().setTitleFont(new Font(Font.MONOSPACED, Font.BOLD, 24)); chart.setLegendFont(new Font(Font.SERIF, Font.PLAIN, 18)); chart.setAxisTitleFont(new Font(Font.SANS_SERIF, Font.ITALIC, 18)); chart.setTickLabelFont(new Font(Font.SANS_SERIF, Font.ITALIC, 18)); diff --git a/xchart/src/main/java/com/xeiam/xchart/Chart.java b/xchart/src/main/java/com/xeiam/xchart/Chart.java index 61509807..332a5e14 100644 --- a/xchart/src/main/java/com/xeiam/xchart/Chart.java +++ b/xchart/src/main/java/com/xeiam/xchart/Chart.java @@ -249,16 +249,6 @@ public class Chart { // ChartPart visibility //////////////////////////////// - /** - * Set the chart title visibility - * - * @param isVisible - */ - public void setTitleVisible(boolean isVisible) { - - this.chartTitle.setVisible(isVisible); - } - /** * Set the x- and y-axis titles visibility * @@ -371,16 +361,6 @@ public class Chart { this.chartLegend.backgroundColor = color; } - /** - * Set the chart title font - * - * @param font - */ - public void setTitleFont(Font font) { - - styleManager.setTitleFont(font); - } - /** * Set the chart legend font * 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 ddf9ec70..649768c7 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 @@ -35,9 +35,6 @@ public class ChartTitle implements IChartPart, IHideable { /** the title text */ protected String text = ""; // default to "" - /** the visibility state of title */ - protected boolean isVisible = false; // default to false - /** the bounds */ private Rectangle bounds; @@ -54,9 +51,9 @@ public class ChartTitle implements IChartPart, IHideable { public void setText(String text) { if (text.trim().equalsIgnoreCase("")) { - this.isVisible = false; + chart.getStyleManager().setChartTitleVisible(false); } else { - this.isVisible = true; + chart.getStyleManager().setChartTitleVisible(true); } this.text = text; } @@ -64,7 +61,6 @@ public class ChartTitle implements IChartPart, IHideable { @Override public void setVisible(boolean isVisible) { - this.isVisible = isVisible; } @Override @@ -73,15 +69,16 @@ public class ChartTitle implements IChartPart, IHideable { bounds = new Rectangle(); g.setFont(chart.getStyleManager().getChartTitleFont()); - if (isVisible) { + if (chart.getStyleManager().isChartTitleVisible()) { FontRenderContext frc = g.getFontRenderContext(); TextLayout textLayout = new TextLayout(text, chart.getStyleManager().getChartTitleFont(), frc); Rectangle rectangle = textLayout.getPixelBounds(null, 0, 0); int xOffset = (int) ((chart.width - rectangle.getWidth()) / 2.0); - int yOffset = (int) ((isVisible ? (Chart.CHART_PADDING - rectangle.getY()) : 0)); + int yOffset = (int) ((chart.getStyleManager().isChartTitleVisible() ? (Chart.CHART_PADDING - rectangle.getY()) : 0)); - bounds = new Rectangle(xOffset, yOffset + (isVisible ? (int) rectangle.getY() : 0), (int) rectangle.getWidth(), (int) (isVisible ? rectangle.getHeight() : 0)); + bounds = new Rectangle(xOffset, yOffset + (chart.getStyleManager().isChartTitleVisible() ? (int) rectangle.getY() : 0), (int) rectangle.getWidth(), (int) (chart.getStyleManager() + .isChartTitleVisible() ? rectangle.getHeight() : 0)); // g.setColor(Color.green); // g.draw(bounds); 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 index b546fc47..9c4fb791 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/interfaces/IHideable.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/interfaces/IHideable.java @@ -11,6 +11,7 @@ package com.xeiam.xchart.internal.interfaces; * * @author timmolter */ +// TODO get rid of this after theme refactor is done public interface IHideable extends IChartPart { public void setVisible(boolean isVisible); 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 2374e400..b08bc3ea 100644 --- a/xchart/src/main/java/com/xeiam/xchart/style/StyleManager.java +++ b/xchart/src/main/java/com/xeiam/xchart/style/StyleManager.java @@ -41,6 +41,8 @@ public class StyleManager { private Font chartTitleFont; + private boolean isChartTitleVisible; + /** * Constructor */ @@ -55,6 +57,7 @@ public class StyleManager { chartBordersColor = theme.getChartBordersColor(); chartFontColor = theme.getChartFontColor(); chartTitleFont = theme.getChartTitleFont(); + isChartTitleVisible = theme.isChartTitleVisible(); } /** @@ -132,6 +135,21 @@ public class StyleManager { return chartTitleFont; } + /** + * Set the chart title visibility + * + * @param isVisible + */ + public void setChartTitleVisible(boolean isChartTitleVisible) { + + this.isChartTitleVisible = isChartTitleVisible; + } + + public boolean isChartTitleVisible() { + + return isChartTitleVisible; + } + // Chart Legend /////////////////////////////// // Chart Title /////////////////////////////// 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 7170e105..f3388869 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 @@ -29,12 +29,18 @@ import java.awt.Font; */ public interface Theme { + // Chart Style /////////////////////////////// + public Color getChartBackgroundColor(); public Color getChartBordersColor(); public Color getChartFontColor(); + // Chart Title /////////////////////////////// + public Font getChartTitleFont(); + public boolean isChartTitleVisible(); + } 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 e266bb50..f541f4f7 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 @@ -55,4 +55,10 @@ public class XChartTheme implements Theme { return new Font(Font.SANS_SERIF, Font.BOLD, 14); } + @Override + public boolean isChartTitleVisible() { + + return false; + } + } -- GitLab