View Javadoc

1   /*
2    *  File: DateCellRenderer.java 
3    *  Copyright (c) 2004-2007  Peter Kliem (Peter.Kliem@jaret.de)
4    *  A commercial license is available, see http://www.jaret.de.
5    *
6    * All rights reserved. This program and the accompanying materials
7    * are made available under the terms of the Common Public License v1.0
8    * which accompanies this distribution, and is available at
9    * http://www.eclipse.org/legal/cpl-v10.html
10   */
11  package de.jaret.util.ui.table.renderer;
12  
13  import java.text.DateFormat;
14  import java.util.Date;
15  
16  import org.eclipse.swt.printing.Printer;
17  
18  import de.jaret.util.date.JaretDate;
19  import de.jaret.util.ui.table.model.IColumn;
20  import de.jaret.util.ui.table.model.IRow;
21  
22  /***
23   * Cell renderer for a date. Can also render a JaretDate.
24   * 
25   * @author Peter Kliem
26   * @version $Id: DateCellRenderer.java 355 2007-04-09 13:54:05Z olk $
27   */
28  public class DateCellRenderer extends TextCellRenderer {
29      /*** dateformat used to format the date to text. */
30      protected DateFormat _dateformat = DateFormat.getDateInstance(DateFormat.MEDIUM);
31  
32      /***
33       * Construct a date cell renderer for a printer.
34       * 
35       * @param printer priner device
36       */
37      public DateCellRenderer(Printer printer) {
38          super(printer);
39      }
40  
41      /***
42       * Construct a date cell renderer.
43       */
44      public DateCellRenderer() {
45          super();
46      }
47  
48      /***
49       * {@inheritDoc}
50       */
51      protected String convertValue(IRow row, IColumn column) {
52          Object value = column.getValue(row);
53          if (value instanceof Date) {
54              Date date = (Date) value;
55              return _dateformat.format(date);
56          } else if (value instanceof JaretDate) {
57              Date date = ((JaretDate) value).getDate();
58              return _dateformat.format(date);
59          }
60          return "";
61      }
62  
63      /***
64       * Retrive the used date format.
65       * 
66       * @return Returns the dateformat.
67       */
68      public DateFormat getDateformat() {
69          return _dateformat;
70      }
71  
72      /***
73       * Set the dateformat used for text transformation.
74       * 
75       * @param dateformat The dateformat to set.
76       */
77      public void setDateformat(DateFormat dateformat) {
78          _dateformat = dateformat;
79      }
80  
81      /***
82       * {@inheritDoc}
83       */
84      public ICellRenderer createPrintRenderer(Printer printer) {
85          DateCellRenderer renderer = new DateCellRenderer(printer);
86          renderer.setDateformat(getDateformat());
87          return renderer;
88      }
89  
90  }