diff --git a/xchart/src/main/java/com/xeiam/xchart/Chart.java b/xchart/src/main/java/com/xeiam/xchart/Chart.java index f335b748e2c89025ca30f77faa1750939aec4d1c..8af49757221a7f5ad4f57cffde9d88d5d5af5734 100644 --- a/xchart/src/main/java/com/xeiam/xchart/Chart.java +++ b/xchart/src/main/java/com/xeiam/xchart/Chart.java @@ -45,8 +45,6 @@ public class Chart { private StyleManager styleManager = new StyleManager(); - public final static int CHART_PADDING = 10; - // Chart Parts public ChartTitle chartTitle = new ChartTitle(this); public ChartLegend chartLegend = new ChartLegend(this); diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/Axis.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/Axis.java index b37075379d27ca63a1c7ec8cac54dcaa7f4b87fb..5ba2161176476c5cd5e2a7951e1584febf10607c 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/Axis.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/Axis.java @@ -21,7 +21,6 @@ import java.awt.font.FontRenderContext; import java.awt.font.TextLayout; import java.math.BigDecimal; -import com.xeiam.xchart.Chart; import com.xeiam.xchart.internal.interfaces.IChartPart; /** @@ -178,10 +177,10 @@ public class Axis implements IChartPart { // | // | // ---- - int xOffset = Chart.CHART_PADDING; - int yOffset = (int) (axisPair.getChartTitleBounds().getY() + axisPair.getChartTitleBounds().getHeight() + Chart.CHART_PADDING); + int xOffset = axisPair.chart.getStyleManager().getChartPadding(); + int yOffset = (int) (axisPair.getChartTitleBounds().getY() + axisPair.getChartTitleBounds().getHeight() + axisPair.chart.getStyleManager().getChartPadding()); int width = 80; // arbitrary, final width depends on Axis tick labels - int height = axisPair.chart.height - yOffset - axisPair.xAxis.getSizeHint() - Chart.CHART_PADDING; + int height = axisPair.chart.height - yOffset - axisPair.xAxis.getSizeHint() - axisPair.chart.getStyleManager().getChartPadding(); Rectangle yAxisRectangle = new Rectangle(xOffset, yOffset, width, height); this.paintZone = yAxisRectangle; // g.setColor(Color.green); @@ -204,10 +203,10 @@ public class Axis implements IChartPart { // calculate paint zone // |____________________| - int xOffset = (int) (axisPair.yAxis.getBounds().getWidth() + (axisPair.yAxis.axisTick.isVisible ? Plot.PLOT_PADDING : 0) + Chart.CHART_PADDING); + int xOffset = (int) (axisPair.yAxis.getBounds().getWidth() + (axisPair.yAxis.axisTick.isVisible ? Plot.PLOT_PADDING : 0) + axisPair.chart.getStyleManager().getChartPadding()); int yOffset = (int) (axisPair.yAxis.getBounds().getY() + axisPair.yAxis.getBounds().getHeight()); int width = (int) (axisPair.chart.width - axisPair.yAxis.getBounds().getWidth() - axisPair.getChartLegendBounds().getWidth() - (axisPair.chart.getStyleManager().isChartLegendVisisble() ? 3 : 2) - * Chart.CHART_PADDING); + * axisPair.chart.getStyleManager().getChartPadding()); int height = this.getSizeHint(); Rectangle xAxisRectangle = new Rectangle(xOffset, yOffset, width, height); this.paintZone = xAxisRectangle; diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/ChartLegend.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/ChartLegend.java index 092ad9aacddbeed5af23c55d57dc8be70ceadeeb..bf9aadb859d8399b0b77109473d541680c64209a 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/ChartLegend.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/ChartLegend.java @@ -91,7 +91,7 @@ public class ChartLegend implements IChartPart, IHideable { // Draw Legend Box int legendBoxWidth = legendContentWidth + 2 * chart.getStyleManager().getChartLegendPadding(); int legendBoxHeight = legendContentHeight + 2 * chart.getStyleManager().getChartLegendPadding(); - int xOffset = chart.width - legendBoxWidth - Chart.CHART_PADDING; + int xOffset = chart.width - legendBoxWidth - chart.getStyleManager().getChartPadding(); int yOffset = (int) ((chart.height - legendBoxHeight) / 2.0 + chart.chartTitle.getBounds().getY() + chart.chartTitle.getBounds().getHeight()); g.setColor(chart.getStyleManager().getChartBordersColor()); 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 649768c712a904935fafe82fea6d4855447792ca..01284ef437b6f1f1eabe85fd9b7ce559855921b8 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 @@ -75,7 +75,7 @@ public class ChartTitle implements IChartPart, IHideable { 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) ((chart.getStyleManager().isChartTitleVisible() ? (Chart.CHART_PADDING - rectangle.getY()) : 0)); + int yOffset = (int) ((chart.getStyleManager().isChartTitleVisible() ? (chart.getStyleManager().getChartPadding() - rectangle.getY()) : 0)); bounds = new Rectangle(xOffset, yOffset + (chart.getStyleManager().isChartTitleVisible() ? (int) rectangle.getY() : 0), (int) rectangle.getWidth(), (int) (chart.getStyleManager() .isChartTitleVisible() ? rectangle.getHeight() : 0)); 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 58b00ae581606aef3000b8d332327d0dfdd89cff..bba446df68fadc229d39b8e300086be9c9731a2d 100644 --- a/xchart/src/main/java/com/xeiam/xchart/style/StyleManager.java +++ b/xchart/src/main/java/com/xeiam/xchart/style/StyleManager.java @@ -38,6 +38,7 @@ public class StyleManager { private Color chartBackgroundColor; public Color chartBordersColor; public Color chartFontColor; + private int chartPadding; private Font chartTitleFont; private boolean isChartTitleVisible; @@ -61,6 +62,7 @@ public class StyleManager { chartBackgroundColor = theme.getChartBackgroundColor(); chartBordersColor = theme.getChartBordersColor(); chartFontColor = theme.getChartFontColor(); + chartPadding = theme.getChartPadding(); // chart title chartTitleFont = theme.getChartTitleFont(); isChartTitleVisible = theme.isChartTitleVisible(); @@ -129,6 +131,21 @@ public class StyleManager { return chartFontColor; } + /** + * Set the chart padding + * + * @param chartPadding + */ + public void setChartPadding(int chartPadding) { + + this.chartPadding = chartPadding; + } + + public int getChartPadding() { + + return chartPadding; + } + // 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 1498d3b95a028b2fcc4663805e04cad1e6dc1551..df2378374dc071bf4d43bed43a0f873333520ee2 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 @@ -37,6 +37,8 @@ public interface Theme { public Color getChartFontColor(); + public int getChartPadding(); + // Chart Title /////////////////////////////// public Font getChartTitleFont(); 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 c3b091848cbfd663a347d2713eb6c5648b100db1..c8438b420ea683415b2ec76386b7697f3f06be26 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 @@ -51,6 +51,12 @@ public class XChartTheme implements Theme { return ChartColor.getAWTColor(ChartColor.BLACK); } + @Override + public int getChartPadding() { + + return 10; + } + // Chart Title /////////////////////////////// @Override