1 package at.ac.tuwien.sbc.valesriegler.pizzeria.gui.tablemodels;
3 import at.ac.tuwien.sbc.valesriegler.common.Util;
4 import at.ac.tuwien.sbc.valesriegler.types.DeliveryGroupData;
5 import at.ac.tuwien.sbc.valesriegler.types.Order;
6 import org.slf4j.Logger;
7 import org.slf4j.LoggerFactory;
9 import java.util.ArrayList;
10 import java.util.Collections;
11 import java.util.List;
13 public class DeliveryOrdersModel extends AbstractOrdersModel<DeliveryGroupData> {
14 private static final Logger log = LoggerFactory.getLogger(DeliveryOrdersModel.class);
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";
23 private static final String[] COLUMNS = new String[]{ORDER_ID, ID, DELIVERY_ADDRESS, STATUS, LOAD_BALANCER_ID,
27 protected String[] getColumns() {
32 public Object getValueAt(int rowIndex, int columnIndex) {
33 List<DeliveryGroupData> values = new ArrayList<>(items.values());
34 Collections.sort(values, Util.HAS_ORDER_COMPARATOR);
35 DeliveryGroupData group = values.get(rowIndex);
36 Order order = group.getOrder();
37 String wantedColumn = COLUMNS[columnIndex];
38 switch (wantedColumn) {
43 case DELIVERY_ADDRESS :
44 return group.getAddress();
46 return group.getDeliveryStatus();
47 case LOAD_BALANCER_ID :
48 return group.getLoadBalancerId();
49 case ORIGINAL_PIZZERIA :
50 return group.getOriginalPizzeriaId();
52 throw new RuntimeException(UNHANDLEDCOLUMN);
56 public DeliveryGroupData getGroupOfRow(int rowIndex) {
57 List<DeliveryGroupData> values = new ArrayList<>(items.values());
58 Collections.sort(values, Util.HAS_ORDER_COMPARATOR);
59 return values.get(rowIndex);