1
2
3
4
5
6
7
8
9
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 }