View Javadoc

1   package org.codehaus.mojo.dashboard.report.plugin.chart.time;
2   
3   /*
4    * Copyright 2008 David Vicente
5    *
6    * Licensed under the Apache License, Version 2.0 (the "License");
7    * you may not use this file except in compliance with the License.
8    * You may obtain a copy of the License at
9    *
10   *      http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing, software
13   * distributed under the License is distributed on an "AS IS" BASIS,
14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   * See the License for the specific language governing permissions and
16   * limitations under the License.
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   * @author David Vicente
31   *
32   */
33  public class DashDateAxis extends DateAxis
34  {
35      private static final long serialVersionUID = -1L;
36  
37      double m_angle;
38  
39      /**
40       * @see org.jfree.chart.axis.DateAxis#refreshTicksHorizontal(java.awt.Graphics2D, java.awt.geom.Rectangle2D,
41       *      org.jfree.ui.RectangleEdge)
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  }