]> git.somenet.org - pub/jan/sbc.git/blob - src/main/java/at/ac/tuwien/sbc/valesriegler/common/TableModel.java
First running MozartSpaces communication: PizzeriaGUI writes free tables to space...
[pub/jan/sbc.git] / src / main / java / at / ac / tuwien / sbc / valesriegler / common / TableModel.java
1 package at.ac.tuwien.sbc.valesriegler.common;
2
3 import java.util.ArrayList;
4 import java.util.Collections;
5 import java.util.List;
6
7 import javax.swing.table.AbstractTableModel;
8
9 /**
10  * Common base class of table models used in Group GUI and Pizzeria GUI.
11  * 
12  * @author Gregor Riegler <gregor DOT riegler AT gmail DOT com>
13  *
14  */
15 public abstract class TableModel<Item> extends AbstractTableModel {
16         protected static final String UNHANDLEDCOLUMN = "Unhandled column";
17         
18         protected final List<Item> items = Collections.synchronizedList(new ArrayList<Item>());
19         
20         public void addItems(List<Item> newItems) {
21                 items.addAll(newItems);
22                 
23                 fireTableDataChanged();
24         }
25         
26         public void setItems(List<Item> newItems) {
27                 items.clear();
28                 addItems(newItems);
29         }
30         
31         @Override
32         public int getRowCount() {
33                 return items.size();
34         }
35         
36         @Override
37         public String getColumnName(int column) {
38                 return getColumns()[column];
39         }
40
41         @Override
42         public int getColumnCount() {
43                 return getColumns().length;
44         }
45         
46         protected abstract String[] getColumns();
47
48 }