KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > mlw > vlh > swing > support > AbstractValueListTableModel


1 /**
2  * Copyright (c) 2003 held jointly by the individual authors.
3  *
4  * This library is free software; you can redistribute it and/or modify it
5  * under the terms of the GNU Lesser General Public License as published
6  * by the Free Software Foundation; either version 2.1 of the License, or
7  * (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful, but
10  * WITHOUT ANY WARRANTY; with out even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public License
15  * along with this library; if not, write to the Free Software Foundation,
16  * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
17  *
18  * > http://www.gnu.org/copyleft/lesser.html
19  * > http://www.opensource.org/licenses/lgpl-license.php
20  */

21 package net.mlw.vlh.swing.support;
22
23 import java.util.LinkedList JavaDoc;
24 import java.util.List JavaDoc;
25
26 import javax.swing.table.AbstractTableModel JavaDoc;
27
28 import net.mlw.vlh.ValueList;
29 import net.mlw.vlh.swing.ValueListTableModel;
30
31 /**
32  * @author Matthew L. Wilson
33  * @version $Revision: 1.5 $ $Date: 2005/08/30 18:54:25 $
34  */

35 public abstract class AbstractValueListTableModel extends AbstractTableModel JavaDoc implements ValueListTableModel
36 {
37    protected List JavaDoc list = new LinkedList JavaDoc();
38
39    protected int rowCount = 0;
40
41    /**
42     * @see javax.swing.table.TableModel#getRowCount()
43     */

44    public int getRowCount()
45    {
46       return rowCount;
47    }
48
49    public synchronized int addBean(Object JavaDoc bean)
50    {
51       list.add(bean);
52       return (rowCount = list.size()) - 1;
53    }
54
55    public Object JavaDoc getBean(int row)
56    {
57       if (row == -1 || list.size() < row)
58       {
59          return null;
60       }
61       return list.get(row);
62    }
63
64    public synchronized void setList(List JavaDoc list)
65    {
66       this.list = list;
67       this.rowCount = list.size();
68       fireTableDataChanged();
69    }
70
71    public synchronized void setValueList(ValueList valueList)
72    {
73       this.list = valueList.getList();
74       this.rowCount = list.size();
75       fireTableDataChanged();
76    }
77
78    /**
79     * @see net.mlw.vlh.swing.ValueListTableModel#trimFromBottomOfList()
80     */

81    public synchronized int trimFromList(int index)
82    {
83       list.remove(index);
84       return (rowCount = list.size()) - 1;
85    }
86
87    /**
88     * @see net.mlw.vlh.swing.ValueListTableModel#contains(Object)
89     */

90    public boolean contains(Object JavaDoc bean)
91    {
92       return list.contains(bean);
93    }
94
95    public synchronized int removeBean(Object JavaDoc bean)
96    {
97       int index = list.indexOf(bean);
98       if (index >= 0)
99       {
100          list.remove(index);
101          this.rowCount = list.size();
102       }
103       return index;
104    }
105 }
Popular Tags