1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 package net.sf.statcvs.reportmodel;
24
25 import net.sf.statcvs.renderer.TableCellRenderer;
26
27 /**
28 * An abstract base class for table columns. Concrete Sublasses implement
29 * different behaviour for different data types.
30 *
31 * @author Richard Cyganiak <rcyg@gmx.de>
32 * @version $Id: Column.java,v 1.4 2008/04/02 11:22:14 benoitx Exp $
33 */
34 public abstract class Column {
35
36 /**
37 * Return number of rows that have been added to this column
38 * @return number of rows that have been added to this column
39 */
40 public abstract int getRows();
41
42 /**
43 * Renders the head of the column into a <tt>TableCellRenderer</tt> by
44 * calling one of its
45 * {@link net.sf.statcvs.renderer.TableCellRenderer#renderCell} methods
46 * @param renderer the TableCellRenderer to use
47 * TODO: this is probably unnecessary; better add a getTitle method
48 */
49 public abstract void renderHead(TableCellRenderer renderer);
50
51 /**
52 * Renders a row of the column into a <tt>TableCellRenderer</tt> by
53 * calling one of its
54 * {@link net.sf.statcvs.renderer.TableCellRenderer#renderCell} methods
55 * @param rowIndex the row number, starting at 0
56 * @param renderer the TableCellRenderer to use
57 */
58 public abstract void renderCell(int rowIndex, TableCellRenderer renderer);
59
60 /**
61 * Renders the footer of the column into a <tt>TableCellRenderer</tt> by
62 * calling one of its
63 * {@link net.sf.statcvs.renderer.TableCellRenderer#renderCell}
64 * methods. The footer usually contains some kind of total for the column.
65 * @param renderer the TableCellRenderer to use
66 */
67 public abstract void renderTotal(TableCellRenderer renderer);
68 }