1
2
3
4
5
6
7
8
9
10
11 package de.jaret.util.ui.table.renderer;
12
13 import java.text.DecimalFormat;
14 import java.text.NumberFormat;
15
16 import org.eclipse.swt.printing.Printer;
17
18 import de.jaret.util.ui.table.model.IColumn;
19 import de.jaret.util.ui.table.model.IRow;
20
21 /***
22 * CellRenderer for double values.
23 *
24 * @author Peter Kliem
25 * @version $Id: DoubleCellRenderer.java 355 2007-04-09 13:54:05Z olk $
26 */
27 public class DoubleCellRenderer extends TextCellRenderer {
28 /*** default fraction digits. */
29 protected static final int DEFAULT_FRACTION_DIGITS = 2;
30 /*** number format for text converson. */
31 protected NumberFormat _numberFormat = DecimalFormat.getIntegerInstance();
32
33 /***
34 * Construct a double cell renderer for printing.
35 *
36 * @param printer printer device
37 */
38 public DoubleCellRenderer(Printer printer) {
39 super(printer);
40 _numberFormat.setMaximumFractionDigits(DEFAULT_FRACTION_DIGITS);
41 _numberFormat.setMinimumFractionDigits(DEFAULT_FRACTION_DIGITS);
42 }
43
44 /***
45 * Construct a double cell renderer for use with a display.
46 */
47 public DoubleCellRenderer() {
48 this(null);
49 }
50
51 /***
52 * Retrieve the used number format.
53 *
54 * @return number format
55 */
56 public NumberFormat getNumberFormat() {
57 return _numberFormat;
58 }
59
60 /***
61 * Set number format used for text conversion.
62 *
63 * @param numberFormat number format
64 */
65 public void setNumberFormat(NumberFormat numberFormat) {
66 _numberFormat = numberFormat;
67 }
68
69 /***
70 * {@inheritDoc}
71 */
72 protected String convertValue(IRow row, IColumn column) {
73 Double value = (Double) column.getValue(row);
74 return value != null ? _numberFormat.format(value.doubleValue()) : null;
75 }
76
77 /***
78 * {@inheritDoc}
79 */
80 public ICellRenderer createPrintRenderer(Printer printer) {
81 DoubleCellRenderer dcr = new DoubleCellRenderer(printer);
82 dcr.setNumberFormat(getNumberFormat());
83 return dcr;
84 }
85
86 }