From 81d6aacecd3f62bf58d9a9656e2a51d6c7daff4e Mon Sep 17 00:00:00 2001 From: timmolter <tim.molter@gmail.com> Date: Wed, 12 Sep 2012 09:24:34 +0200 Subject: [PATCH] decimal and date formatting can be set now --- src/main/java/com/xeiam/xchart/AxisTick.java | 11 +++---- src/main/java/com/xeiam/xchart/Chart.java | 29 +++++++++++++++++++ .../com/xeiam/xchart/example/Example9.java | 3 +- 3 files changed, 37 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/xeiam/xchart/AxisTick.java b/src/main/java/com/xeiam/xchart/AxisTick.java index caae910f..77e6dc39 100644 --- a/src/main/java/com/xeiam/xchart/AxisTick.java +++ b/src/main/java/com/xeiam/xchart/AxisTick.java @@ -57,12 +57,13 @@ public class AxisTick implements IChartPart, IHideable { private int workingSpace; /** the normal format for tick labels */ - private Format normalFormat; + protected Format normalFormat; /** the scientific format for tick labels */ - private Format scientificFormat; + protected Format scientificFormat; - private SimpleDateFormat simpleDateformat; + /** the format for Date tick labels */ + protected SimpleDateFormat simpleDateformat; /** the bounds */ private Rectangle bounds; @@ -81,7 +82,7 @@ public class AxisTick implements IChartPart, IHideable { axisTickLabels = new AxisTickLabels(this); axisTickMarks = new AxisTickMarks(this); - normalFormat = new DecimalFormat("#.###########"); + normalFormat = new DecimalFormat("#.###"); scientificFormat = new DecimalFormat("0.###E0"); simpleDateformat = new SimpleDateFormat("MM-dd"); @@ -243,7 +244,7 @@ public class AxisTick implements IChartPart, IHideable { private String format(BigDecimal value) { if (axis.axisType == AxisType.NUMBER) { - if (Math.abs(value.doubleValue()) < 9999 && Math.abs(value.doubleValue()) > .0001 || value.doubleValue() == 0) { + if (Math.abs(value.doubleValue()) <= 9999 && Math.abs(value.doubleValue()) > .0001 || value.doubleValue() == 0) { return normalFormat.format(value.doubleValue()); } else { return scientificFormat.format(value.doubleValue()); diff --git a/src/main/java/com/xeiam/xchart/Chart.java b/src/main/java/com/xeiam/xchart/Chart.java index 40be0131..096c8c89 100644 --- a/src/main/java/com/xeiam/xchart/Chart.java +++ b/src/main/java/com/xeiam/xchart/Chart.java @@ -19,6 +19,8 @@ import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.RenderingHints; +import java.text.DecimalFormat; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Collection; import java.util.Date; @@ -296,4 +298,31 @@ public class Chart { this.axisPair.xAxis.axisTick.axisTickLabels.font = font; this.axisPair.yAxis.axisTick.axisTickLabels.font = font; } + + /** + * @param pattern - the pattern describing the date and time format + */ + public void setDateFormatter(String pattern) { + + this.axisPair.xAxis.axisTick.simpleDateformat = new SimpleDateFormat(pattern); + } + + /** + * @param pattern - the pattern describing the decimal format + */ + public void setDecmialFormatter(String pattern) { + + this.axisPair.xAxis.axisTick.normalFormat = new DecimalFormat(pattern); + this.axisPair.yAxis.axisTick.normalFormat = new DecimalFormat(pattern); + } + + /** + * @param pattern - the pattern describing the scientific notation format + */ + public void setDecmialScientificFormatter(String pattern) { + + this.axisPair.xAxis.axisTick.scientificFormat = new DecimalFormat(pattern); + this.axisPair.yAxis.axisTick.scientificFormat = new DecimalFormat(pattern); + } + } diff --git a/src/test/java/com/xeiam/xchart/example/Example9.java b/src/test/java/com/xeiam/xchart/example/Example9.java index a0a2f205..d119bf81 100644 --- a/src/test/java/com/xeiam/xchart/example/Example9.java +++ b/src/test/java/com/xeiam/xchart/example/Example9.java @@ -59,7 +59,6 @@ public class Example9 { chart.setChartTitle("Sample Chart with Date X-Axis"); chart.setXAxisTitle("X"); chart.setYAxisTitle("Y"); - chart.setXAxisTicksVisible(false); chart.setChartForegroundColor(ChartColor.getAWTColor(ChartColor.GREY)); chart.setChartGridLinesColor(new Color(255, 255, 255)); chart.setChartBackgroundColor(Color.WHITE); @@ -71,6 +70,8 @@ public class Example9 { 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)); + chart.setDateFormatter("yyyy-MM-dd"); + chart.setDecmialFormatter("#.000"); Series series = chart.addDateSeries("Fake Data", xData, yData); series.setLineColor(SeriesColor.BLUE); -- GitLab