1 /* 2 StatCvs - CVS statistics generation 3 Copyright (C) 2002 Lukasz Pekacki <lukasz@pekacki.de> 4 http://statcvs.sf.net/ 5 6 This library is free software; you can redistribute it and/or 7 modify it under the terms of the GNU Lesser General Public 8 License as published by the Free Software Foundation; either 9 version 2.1 of the License, or (at your option) any later version. 10 11 This library is distributed in the hope that it will be useful, 12 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 Lesser General Public License for more details. 15 16 You should have received a copy of the GNU Lesser General Public 17 License along with this library; if not, write to the Free Software 18 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 19 20 $RCSfile: Column.java,v $ 21 $Date: 2008/04/02 11:22:14 $ 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 }