]> git.somenet.org - pub/jan/sbc.git/blob - src/main/java/at/ac/tuwien/sbc/valesriegler/pizzeria/gui/tablemodels/DeliveryOrdersModel.java
[XVSM] Create initial Pizzeria Recovery support.
[pub/jan/sbc.git] / src / main / java / at / ac / tuwien / sbc / valesriegler / pizzeria / gui / tablemodels / DeliveryOrdersModel.java
1 package at.ac.tuwien.sbc.valesriegler.pizzeria.gui.tablemodels;
2
3 import at.ac.tuwien.sbc.valesriegler.common.TableModel;
4 import at.ac.tuwien.sbc.valesriegler.types.DeliveryGroupData;
5 import at.ac.tuwien.sbc.valesriegler.types.GroupData;
6 import at.ac.tuwien.sbc.valesriegler.types.Order;
7 import org.slf4j.Logger;
8 import org.slf4j.LoggerFactory;
9
10 import java.util.ArrayList;
11 import java.util.List;
12
13 public class DeliveryOrdersModel extends AbstractOrdersModel<DeliveryGroupData> {
14     private static final Logger log = LoggerFactory.getLogger(DeliveryOrdersModel.class);
15
16     private static final String ID = "Delivery ID";
17     private static final String ORDER_ID = "Order ID";
18     private static final String DELIVERY_ADDRESS = "Address";
19     private static final String STATUS = "Status";
20     private static final String LOAD_BALANCER_ID = "Moved by";
21     private static final String ORIGINAL_PIZZERIA = "Moved from";
22
23     private static final String[] COLUMNS = new String[] { ID, ORDER_ID, DELIVERY_ADDRESS, STATUS, LOAD_BALANCER_ID, ORIGINAL_PIZZERIA };
24
25     @Override
26     protected String[] getColumns() {
27         return COLUMNS;
28     }
29
30     @Override
31     public Object getValueAt(int rowIndex, int columnIndex) {
32         List<DeliveryGroupData> values = new ArrayList<>(items.values());
33         DeliveryGroupData group = values.get(rowIndex);
34         Order order = group.getOrder();
35         String wantedColumn = COLUMNS[columnIndex];
36         switch (wantedColumn) {
37             case ID:
38                 return group.getId();
39             case ORDER_ID:
40                 return order.getId();
41             case DELIVERY_ADDRESS:
42                 return group.getAddress();
43             case STATUS:
44                 return group.getDeliveryStatus();
45             case LOAD_BALANCER_ID:
46                 return group.getLoadBalancerId();
47             case ORIGINAL_PIZZERIA:
48                 return group.getOriginalPizzeriaId();
49             default:
50                 throw new RuntimeException(UNHANDLEDCOLUMN);
51         }
52     }
53
54     public DeliveryGroupData getGroupOfRow(int rowIndex) {
55         synchronized (items) {
56             return new ArrayList<>(items.values()).get(rowIndex);
57         }
58     }
59 }