]> git.somenet.org - pub/jan/sbc.git/blob - src/main/java/at/ac/tuwien/sbc/valesriegler/pizzeria/gui/tablemodels/GroupsOverviewModel.java
Space waiters pay and overall remaining space workflow refactoring
[pub/jan/sbc.git] / src / main / java / at / ac / tuwien / sbc / valesriegler / pizzeria / gui / tablemodels / GroupsOverviewModel.java
1 package at.ac.tuwien.sbc.valesriegler.pizzeria.gui.tablemodels;
2
3 import java.util.ArrayList;
4 import java.util.Iterator;
5 import java.util.List;
6
7 import at.ac.tuwien.sbc.valesriegler.common.TableModel;
8 import at.ac.tuwien.sbc.valesriegler.types.GroupData;
9 import at.ac.tuwien.sbc.valesriegler.types.GroupState;
10
11 public class GroupsOverviewModel extends TableModel<GroupData> {
12         private static final String ID = "ID";
13         private static final String SIZE = "Size";
14
15         private static final String[] COLUMNS = new String[] { ID, SIZE };
16
17         @Override
18         protected String[] getColumns() {
19                 return COLUMNS;
20         }
21         
22         @Override
23         public int getRowCount() {
24                 List<GroupData> values = new ArrayList<>(items.values());
25                 Iterator<GroupData> it = values.iterator();
26                 while (it.hasNext()) {
27                         GroupData groupData = it.next();
28                         // Show only the waiting groups!
29                         // TODO what is the GroupState.NEW? 
30                         if(!(groupData.getState() == GroupState.NEW || groupData.getState() == GroupState.WAITING)) {
31                                 it.remove();
32                         }
33                 }
34                 
35                 return values.size();
36         }
37
38         @Override
39         public Object getValueAt(int rowIndex, int columnIndex) {
40                 List<GroupData> values = new ArrayList<>(items.values());
41                 Iterator<GroupData> it = values.iterator();
42                 while (it.hasNext()) {
43                         GroupData groupData = it.next();
44                         // Show only the waiting groups!
45                         if(groupData.getState() == GroupState.NEW || groupData.getState() == GroupState.WAITING) {
46                                 it.remove();
47                         }
48                 }
49                 GroupData group = values.get(rowIndex);
50                 String wantedColumn = COLUMNS[columnIndex];
51                 switch (wantedColumn) {
52                 case ID:
53                         return group.getId();
54                 case SIZE:
55                         return group.getSize();
56                 default:
57                         throw new RuntimeException(UNHANDLEDCOLUMN);
58                 }
59         }
60
61 }