]> git.somenet.org - pub/jan/sbc.git/blob - src/main/java/at/ac/tuwien/sbc/valesriegler/pizzeria/gui/tablemodels/DeliveryOrdersModel.java
[XVSM] Delivery in progress, Delivery done updates in UIs, Delivery logic
[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.types.DeliveryGroupData;
4 import at.ac.tuwien.sbc.valesriegler.types.Order;
5 import org.slf4j.Logger;
6 import org.slf4j.LoggerFactory;
7
8 import java.util.ArrayList;
9 import java.util.List;
10
11 public class DeliveryOrdersModel extends AbstractOrdersModel<DeliveryGroupData> {
12     private static final Logger log = LoggerFactory.getLogger(DeliveryOrdersModel.class);
13
14     private static final String ID = "Delivery ID";
15     private static final String ORDER_ID = "Order ID";
16     private static final String DELIVERY_ADDRESS = "Address";
17     private static final String STATUS = "Status";
18     private static final String LOAD_BALANCER_ID = "Moved by";
19     private static final String ORIGINAL_PIZZERIA = "Moved from";
20
21     private static final String[] COLUMNS = new String[] { ID, ORDER_ID, DELIVERY_ADDRESS, STATUS, LOAD_BALANCER_ID, ORIGINAL_PIZZERIA };
22
23     @Override
24     protected String[] getColumns() {
25         return COLUMNS;
26     }
27
28     @Override
29     public Object getValueAt(int rowIndex, int columnIndex) {
30         List<DeliveryGroupData> values = new ArrayList<>(items.values());
31         DeliveryGroupData group = values.get(rowIndex);
32         Order order = group.getOrder();
33         String wantedColumn = COLUMNS[columnIndex];
34         switch (wantedColumn) {
35             case ID:
36                 return group.getId();
37             case ORDER_ID:
38                 return order.getId();
39             case DELIVERY_ADDRESS:
40                 return group.getAddress();
41             case STATUS:
42                 return group.getDeliveryStatus();
43             case LOAD_BALANCER_ID:
44                 return group.getLoadBalancerId();
45             case ORIGINAL_PIZZERIA:
46                 return group.getOriginalPizzeriaId();
47             default:
48                 throw new RuntimeException(UNHANDLEDCOLUMN);
49         }
50     }
51
52     public DeliveryGroupData getGroupOfRow(int rowIndex) {
53         synchronized (items) {
54             return new ArrayList<>(items.values()).get(rowIndex);
55         }
56     }
57
58 //    public void updateInProgress(List<DeliveryGroupData> groupsInProgress) {
59 //        synchronized (items) {
60 //            for (DeliveryGroupData group : groupsInProgress) {
61 //                Order order = group.getOrder();
62 //                List<DeliveryGroupData> groups = new ArrayList<DeliveryGroupData>(items.values());
63 //                for (DeliveryGroupData groupData : groups) {
64 //                    Order orderOfGroup = groupData.getOrder();
65 //                    if (order.getId() == orderOfGroup.getId()) {
66 //                        orderOfGroup.setStatus(OrderStatus.DELIVERED);
67 //                        groupData.setServingWaiter(group.getServingWaiter());
68 //                    }
69 //                }
70 //            }
71 //        }
72 //
73 //        fireTableDataChanged();
74 //    }
75 }