]> git.somenet.org - pub/jan/sbc.git/blob - src/main/java/at/ac/tuwien/sbc/valesriegler/pizzeria/gui/tablemodels/TablesOverviewModel.java
Ask for number of tables on start of the Pizzeria GUI
[pub/jan/sbc.git] / src / main / java / at / ac / tuwien / sbc / valesriegler / pizzeria / gui / tablemodels / TablesOverviewModel.java
1 package at.ac.tuwien.sbc.valesriegler.pizzeria.gui.tablemodels;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 import at.ac.tuwien.sbc.valesriegler.common.TableModel;
7 import at.ac.tuwien.sbc.valesriegler.pizzeria.gui.Table;
8 import at.ac.tuwien.sbc.valesriegler.pizzeria.gui.Table.TableStatus;
9
10 public class TablesOverviewModel extends TableModel<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
16         };
17         private int idCounter = 1;
18         
19         public TablesOverviewModel(int numberOfTables) {
20                 createFreeTables(numberOfTables);
21         }
22
23
24         @Override
25         protected String[] getColumns() {
26                 return COLUMNS;
27         }
28
29         @Override
30         public Object getValueAt(int rowIndex, int columnIndex) {
31                 Table table = items.get(rowIndex);
32                 String wantedColumn = COLUMNS[columnIndex];
33                 switch(wantedColumn) {
34                 case TABLE_ID : return table.getId();
35                 case STATUS : return table.getStatus();
36                 case GROUP_ID : return table.getGroupId();
37                 default : throw new RuntimeException(UNHANDLEDCOLUMN); 
38                 }
39         }
40
41         public int getNumberOfFreeTables() {
42                 int i=0;
43                 for(Table table : items) {
44                         if(table.getStatus() == TableStatus.FREE) {
45                                 i = i+1;
46                         }
47                 }
48                 return i;
49         }
50         
51
52         private void createFreeTables(int numberOfTables) {
53                 List<Table> tables = new ArrayList<Table>();
54                 for(int i=0; i<numberOfTables; i++) {
55                         Table table = createFreeTable();
56                         tables.add(table);
57                 }
58                 addItems(tables);
59         }
60         
61         private Table createFreeTable() {
62                 Table table = new Table();
63                 table.setId(idCounter);
64                 idCounter = idCounter + 1;
65                 table.setStatus(TableStatus.FREE);
66                 return table;
67         }
68
69 }