diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/area/AreaChart01.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/area/AreaChart01.java index 5b6a061a0f06a7cca9f06fbbb1eeb110f5ba3738..2f02aaa04c0fc65691b193cbb5fed9f407a3043e 100644 --- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/area/AreaChart01.java +++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/area/AreaChart01.java @@ -51,6 +51,7 @@ public class AreaChart01 implements ExampleChart { // Customize Chart chart.getStyleManager().setLegendPosition(LegendPosition.InsideNW); + chart.getStyleManager().setAxisTitlesVisible(false); return chart; } diff --git a/xchart/src/main/java/com/xeiam/xchart/StyleManager.java b/xchart/src/main/java/com/xeiam/xchart/StyleManager.java index 8ecc754b02a6a792239f97244df2297a8c670c85..03f6c8d33a886b346c1b7fc27687b255a718b86e 100644 --- a/xchart/src/main/java/com/xeiam/xchart/StyleManager.java +++ b/xchart/src/main/java/com/xeiam/xchart/StyleManager.java @@ -45,7 +45,7 @@ public class StyleManager { public enum LegendPosition { - OutsideW, InsideNW, InsideNE, InsideSE, InsideSW + OutsideE, InsideNW, InsideNE, InsideSE, InsideSW } public enum ChartTheme { @@ -567,7 +567,6 @@ public class StyleManager { this.xAxisTicksVisible = isVisible; this.yAxisTicksVisible = isVisible; - } /** 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 cc033ca1a6d3103f0f66b725ae0e9749329ff283..d6b8dcfa1be376f09e9231033d3c3dfc2d019ae9 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 @@ -80,8 +80,8 @@ public class Axis implements ChartPart { this.axisPair = axisPair; this.direction = direction; - axisTitle = new AxisTitle(this, direction == Direction.X ? getChartPainter().getStyleManager().isXAxisTitleVisible() : getChartPainter().getStyleManager().isYAxisTitleVisible()); - axisTick = new AxisTick(this, direction == Direction.X ? getChartPainter().getStyleManager().isXAxisTicksVisible() : getChartPainter().getStyleManager().isYAxisTicksVisible()); + axisTitle = new AxisTitle(this); + axisTick = new AxisTick(this); } /** @@ -193,12 +193,13 @@ public class Axis implements ChartPart { int yOffset = (int) (axisPair.getyAxis().getBounds().getY() + axisPair.getyAxis().getBounds().getHeight()); int chartLegendWidth = 0; - if (getChartPainter().getStyleManager().getLegendPosition() == LegendPosition.OutsideW) { + if (getChartPainter().getStyleManager().getLegendPosition() == LegendPosition.OutsideE) { chartLegendWidth = getChartPainter().getChartLegend().getSizeHint()[0]; } - int width = (int) (getChartPainter().getWidth() - axisPair.getyAxis().getBounds().getWidth() - chartLegendWidth - (getChartPainter().getStyleManager().isLegendVisible() ? 3 : 2) - * getChartPainter().getStyleManager().getChartPadding() - getChartPainter().getStyleManager().getPlotPadding()); + int width = (int) (getChartPainter().getWidth() - axisPair.getyAxis().getBounds().getWidth() - chartLegendWidth - 2 * getChartPainter().getStyleManager().getChartPadding() + - getChartPainter().getStyleManager().getPlotPadding() - (getChartPainter().getStyleManager().getLegendPosition() == LegendPosition.OutsideE ? getChartPainter().getStyleManager() + .getChartPadding() : 0)); 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/AxisPair.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisPair.java index b7fa1d222062e9bbe39dbb4bdbfacb93ff6d6865..100a15207668e7830977b489e6f1caf21f6723d3 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisPair.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisPair.java @@ -38,7 +38,7 @@ public class AxisPair implements ChartPart { private Map<Integer, Series> seriesMap = new LinkedHashMap<Integer, Series>(); - private int seriesCount; + private int seriesCount = 0; private Axis xAxis; private Axis yAxis; 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 2fd2bf844881200846e2e54dc2ecaea55357cdac..9cb22fdc19dff4cc861a4a3d667405112206cf24 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 @@ -37,10 +37,7 @@ public class AxisTick implements ChartPart { private AxisTickMarks axisTickMarks; /** the bounds */ - private Rectangle bounds; - - /** the visibility state of axistick */ - private boolean isVisible = true; // default to true + private Rectangle bounds = new Rectangle();; AxisTickCalculator gridStep = null; @@ -48,12 +45,10 @@ public class AxisTick implements ChartPart { * Constructor * * @param axis - * @param isVisible */ - protected AxisTick(Axis axis, boolean isVisible) { + protected AxisTick(Axis axis) { this.axis = axis; - this.isVisible = isVisible; axisTickLabels = new AxisTickLabels(this); axisTickMarks = new AxisTickMarks(this); } @@ -67,13 +62,11 @@ public class AxisTick implements ChartPart { @Override public void paint(Graphics2D g) { - bounds = new Rectangle(); - int workingSpace = 0; if (axis.getDirection() == Axis.Direction.Y) { workingSpace = (int) axis.getPaintZone().getHeight(); // number of pixels the axis has to work with for drawing AxisTicks // System.out.println("workingspace= " + workingSpace); - } else { + } else if (axis.getDirection() == Axis.Direction.X) { workingSpace = (int) axis.getPaintZone().getWidth(); // number of pixels the axis has to work with for drawing AxisTicks // System.out.println("workingspace= " + workingSpace); } @@ -100,23 +93,37 @@ public class AxisTick implements ChartPart { } - if (isVisible) { + if (axis.getDirection() == Axis.Direction.Y && getChartPainter().getStyleManager().isYAxisTicksVisible()) { + + axisTickLabels.paint(g); + axisTickMarks.paint(g); + + bounds = new Rectangle( + + (int) axisTickLabels.getBounds().getX(), + + (int) (axisTickLabels.getBounds().getY()), + + (int) (axisTickLabels.getBounds().getWidth() + getChartPainter().getStyleManager().getAxisTickPadding() + axisTickMarks.getBounds().getWidth()), + + (int) (axisTickMarks.getBounds().getHeight()) + + ); + + // g.setColor(Color.red); + // g.draw(bounds); + + } else if (axis.getDirection() == Axis.Direction.X && getChartPainter().getStyleManager().isXAxisTicksVisible()) { axisTickLabels.paint(g); axisTickMarks.paint(g); - if (axis.getDirection() == Axis.Direction.Y) { - bounds = new Rectangle((int) axisTickLabels.getBounds().getX(), (int) (axisTickLabels.getBounds().getY()), (int) (axisTickLabels.getBounds().getWidth() - + getChartPainter().getStyleManager().getAxisTickPadding() + axisTickMarks.getBounds().getWidth()), (int) (axisTickMarks.getBounds().getHeight())); - // g.setColor(Color.red); - // g.draw(bounds); - } else { - bounds = new Rectangle((int) axisTickMarks.getBounds().getX(), (int) (axisTickMarks.getBounds().getY()), (int) axisTickLabels.getBounds().getWidth(), (int) (axisTickMarks.getBounds() - .getHeight() - + getChartPainter().getStyleManager().getAxisTickPadding() + axisTickLabels.getBounds().getHeight())); - // g.setColor(Color.red); - // g.draw(bounds); - } + bounds = new Rectangle((int) axisTickMarks.getBounds().getX(), (int) (axisTickMarks.getBounds().getY()), (int) axisTickLabels.getBounds().getWidth(), (int) (axisTickMarks.getBounds() + .getHeight() + + getChartPainter().getStyleManager().getAxisTickPadding() + axisTickLabels.getBounds().getHeight())); + // g.setColor(Color.red); + // g.draw(bounds); + } } diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickLabels.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickLabels.java index 90f642c34b70c70131af856afc7d65ea044d2763..5edf008c8987bed54cb0514403c04f3d50e72602 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickLabels.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickLabels.java @@ -29,7 +29,7 @@ public class AxisTickLabels implements ChartPart { private final AxisTick axisTick; /** the bounds */ - private Rectangle bounds; + private Rectangle bounds = new Rectangle(); /** * Constructor @@ -50,12 +50,11 @@ public class AxisTickLabels implements ChartPart { @Override public void paint(Graphics2D g) { - bounds = new Rectangle(); g.setFont(getChartPainter().getStyleManager().getAxisTickLabelsFont()); g.setColor(getChartPainter().getStyleManager().getAxisTickLabelsColor()); - if (axisTick.getAxis().getDirection() == Axis.Direction.Y) { // Y-Axis + if (axisTick.getAxis().getDirection() == Axis.Direction.Y && getChartPainter().getStyleManager().isYAxisTicksVisible()) { // Y-Axis int xOffset = (int) (axisTick.getAxis().getAxisTitle().getBounds().getX() + axisTick.getAxis().getAxisTitle().getBounds().getWidth()); int yOffset = (int) (axisTick.getAxis().getPaintZone().getY()); @@ -84,7 +83,7 @@ public class AxisTickLabels implements ChartPart { // g.setColor(Color.blue); // g.draw(bounds); - } else { // X-Axis + } else if (axisTick.getAxis().getDirection() == Axis.Direction.X && getChartPainter().getStyleManager().isXAxisTicksVisible()) { // X-Axis int xOffset = (int) (axisTick.getAxis().getPaintZone().getX()); int yOffset = (int) (axisTick.getAxis().getAxisTitle().getBounds().getY()); diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickMarks.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickMarks.java index 5e1c668fdf8404b8e1d4043efe84bd05a3023660..9741344ebcbbbd9f62704915b39f57acb76c5240 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickMarks.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickMarks.java @@ -27,7 +27,7 @@ public class AxisTickMarks implements ChartPart { private AxisTick axisTick; /** the bounds */ - private Rectangle bounds; + private Rectangle bounds = new Rectangle(); /** * Constructor @@ -48,12 +48,10 @@ public class AxisTickMarks implements ChartPart { @Override public void paint(Graphics2D g) { - bounds = new Rectangle(); - g.setColor(getChartPainter().getStyleManager().getAxisTickMarksColor()); g.setStroke(getChartPainter().getStyleManager().getAxisTickMarksStroke()); - if (axisTick.getAxis().getDirection() == Axis.Direction.Y) { // Y-Axis + if (axisTick.getAxis().getDirection() == Axis.Direction.Y && getChartPainter().getStyleManager().isYAxisTicksVisible()) { // Y-Axis int xOffset = (int) (axisTick.getAxisTickLabels().getBounds().getX() + axisTick.getAxisTickLabels().getBounds().getWidth() + getChartPainter().getStyleManager().getAxisTickPadding()); int yOffset = (int) (axisTick.getAxis().getPaintZone().getY()); @@ -82,7 +80,7 @@ public class AxisTickMarks implements ChartPart { // g.setColor(Color.yellow); // g.draw(bounds); - } else { // X-Axis + } else if (axisTick.getAxis().getDirection() == Axis.Direction.X && getChartPainter().getStyleManager().isXAxisTicksVisible()) { // X-Axis int xOffset = (int) (axisTick.getAxis().getPaintZone().getX()); // int yOffset = (int) (axisTick.getAxisTickLabels().getBounds().getY() - getChart().getStyleManager().getAxisTickPadding()); 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 baa42fea655fc78888cd1ababbe6ca55a77e02f8..a9e393c4a28138f1bdcc0fd0f6801b333122cc24 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 @@ -40,7 +40,7 @@ public class AxisTitle implements ChartPart { * * @param axis the axis */ - protected AxisTitle(Axis axis, boolean isVisible) { + protected AxisTitle(Axis axis) { this.axis = axis; } 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 71a8517e926cae9773157b52a246f7de1219bae1..fffe7f621cedc2466c022f1a3f966d45a2af427c 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 @@ -121,7 +121,7 @@ public class Legend implements ChartPart { int xOffset = 0; int yOffset = 0; switch (chartPainter.getStyleManager().getLegendPosition()) { - case OutsideW: + case OutsideE: xOffset = chartPainter.getWidth() - legendBoxWidth - chartPainter.getStyleManager().getChartPadding(); yOffset = (int) (chartPainter.getPlot().getBounds().getY() + (chartPainter.getPlot().getBounds().getHeight() - legendBoxHeight) / 2.0); break; diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/Plot.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/Plot.java index da909005f9292a134ad8efcfa971cd0ef6e03cf8..b2d81a31283b0e9b38015ab51b004d0de21adc1d 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/Plot.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/Plot.java @@ -59,8 +59,12 @@ public class Plot implements ChartPart { bounds = new Rectangle(); // calculate bounds - int xOffset = (int) (chartPainter.getAxisPair().getyAxis().getBounds().getX() + chartPainter.getAxisPair().getyAxis().getBounds().getWidth() + (chartPainter.getStyleManager() - .isYAxisTicksVisible() ? (chartPainter.getStyleManager().getPlotPadding() + 1) : 0)); + int xOffset = (int) (chartPainter.getAxisPair().getyAxis().getBounds().getX() + + + chartPainter.getAxisPair().getyAxis().getBounds().getWidth() + + + (chartPainter.getStyleManager().isYAxisTicksVisible() ? (chartPainter.getStyleManager().getPlotPadding() + 1) : 0)); + int yOffset = (int) (chartPainter.getAxisPair().getyAxis().getBounds().getY()); int width = (int) chartPainter.getAxisPair().getxAxis().getBounds().getWidth(); int height = (int) chartPainter.getAxisPair().getyAxis().getBounds().getHeight(); diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/style/GGPlot2Theme.java b/xchart/src/main/java/com/xeiam/xchart/internal/style/GGPlot2Theme.java index 207d55be598fb1db51875a8be76ea6f55b74807e..a817902a9eb8aaf1df1c2b32e44143d37b6344db 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/style/GGPlot2Theme.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/style/GGPlot2Theme.java @@ -127,7 +127,7 @@ public class GGPlot2Theme implements Theme { @Override public LegendPosition getLegendPosition() { - return LegendPosition.OutsideW; + return LegendPosition.OutsideE; } // Chart Axes /////////////////////////////// diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/style/XChartTheme.java b/xchart/src/main/java/com/xeiam/xchart/internal/style/XChartTheme.java index 5d9b542b073313a464759abf599004f88c10393c..c727d38fa38e1619b398991a40e93576c55aeafb 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/style/XChartTheme.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/style/XChartTheme.java @@ -128,7 +128,7 @@ public class XChartTheme implements Theme { @Override public LegendPosition getLegendPosition() { - return LegendPosition.OutsideW; + return LegendPosition.OutsideE; } // Chart Axes ///////////////////////////////