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.GroupData;
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 OrdersOverviewModel extends AbstractOrdersModel<GroupData> {
14 private static final Logger log = LoggerFactory.getLogger(OrdersOverviewModel.class);
16 private static final String ID = "Order ID";
17 private static final String TABLE_ID = "Table ID";
18 private static final String GROUP_ID = "Group ID";
19 private static final String STATUS = "Status";
21 private static final String[] COLUMNS = new String[] { ID, TABLE_ID, GROUP_ID, STATUS };
24 public Object getValueAt(int rowIndex, int columnIndex) {
25 List<GroupData> values = new ArrayList<GroupData>(items.values());
26 Collections.sort(values, Util.HAS_ORDER_COMPARATOR);
27 GroupData group = values.get(rowIndex);
28 Order order = group.getOrder();
29 String wantedColumn = COLUMNS[columnIndex];
30 switch (wantedColumn) {
32 return String.format(Util.NUMBER_DISPLAY_FORMAT, order.getId());
34 return String.format(Util.NUMBER_DISPLAY_FORMAT, group.getTable().getId());
36 return String.format(Util.NUMBER_DISPLAY_FORMAT, order.getGroupId());
38 return order.getStatus();
40 throw new RuntimeException(UNHANDLEDCOLUMN);
44 public GroupData getGroupOfRow(int rowIndex) {
45 final List<GroupData> values = new ArrayList<GroupData>(items.values());
46 Collections.sort(values, Util.HAS_ORDER_COMPARATOR);
47 return new ArrayList<GroupData>(values).get(rowIndex);
51 protected String[] getColumns() {
55 public void updateGroupData(GroupData groupdata) {
56 synchronized (items) {
57 items.put(groupdata.getId(), groupdata);
60 fireTableDataChanged();