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 = "Load Balancer";
21 private static final String ORIGINAL_PIZZERIA = "From";
22 private static final String TARGET_PIZZERIA = "To";
24 private static final String[] COLUMNS = new String[]{ORDER_ID, ID, DELIVERY_ADDRESS, STATUS, LOAD_BALANCER_ID,
25 ORIGINAL_PIZZERIA, TARGET_PIZZERIA};
28 protected String[] getColumns() {
33 public Object getValueAt(int rowIndex, int columnIndex) {
34 List<DeliveryGroupData> values = new ArrayList<DeliveryGroupData>(items.values());
35 Collections.sort(values, Util.HAS_ORDER_COMPARATOR);
36 DeliveryGroupData group = values.get(rowIndex);
37 Order order = group.getOrder();
38 String wantedColumn = COLUMNS[columnIndex];
39 switch (wantedColumn) {
44 case DELIVERY_ADDRESS :
45 return group.getAddress();
47 return group.getDeliveryStatus();
48 case LOAD_BALANCER_ID :
49 return group.getLoadBalancerId();
50 case ORIGINAL_PIZZERIA :
51 return group.getOriginalPizzeriaId();
52 case TARGET_PIZZERIA :
53 return (group.getOriginalPizzeriaId() != null) ? group.getPizzeriaId() : "";
55 throw new RuntimeException(UNHANDLEDCOLUMN);
59 public DeliveryGroupData getGroupOfRow(int rowIndex) {
60 List<DeliveryGroupData> values = new ArrayList<DeliveryGroupData>(items.values());
61 Collections.sort(values, Util.HAS_ORDER_COMPARATOR);
62 return values.get(rowIndex);