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