PageRenderTime 25ms CodeModel.GetById 30ms RepoModel.GetById 1ms app.codeStats 0ms

/metastudio/lib/src/jfreechart/src/org/jfree/chart/title/DateTitle.java

http://metastudio.googlecode.com/
Java | 191 lines | 48 code | 13 blank | 130 comment | 0 complexity | c9f09d45f76c6cab2d85c9fb61001238 MD5 | raw file
Possible License(s): LGPL-2.1, Apache-2.0
  1. /* ===========================================================
  2. * JFreeChart : a free chart library for the Java(tm) platform
  3. * ===========================================================
  4. *
  5. * (C) Copyright 2000-2005, by Object Refinery Limited and Contributors.
  6. *
  7. * Project Info: http://www.jfree.org/jfreechart/index.html
  8. *
  9. * This library is free software; you can redistribute it and/or modify it
  10. * under the terms of the GNU Lesser General Public License as published by
  11. * the Free Software Foundation; either version 2.1 of the License, or
  12. * (at your option) any later version.
  13. *
  14. * This library is distributed in the hope that it will be useful, but
  15. * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
  16. * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
  17. * License for more details.
  18. *
  19. * You should have received a copy of the GNU Lesser General Public
  20. * License along with this library; if not, write to the Free Software
  21. * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
  22. * USA.
  23. *
  24. * [Java is a trademark or registered trademark of Sun Microsystems, Inc.
  25. * in the United States and other countries.]
  26. *
  27. * --------------
  28. * DateTitle.java
  29. * --------------
  30. * (C) Copyright 2000-2005, by David Berry and Contributors.
  31. *
  32. * Original Author: David Berry;
  33. * Contributor(s): David Gilbert (for Object Refinery Limited);
  34. *
  35. * $Id: DateTitle.java,v 1.3.2.1 2005/10/25 20:58:34 mungady Exp $
  36. *
  37. * Changes (from 18-Sep-2001)
  38. * --------------------------
  39. * 18-Sep-2001 : Added standard header (DG);
  40. * 09-Jan-2002 : Updated Javadoc comments (DG);
  41. * 07-Feb-2002 : Changed blank space around title from Insets --> Spacer, to
  42. * allow for relative or absolute spacing (DG);
  43. * 26-Sep-2002 : Fixed errors reported by Checkstyle (DG);
  44. * 31-Jan-2005 : Updated for changes to super class (DG);
  45. *
  46. */
  47. package org.jfree.chart.title;
  48. import java.awt.Color;
  49. import java.awt.Font;
  50. import java.awt.Paint;
  51. import java.io.Serializable;
  52. import java.text.DateFormat;
  53. import java.util.Date;
  54. import java.util.Locale;
  55. import org.jfree.ui.HorizontalAlignment;
  56. import org.jfree.ui.RectangleEdge;
  57. import org.jfree.ui.RectangleInsets;
  58. import org.jfree.ui.VerticalAlignment;
  59. /**
  60. * A chart title that displays the date.
  61. * <p>
  62. * Keep in mind that a chart can have several titles, and that they can appear
  63. * at the top, left, right or bottom of the chart - a <code>DateTitle</code>
  64. * will commonly appear at the bottom of a chart, although you can place it
  65. * anywhere.
  66. * <P>
  67. * By specifying the locale, dates are formatted to the correct standard for
  68. * the given locale. For example, a date would appear as "January 17, 2000" in
  69. * the US, but "17 January 2000" in most European locales.
  70. *
  71. * @author David Berry
  72. */
  73. public class DateTitle extends TextTitle implements Serializable {
  74. /** For serialization. */
  75. private static final long serialVersionUID = -465434812763159881L;
  76. /**
  77. * Creates a new chart title that displays the current date in the default
  78. * (LONG) format for the locale, positioned to the bottom right of the
  79. * chart.
  80. * <P>
  81. * The color will be black in 12 point, plain Helvetica font (maps to Arial
  82. * on Win32 systems without Helvetica).
  83. */
  84. public DateTitle() {
  85. this(DateFormat.LONG);
  86. }
  87. /**
  88. * Creates a new chart title that displays the current date with the
  89. * specified style (for the default locale).
  90. * <P>
  91. * The date style should be one of: <code>SHORT</code>,
  92. * <code>MEDIUM</code>, <code>LONG</code> or <code>FULL</code>
  93. * (defined in <code>java.util.DateFormat<code>).
  94. *
  95. * @param style the date style.
  96. */
  97. public DateTitle(int style) {
  98. this(
  99. style, Locale.getDefault(),
  100. new Font("Dialog", Font.PLAIN, 12), Color.black
  101. );
  102. }
  103. /**
  104. * Creates a new chart title that displays the current date.
  105. * <p>
  106. * The date style should be one of: <code>SHORT</code>,
  107. * <code>MEDIUM</code>, <code>LONG</code> or <code>FULL</code> (defined
  108. * in <code>java.util.DateFormat<code>).
  109. * <P>
  110. * For the locale, you can use <code>Locale.getDefault()</code> for the
  111. * default locale.
  112. *
  113. * @param style the date style.
  114. * @param locale the locale.
  115. * @param font the font.
  116. * @param paint the text color.
  117. */
  118. public DateTitle(int style, Locale locale, Font font, Paint paint) {
  119. this(
  120. style, locale, font, paint,
  121. RectangleEdge.BOTTOM,
  122. HorizontalAlignment.RIGHT,
  123. VerticalAlignment.CENTER,
  124. Title.DEFAULT_PADDING
  125. );
  126. }
  127. /**
  128. * Creates a new chart title that displays the current date.
  129. * <p>
  130. * The date style should be one of: <code>SHORT</code>,
  131. * <code>MEDIUM</code>, <code>LONG</code> or <code>FULL</code> (defined
  132. * in <code>java.util.DateFormat<code>).
  133. * <P>
  134. * For the locale, you can use <code>Locale.getDefault()</code> for the
  135. * default locale.
  136. *
  137. * @param style the date style.
  138. * @param locale the locale.
  139. * @param font the font (not null).
  140. * @param paint the text color (not null).
  141. * @param position the relative location of this title (use constants in
  142. * Title).
  143. * @param horizontalAlignment the horizontal text alignment of this title
  144. * (use constants in Title).
  145. * @param verticalAlignment the vertical text alignment of this title (use
  146. * constants in Title).
  147. * @param padding determines the blank space around the outside of the
  148. * title (not null).
  149. */
  150. public DateTitle(int style, Locale locale, Font font, Paint paint,
  151. RectangleEdge position,
  152. HorizontalAlignment horizontalAlignment,
  153. VerticalAlignment verticalAlignment,
  154. RectangleInsets padding) {
  155. super(
  156. DateFormat.getDateInstance(style, locale).format(new Date()),
  157. font, paint,
  158. position, horizontalAlignment, verticalAlignment,
  159. padding
  160. );
  161. }
  162. /**
  163. * Set the format of the date.
  164. * <P>
  165. * The date style should be one of: <code>SHORT</code>,
  166. * <code>MEDIUM</code>, <code>LONG</code> or <code>FULL</code> (defined
  167. * in <code>java.util.DateFormat<code>).
  168. * <P>
  169. * For the locale, you can use <code>Locale.getDefault()</code> for the
  170. * default locale.
  171. *
  172. * @param style the date style.
  173. * @param locale the locale.
  174. */
  175. public void setDateFormat(int style, Locale locale) {
  176. setText(DateFormat.getDateInstance(style, locale).format(new Date()));
  177. }
  178. }