From c5ff7a3d468f5fe8e36d41c3e8e06616911fe79d Mon Sep 17 00:00:00 2001 From: timmolter <tim.molter@gmail.com> Date: Tue, 11 Sep 2012 23:30:09 +0200 Subject: [PATCH] font of everything can be set now --- src/main/java/com/xeiam/xchart/Axis.java | 13 +++----- src/main/java/com/xeiam/xchart/AxisTick.java | 2 +- .../java/com/xeiam/xchart/AxisTickLabels.java | 8 ++--- src/main/java/com/xeiam/xchart/AxisTitle.java | 9 +++--- src/main/java/com/xeiam/xchart/Chart.java | 31 ++++++++++++++++--- .../java/com/xeiam/xchart/ChartLegend.java | 3 +- .../java/com/xeiam/xchart/ChartTitle.java | 7 +++-- src/main/java/com/xeiam/xchart/Plot.java | 2 +- .../java/com/xeiam/xchart/PlotSurface.java | 4 +-- .../com/xeiam/xchart/example/Example9.java | 6 ++++ 10 files changed, 54 insertions(+), 31 deletions(-) diff --git a/src/main/java/com/xeiam/xchart/Axis.java b/src/main/java/com/xeiam/xchart/Axis.java index 765091ed..92fa4e0f 100644 --- a/src/main/java/com/xeiam/xchart/Axis.java +++ b/src/main/java/com/xeiam/xchart/Axis.java @@ -42,10 +42,10 @@ public class Axis implements IChartPart { private AxisType axisType; /** the axis title */ - private AxisTitle axisTitle; + protected AxisTitle axisTitle; /** the axis tick */ - private AxisTick axisTick; + protected AxisTick axisTick; /** the axis direction */ private Direction direction; @@ -148,11 +148,6 @@ public class Axis implements IChartPart { this.axisTitle = axisTitle; } - public AxisTick getAxisTick() { - - return axisTick; - } - public BigDecimal getMin() { return min; @@ -181,7 +176,7 @@ public class Axis implements IChartPart { // Axis tick labels double axisTickLabelsHeight = 0.0; if (axisTick.isVisible) { - TextLayout textLayout = new TextLayout("0", axisTick.getAxisTickLabels().getFont(), new FontRenderContext(null, true, false)); + TextLayout textLayout = new TextLayout("0", axisTick.getAxisTickLabels().font, new FontRenderContext(null, true, false)); Rectangle rectangle = textLayout.getPixelBounds(null, 0, 0); axisTickLabelsHeight = rectangle.getHeight() + AxisTick.AXIS_TICK_PADDING + AxisTickMarks.TICK_LENGTH + Plot.PLOT_PADDING; } @@ -233,7 +228,7 @@ public class Axis implements IChartPart { // calculate paint zone // |____________________| - int xOffset = (int) (axisPair.getYAxis().getBounds().getWidth() + (axisPair.getYAxis().getAxisTick().isVisible ? Plot.PLOT_PADDING : 0) + Chart.CHART_PADDING); + int xOffset = (int) (axisPair.getYAxis().getBounds().getWidth() + (axisPair.getYAxis().axisTick.isVisible ? Plot.PLOT_PADDING : 0) + Chart.CHART_PADDING); int yOffset = (int) (axisPair.getYAxis().getBounds().getY() + axisPair.getYAxis().getBounds().getHeight()); int width = (int) (axisPair.chart.getWidth() - axisPair.getYAxis().getBounds().getWidth() - axisPair.getChartLegendBounds().getWidth() - (axisPair.chart.getLegend().isVisible ? 3 : 2) * Chart.CHART_PADDING); int height = this.getSizeHint(); diff --git a/src/main/java/com/xeiam/xchart/AxisTick.java b/src/main/java/com/xeiam/xchart/AxisTick.java index 9e59d887..314e7f85 100644 --- a/src/main/java/com/xeiam/xchart/AxisTick.java +++ b/src/main/java/com/xeiam/xchart/AxisTick.java @@ -37,7 +37,7 @@ public class AxisTick implements IChartPart, IHideable { protected Axis axis; /** the axisticklabels */ - private AxisTickLabels axisTickLabels; + protected AxisTickLabels axisTickLabels; /** the axistickmarks */ private AxisTickMarks axisTickMarks; diff --git a/src/main/java/com/xeiam/xchart/AxisTickLabels.java b/src/main/java/com/xeiam/xchart/AxisTickLabels.java index 3940025d..035bb3bb 100644 --- a/src/main/java/com/xeiam/xchart/AxisTickLabels.java +++ b/src/main/java/com/xeiam/xchart/AxisTickLabels.java @@ -31,7 +31,7 @@ public class AxisTickLabels implements IChartPart { private AxisTick axisTick; /** the font */ - private Font font = new Font(Font.SANS_SERIF, Font.BOLD, 12); // default font + protected Font font; /** the bounds */ private Rectangle bounds; @@ -44,11 +44,7 @@ public class AxisTickLabels implements IChartPart { protected AxisTickLabels(AxisTick axisTick) { this.axisTick = axisTick; - } - - public Font getFont() { - - return font; + font = new Font(Font.SANS_SERIF, Font.BOLD, 12); // default font } @Override diff --git a/src/main/java/com/xeiam/xchart/AxisTitle.java b/src/main/java/com/xeiam/xchart/AxisTitle.java index dd96d2d4..147ee013 100644 --- a/src/main/java/com/xeiam/xchart/AxisTitle.java +++ b/src/main/java/com/xeiam/xchart/AxisTitle.java @@ -29,6 +29,8 @@ import com.xeiam.xchart.interfaces.IHideable; */ public class AxisTitle implements IHideable { + protected final static int AXIS_TITLE_PADDING = 10; + /** the chart */ private Axis axis; @@ -36,16 +38,14 @@ public class AxisTitle implements IHideable { protected String text = ""; // default to "" /** the visibility state of title */ - protected boolean isVisible = false; // default to false + protected boolean isVisible = false; // default to false, set true if text is set /** the font */ - private Font font = new Font(Font.SANS_SERIF, Font.BOLD, 12); // default font + protected Font font; /** the bounds */ private Rectangle bounds; - protected final static int AXIS_TITLE_PADDING = 10; - /** * Constructor. * @@ -54,6 +54,7 @@ public class AxisTitle implements IHideable { public AxisTitle(Axis axis) { this.axis = axis; + font = new Font(Font.SANS_SERIF, Font.BOLD, 12); // default font } protected String getText() { diff --git a/src/main/java/com/xeiam/xchart/Chart.java b/src/main/java/com/xeiam/xchart/Chart.java index 1610097c..766e0ced 100644 --- a/src/main/java/com/xeiam/xchart/Chart.java +++ b/src/main/java/com/xeiam/xchart/Chart.java @@ -16,6 +16,7 @@ package com.xeiam.xchart; import java.awt.Color; +import java.awt.Font; import java.awt.Graphics2D; import java.awt.RenderingHints; import java.util.ArrayList; @@ -257,18 +258,18 @@ public class Chart { public void setAxisTicksVisible(boolean isVisible) { - this.axisPair.getXAxis().getAxisTick().setVisible(isVisible); - this.axisPair.getYAxis().getAxisTick().setVisible(isVisible); + this.axisPair.getXAxis().axisTick.setVisible(isVisible); + this.axisPair.getYAxis().axisTick.setVisible(isVisible); } public void setXAxisTicksVisible(boolean isVisible) { - this.axisPair.getXAxis().getAxisTick().setVisible(isVisible); + this.axisPair.getXAxis().axisTick.setVisible(isVisible); } public void setYAxisTicksVisible(boolean isVisible) { - this.axisPair.getYAxis().getAxisTick().setVisible(isVisible); + this.axisPair.getYAxis().axisTick.setVisible(isVisible); } public void setChartGridlinesVisible(boolean isVisible) { @@ -305,4 +306,26 @@ public class Chart { this.fontColor = color; } + + public void setChartTitleFont(Font font) { + + this.chartTitle.font = font; + } + + public void setChartLegendFont(Font font) { + + this.chartLegend.font = font; + } + + public void setAxisLabelsFont(Font font) { + + this.axisPair.xAxis.axisTitle.font = font; + this.axisPair.yAxis.axisTitle.font = font; + } + + public void setChartTickLabelsFont(Font font) { + + this.axisPair.xAxis.axisTick.axisTickLabels.font = font; + this.axisPair.yAxis.axisTick.axisTickLabels.font = font; + } } diff --git a/src/main/java/com/xeiam/xchart/ChartLegend.java b/src/main/java/com/xeiam/xchart/ChartLegend.java index ce807a74..40d9ea57 100644 --- a/src/main/java/com/xeiam/xchart/ChartLegend.java +++ b/src/main/java/com/xeiam/xchart/ChartLegend.java @@ -41,7 +41,7 @@ public class ChartLegend implements IHideable { protected boolean isVisible = true; // default to true /** the font */ - private Font font = new Font(Font.SANS_SERIF, Font.PLAIN, 11); // default font + protected Font font; /** the background color */ private Color backgroundColor; @@ -56,6 +56,7 @@ public class ChartLegend implements IHideable { this.chart = chart; backgroundColor = ChartColor.getAWTColor(ChartColor.LIGHT_GREY); // default background color + font = new Font(Font.SANS_SERIF, Font.PLAIN, 11); // default font } @Override diff --git a/src/main/java/com/xeiam/xchart/ChartTitle.java b/src/main/java/com/xeiam/xchart/ChartTitle.java index 758509cf..c66841f8 100644 --- a/src/main/java/com/xeiam/xchart/ChartTitle.java +++ b/src/main/java/com/xeiam/xchart/ChartTitle.java @@ -38,7 +38,7 @@ public class ChartTitle implements IHideable { protected boolean isVisible = false; // default to false /** the font */ - private Font font = new Font(Font.SANS_SERIF, Font.BOLD, 14); // default font + protected Font font; /** the bounds */ private Rectangle bounds; @@ -46,9 +46,10 @@ public class ChartTitle implements IHideable { /** * Constructor */ - public ChartTitle(Chart pChart) { + public ChartTitle(Chart chart) { - this.chart = pChart; + this.chart = chart; + font = new Font(Font.SANS_SERIF, Font.BOLD, 14); // default font } public void setText(String text) { diff --git a/src/main/java/com/xeiam/xchart/Plot.java b/src/main/java/com/xeiam/xchart/Plot.java index 3934c4ce..ec43db66 100644 --- a/src/main/java/com/xeiam/xchart/Plot.java +++ b/src/main/java/com/xeiam/xchart/Plot.java @@ -55,7 +55,7 @@ public class Plot implements IChartPart { bounds = new Rectangle(); // calculate bounds - int xOffset = (int) (chart.getAxisPair().getYAxis().getBounds().getX() + chart.getAxisPair().getYAxis().getBounds().getWidth() + (chart.getAxisPair().getYAxis().getAxisTick().isVisible ? (Plot.PLOT_PADDING + 1) : 0)); + int xOffset = (int) (chart.getAxisPair().getYAxis().getBounds().getX() + chart.getAxisPair().getYAxis().getBounds().getWidth() + (chart.getAxisPair().getYAxis().axisTick.isVisible ? (Plot.PLOT_PADDING + 1) : 0)); int yOffset = (int) (chart.getAxisPair().getYAxis().getBounds().getY()); int width = (int) chart.getAxisPair().getXAxis().getBounds().getWidth(); int height = (int) chart.getAxisPair().getYAxis().getBounds().getHeight(); diff --git a/src/main/java/com/xeiam/xchart/PlotSurface.java b/src/main/java/com/xeiam/xchart/PlotSurface.java index c49a8a07..a9d1388f 100644 --- a/src/main/java/com/xeiam/xchart/PlotSurface.java +++ b/src/main/java/com/xeiam/xchart/PlotSurface.java @@ -81,7 +81,7 @@ public class PlotSurface implements IChartPart, IHideable { // paint grid lines if (isVisible) { // horizontal - List<Integer> yAxisTickLocations = chart.getAxisPair().getYAxis().getAxisTick().getTickLocations(); + List<Integer> yAxisTickLocations = chart.getAxisPair().getYAxis().axisTick.getTickLocations(); for (int i = 0; i < yAxisTickLocations.size(); i++) { int tickLocation = yAxisTickLocations.get(i); @@ -93,7 +93,7 @@ public class PlotSurface implements IChartPart, IHideable { } // vertical - List<Integer> xAxisTickLocations = chart.getAxisPair().getXAxis().getAxisTick().getTickLocations(); + List<Integer> xAxisTickLocations = chart.getAxisPair().getXAxis().axisTick.getTickLocations(); for (int i = 0; i < xAxisTickLocations.size(); i++) { int tickLocation = xAxisTickLocations.get(i); diff --git a/src/test/java/com/xeiam/xchart/example/Example9.java b/src/test/java/com/xeiam/xchart/example/Example9.java index 84e99152..92a3b99c 100644 --- a/src/test/java/com/xeiam/xchart/example/Example9.java +++ b/src/test/java/com/xeiam/xchart/example/Example9.java @@ -16,6 +16,7 @@ package com.xeiam.xchart.example; import java.awt.Color; +import java.awt.Font; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; @@ -65,6 +66,11 @@ public class Example9 { chart.setChartLegendBackgroundColor(Color.PINK); chart.setChartBordersColor(Color.GREEN); chart.setChartFontColor(Color.MAGENTA); + chart.setChartTitleFont(new Font(Font.MONOSPACED, Font.BOLD, 24)); + chart.setChartLegendFont(new Font(Font.SERIF, Font.PLAIN, 18)); + chart.setAxisLabelsFont(new Font(Font.SANS_SERIF, Font.ITALIC, 18)); + chart.setChartTickLabelsFont(new Font(Font.SANS_SERIF, Font.ITALIC, 18)); + chart.setChartTickLabelsFont(new Font(Font.SERIF, Font.PLAIN, 11)); Series series = chart.addDateSeries("Fake Data", xData, yData); series.setLineColor(SeriesColor.BLUE); -- GitLab