diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/bar/BarChart02.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/bar/BarChart02.java index 361b6428b4b205dee67e24f939305627db97b1b3..aa3d5c3bdb9d65d4b57816aad7a7e86957ac0496 100644 --- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/bar/BarChart02.java +++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/bar/BarChart02.java @@ -78,6 +78,7 @@ public class BarChart02 implements ExampleChart { series.setLineColor(SeriesColor.RED); chart.getStyleManager().setPlotGridLinesVisible(false); chart.getStyleManager().setBarFilled(false); + chart.getStyleManager().setDatePattern("YYYY"); return chart; } diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickBarChartCalculator.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickBarChartCalculator.java index 0c71b058775352225a3238e23e4aec412b648265..fcad0c312c87e736055105de4c4d2476c386abee 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickBarChartCalculator.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickBarChartCalculator.java @@ -16,6 +16,8 @@ package com.xeiam.xchart.internal.chartpart; import java.math.BigDecimal; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; import com.xeiam.xchart.Series; @@ -70,7 +72,18 @@ public class AxisTickBarChartCalculator extends AxisTickCalculator { double firstPosition = gridStep / 2.0; // set up String formatters that may be encountered - NumberFormatter numberFormatter = new NumberFormatter(styleManager); + NumberFormatter numberFormatter = null; + SimpleDateFormat simpleDateformat = null; + if (chartPainter.getAxisPair().getXAxis().getAxisType() == AxisType.Number) { + numberFormatter = new NumberFormatter(styleManager); + } + else if (chartPainter.getAxisPair().getXAxis().getAxisType() == AxisType.Date) { + if (styleManager.getDatePattern() == null) { + throw new RuntimeException("You need to set the Date Formatting Pattern!!!"); + } + simpleDateformat = new SimpleDateFormat(styleManager.getDatePattern(), styleManager.getLocale()); + simpleDateformat.setTimeZone(styleManager.getTimezone()); + } int counter = 0; @@ -80,9 +93,13 @@ public class AxisTickBarChartCalculator extends AxisTickCalculator { double tickLabelPosition = margin + firstPosition + gridStep * counter++; tickLocations.add(tickLabelPosition); } - else { + else if (chartPainter.getAxisPair().getXAxis().getAxisType() == AxisType.Number) { tickLabels.add(numberFormatter.formatNumber(new BigDecimal(category.toString()), minValue, maxValue, axisDirection)); } + else if (chartPainter.getAxisPair().getXAxis().getAxisType() == AxisType.Date) { + + tickLabels.add(simpleDateformat.format((((Date) category).getTime()))); + } double tickLabelPosition = (int) (margin + firstPosition + gridStep * counter++); tickLocations.add(tickLabelPosition); } diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickDateCalculator.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickDateCalculator.java index 8ef429ab2318db3167e0dd284c66e10d2e7f0ce0..5b77b80aacc7ceede1ad93ad8ca2032acc792d82 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickDateCalculator.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickDateCalculator.java @@ -192,7 +192,7 @@ public class AxisTickDateCalculator extends AxisTickCalculator { SimpleDateFormat simpleDateformat = new SimpleDateFormat(datePattern, styleManager.getLocale()); simpleDateformat.setTimeZone(styleManager.getTimezone()); - simpleDateformat.applyPattern(datePattern); + // simpleDateformat.applyPattern(datePattern); // return simpleDateformat.format(value);