1 package org.codehaus.mojo.dashboard.report.plugin.chart.time;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 import java.awt.Graphics2D;
20 import java.awt.geom.Rectangle2D;
21 import java.util.ArrayList;
22 import java.util.List;
23
24 import org.jfree.chart.axis.DateAxis;
25 import org.jfree.chart.axis.DateTick;
26 import org.jfree.ui.RectangleEdge;
27
28
29
30
31
32
33 public class DashDateAxis extends DateAxis
34 {
35 private static final long serialVersionUID = -1L;
36
37 double m_angle;
38
39
40
41
42
43
44 protected List refreshTicksHorizontal( Graphics2D g2, Rectangle2D dataArea, RectangleEdge edge )
45 {
46
47 if ( getDateTickLabelAngle() == 0.0 )
48 {
49 return super.refreshTicksHorizontal( g2, dataArea, edge );
50 }
51 else
52 {
53 setVerticalTickLabels( true );
54 List ticks = super.refreshTicksHorizontal( g2, dataArea, edge );
55 List ret = new ArrayList();
56
57 for ( int i = 0; i < ticks.size(); i++ )
58 {
59 Object tick = ticks.get( i );
60 if ( tick instanceof DateTick )
61 {
62 DateTick dateTick = (DateTick) tick;
63 ret.add( new DateTick( dateTick.getDate(), dateTick.getText(), dateTick.getTextAnchor(),
64 dateTick.getRotationAnchor(), getDateTickLabelAngle() ) );
65 }
66 else
67 {
68 ret.add( tick );
69 }
70 }
71 return ret;
72 }
73 }
74
75 public double getDateTickLabelAngle()
76 {
77 return m_angle;
78 }
79
80 public void setDateTickLabelAngle( double angle )
81 {
82 m_angle = angle;
83 }
84
85 }