1 package at.ac.tuwien.sbc.valesriegler.pizzeria.gui.tablemodels;
3 import java.util.ArrayList;
6 import at.ac.tuwien.sbc.valesriegler.common.TableModel;
7 import at.ac.tuwien.sbc.valesriegler.pizzeria.gui.DEP_Table;
8 import at.ac.tuwien.sbc.valesriegler.pizzeria.gui.DEP_Table.TableStatus;
10 public class TablesOverviewModel extends TableModel<DEP_Table> {
11 private static final String TABLE_ID = "ID";
12 private static final String STATUS = "Status";
13 private static final String GROUP_ID = "Group ID";
14 private static final String[] COLUMNS = new String[] {
15 TABLE_ID, STATUS, GROUP_ID
17 private int idCounter = 1;
20 protected String[] getColumns() {
25 public Object getValueAt(int rowIndex, int columnIndex) {
26 DEP_Table table = items.get(rowIndex);
27 String wantedColumn = COLUMNS[columnIndex];
28 switch(wantedColumn) {
29 case TABLE_ID : return table.getId();
30 case STATUS : return table.getStatus();
31 case GROUP_ID : return table.getGroupId();
32 default : throw new RuntimeException(UNHANDLEDCOLUMN);
36 public int getNumberOfFreeTables() {
37 return getIdsOfFreeTables().size();
40 public List<Integer> getIdsOfFreeTables() {
41 List<Integer> ids = new ArrayList<>();
44 for(DEP_Table table : items) {
45 if(table.getStatus() == TableStatus.FREE) {
46 ids.add(table.getId());
54 public List<DEP_Table> createFreeTables(int numberOfTables) {
56 List<DEP_Table> tables = new ArrayList<DEP_Table>();
57 for(int i=0; i<numberOfTables; i++) {
58 DEP_Table table = createFreeTable();
67 private DEP_Table createFreeTable() {
68 DEP_Table table = new DEP_Table();
69 table.setId(idCounter);
70 idCounter = idCounter + 1;
71 table.setStatus(TableStatus.FREE);