001: package hugetestportlet.data;
002:
003: import java.util.LinkedList;
004: import java.util.List;
005:
006: import javax.swing.table.AbstractTableModel;
007:
008: public class PersonTableModel extends AbstractTableModel {
009:
010: private List<PersonBean> personList = new LinkedList<PersonBean>();
011:
012: public int getColumnCount() {
013: return 5;
014: }
015:
016: public int getRowCount() {
017: return personList.size();
018: }
019:
020: public String getColumnName(int column) {
021: switch (column) {
022: case 0:
023: return "";
024: case 1:
025: return "prof";
026: case 2:
027: return "dr";
028: case 3:
029: return "Name";
030: case 4:
031: return "forename";
032: default:
033: return "missing column";
034: }
035: }
036:
037: public Object getValueAt(int row, int column) {
038: PersonBean person = personList.get(row);
039: switch (column) {
040: case 0:
041: return person.getGender();
042: case 1:
043: return person.isProf();
044: case 2:
045: return person.isDr();
046: case 3:
047: return person.getName();
048: case 4:
049: return person.getGivenName();
050: default:
051: return person.getName();
052: }
053: }
054:
055: public void addPerson(PersonBean person) {
056: personList.add(person);
057: }
058:
059: public void removePerson(int row) {
060: if (row < personList.size())
061: personList.remove(row);
062: }
063:
064: public boolean isCellEditable(int row, int column) {
065: return true; // allow for all cells
066: }
067:
068: public void setValueAt(Object object, int row, int column) {
069: PersonBean person = personList.get(row);
070: switch (column) {
071: case 0:
072: person.setGender((String) object);
073: break;
074: case 1:
075: person.setProf((Boolean) object);
076: break;
077: case 2:
078: person.setDr((Boolean) object);
079: break;
080: case 3:
081: person.setName((String) object);
082: break;
083: case 4:
084: person.setGivenName((String) object);
085: break;
086: }
087:
088: }
089:
090: public Class getColumnClass(int column) {
091: switch (column) {
092: case 0:
093: return String.class;
094: case 1:
095: return Boolean.class;
096: case 2:
097: return Boolean.class;
098: case 3:
099: return String.class;
100: case 4:
101: return String.class;
102: default:
103: return String.class;
104: }
105: }
106: }
|