Source for org.jfree.ui.about.ContributorsTableModel

   1: /* ========================================================================
   2:  * JCommon : a free general purpose class library for the Java(tm) platform
   3:  * ========================================================================
   4:  *
   5:  * (C) Copyright 2000-2005, by Object Refinery Limited and Contributors.
   6:  * 
   7:  * Project Info:  http://www.jfree.org/jcommon/index.html
   8:  *
   9:  * This library is free software; you can redistribute it and/or modify it 
  10:  * under the terms of the GNU Lesser General Public License as published by 
  11:  * the Free Software Foundation; either version 2.1 of the License, or 
  12:  * (at your option) any later version.
  13:  *
  14:  * This library is distributed in the hope that it will be useful, but 
  15:  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 
  16:  * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public 
  17:  * License for more details.
  18:  *
  19:  * You should have received a copy of the GNU Lesser General Public
  20:  * License along with this library; if not, write to the Free Software
  21:  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, 
  22:  * USA.  
  23:  *
  24:  * [Java is a trademark or registered trademark of Sun Microsystems, Inc. 
  25:  * in the United States and other countries.]
  26:  * 
  27:  * ---------------------------
  28:  * ContributorsTableModel.java
  29:  * ---------------------------
  30:  * (C) Copyright 2001-2004, by Object Refinery Limited.
  31:  *
  32:  * Original Author:  David Gilbert (for Object Refinery Limited);
  33:  * Contributor(s):   -;
  34:  *
  35:  * $Id: ContributorsTableModel.java,v 1.4 2005/11/16 15:58:41 taqua Exp $
  36:  *
  37:  * Changes
  38:  * -------
  39:  * 10-Dec-2001 : Version 1 (DG);
  40:  * 28-Feb-2002 : Moved into package com.jrefinery.ui.about.  Changed import statements and
  41:  *               updated Javadoc comments (DG);
  42:  * 08-Oct-2002 : Fixed errors reported by Checkstyle (DG);
  43:  */
  44: 
  45: package org.jfree.ui.about;
  46: 
  47: import java.util.List;
  48: import java.util.ResourceBundle;
  49: 
  50: import javax.swing.table.AbstractTableModel;
  51: 
  52: /**
  53:  * A table model containing a list of contributors to a project.
  54:  * <P>
  55:  * Used in the ContributorsPanel class.
  56:  *
  57:  * @author David Gilbert
  58:  */
  59: public class ContributorsTableModel extends AbstractTableModel {
  60: 
  61:     /** Storage for the contributors. */
  62:     private List contributors;
  63: 
  64:     /** Localised version of the name column label. */
  65:     private String nameColumnLabel;
  66: 
  67:     /** Localised version of the contact column label. */
  68:     private String contactColumnLabel;
  69: 
  70:     /**
  71:      * Constructs a ContributorsTableModel.
  72:      *
  73:      * @param contributors  the contributors.
  74:      */
  75:     public ContributorsTableModel(final List contributors) {
  76: 
  77:         this.contributors = contributors;
  78: 
  79:         final String baseName = "org.jfree.ui.about.resources.AboutResources";
  80:         final ResourceBundle resources = ResourceBundle.getBundle(baseName);
  81:         this.nameColumnLabel = resources.getString("contributors-table.column.name");
  82:         this.contactColumnLabel = resources.getString("contributors-table.column.contact");
  83: 
  84:     }
  85: 
  86:     /**
  87:      * Returns the number of rows in the table model.
  88:      *
  89:      * @return The number of rows.
  90:      */
  91:     public int getRowCount() {
  92:         return this.contributors.size();
  93:     }
  94: 
  95:     /**
  96:      * Returns the number of columns in the table model.  In this case, there are always two
  97:      * columns (name and e-mail address).
  98:      *
  99:      * @return The number of columns in the table model.
 100:      */
 101:     public int getColumnCount() {
 102:         return 2;
 103:     }
 104: 
 105:     /**
 106:      * Returns the name of a column in the table model.
 107:      *
 108:      * @param column  the column index (zero-based).
 109:      *
 110:      * @return  the name of the specified column.
 111:      */
 112:     public String getColumnName(final int column) {
 113: 
 114:         String result = null;
 115: 
 116:         switch (column) {
 117: 
 118:             case 0:  result = this.nameColumnLabel;
 119:                      break;
 120: 
 121:             case 1:  result = this.contactColumnLabel;
 122:                      break;
 123: 
 124:         }
 125: 
 126:         return result;
 127: 
 128:     }
 129: 
 130:     /**
 131:      * Returns the value for a cell in the table model.
 132:      *
 133:      * @param row  the row index (zero-based).
 134:      * @param column  the column index (zero-based).
 135:      *
 136:      * @return the value.
 137:      */
 138:     public Object getValueAt(final int row, final int column) {
 139: 
 140:         Object result = null;
 141:         final Contributor contributor = (Contributor) this.contributors.get(row);
 142: 
 143:         if (column == 0) {
 144:             result = contributor.getName();
 145:         }
 146:         else if (column == 1) {
 147:             result = contributor.getEmail();
 148:         }
 149:         return result;
 150: 
 151:     }
 152: 
 153: }