From a4e441c94825bc50e0a4e0389beaf235636f05a4 Mon Sep 17 00:00:00 2001
From: Bryan Cardillo <bryan.cardillo@gmail.com>
Date: Wed, 25 Feb 2015 17:40:48 -0500
Subject: [PATCH] add date demo with rotated axis labels.

---
 .../com/xeiam/xchart/demo/XChartDemo.java     |  4 +
 .../xchart/demo/charts/date/DateChart08.java  | 78 +++++++++++++++++++
 2 files changed, 82 insertions(+)
 create mode 100644 xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart08.java

diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/XChartDemo.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/XChartDemo.java
index cd0f851a..10792c3a 100644
--- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/XChartDemo.java
+++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/XChartDemo.java
@@ -49,6 +49,7 @@ import com.xeiam.xchart.demo.charts.date.DateChart04;
 import com.xeiam.xchart.demo.charts.date.DateChart05;
 import com.xeiam.xchart.demo.charts.date.DateChart06;
 import com.xeiam.xchart.demo.charts.date.DateChart07;
+import com.xeiam.xchart.demo.charts.date.DateChart08;
 import com.xeiam.xchart.demo.charts.line.LineChart01;
 import com.xeiam.xchart.demo.charts.line.LineChart02;
 import com.xeiam.xchart.demo.charts.line.LineChart03;
@@ -303,6 +304,9 @@ public class XChartDemo extends JPanel implements TreeSelectionListener {
     defaultMutableTreeNode = new DefaultMutableTreeNode(new ChartInfo("DateChart07 - Year Scale", new DateChart07().getChart()));
     category.add(defaultMutableTreeNode);
 
+    defaultMutableTreeNode = new DefaultMutableTreeNode(new ChartInfo("DateChart08 - Rotated Labels", new DateChart08().getChart()));
+    category.add(defaultMutableTreeNode);
+
     // Real-time category
     category = new DefaultMutableTreeNode("Real-time Charts");
     top.add(category);
diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart08.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart08.java
new file mode 100644
index 00000000..fbb6c8b8
--- /dev/null
+++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart08.java
@@ -0,0 +1,78 @@
+/**
+ * Copyright 2011 - 2015 Xeiam LLC.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.xeiam.xchart.demo.charts.date;
+
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Random;
+
+import com.xeiam.xchart.Chart;
+import com.xeiam.xchart.ChartBuilder;
+import com.xeiam.xchart.StyleManager.TextAlignment;
+import com.xeiam.xchart.SwingWrapper;
+import com.xeiam.xchart.demo.charts.ExampleChart;
+
+/**
+ * Year scale
+ */
+public class DateChart08 implements ExampleChart {
+
+  public static void main(String[] args) {
+
+    ExampleChart exampleChart = new DateChart08();
+    Chart chart = exampleChart.getChart();
+    new SwingWrapper(chart).displayChart();
+  }
+
+  @Override
+  public Chart getChart() {
+
+    // Create Chart
+    Chart chart = new ChartBuilder().width(800).height(600).title("Year Scale").build();
+    chart.getStyleManager().setLegendVisible(false);
+    chart.getStyleManager().setXAxisLabelRotation(45);
+    chart.getStyleManager().setYAxisLabelRotation(90);
+    chart.getStyleManager().setXAxisLabelAlignment(TextAlignment.Right);
+    chart.getStyleManager().setDatePattern("yyyy-MM-dd");
+
+    // generate data
+    List<Date> xData = new ArrayList<Date>();
+    List<Double> yData = new ArrayList<Double>();
+
+    Random random = new Random();
+
+    DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+    Date date = null;
+    for (int i = 1; i <= 14; i++) {
+      try {
+        date = sdf.parse("" + (2001 + i) + "-" + random.nextInt(12) + "-" + random.nextInt(28));
+      } catch (ParseException e) {
+        e.printStackTrace();
+      }
+      xData.add(date);
+      yData.add(Math.random() * i);
+    }
+
+    chart.addSeries("blah", xData, yData);
+
+    return chart;
+
+  }
+}
-- 
GitLab