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