]> git.somenet.org - pub/jan/sbc.git/blob - src/main/java/at/ac/tuwien/sbc/valesriegler/pizzeria/gui/tablemodels/PizzasOfOrderModel.java
Solve some bugs caused by incompatibilities of JMS and XVSM version
[pub/jan/sbc.git] / src / main / java / at / ac / tuwien / sbc / valesriegler / pizzeria / gui / tablemodels / PizzasOfOrderModel.java
1 package at.ac.tuwien.sbc.valesriegler.pizzeria.gui.tablemodels;
2
3 import java.util.List;
4
5 import at.ac.tuwien.sbc.valesriegler.common.TableModel;
6 import at.ac.tuwien.sbc.valesriegler.common.Util;
7 import at.ac.tuwien.sbc.valesriegler.types.Order;
8 import at.ac.tuwien.sbc.valesriegler.types.Pizza;
9 import at.ac.tuwien.sbc.valesriegler.types.PizzaOrder;
10 import at.ac.tuwien.sbc.valesriegler.types.PizzaOrderStatus;
11
12 public class PizzasOfOrderModel extends TableModel<Order> {
13         private static final String TYPE = "Type";
14         private static final String STATUS = "Status";
15         private static final String COOK = "Cook";
16
17         private static final String[] COLUMNS = new String[] { TYPE, STATUS, COOK };
18
19         private Order currentOrder;
20
21         public void setCurrentOrder(Order currentOrder) {
22                 this.currentOrder = currentOrder;
23
24                 fireTableDataChanged();
25         }
26
27         @Override
28         public Object getValueAt(int rowIndex, int columnIndex) {
29                 List<PizzaOrder> pizzaOrders = currentOrder.getOrderedPizzas();
30                 List<Pizza> pizzas = currentOrder.getCookedPizzas();
31
32                 PizzaOrder pizzaOrder = pizzaOrders.get(rowIndex);
33                 String wantedColumn = COLUMNS[columnIndex];
34                 switch (wantedColumn) {
35                 case TYPE:
36                         return pizzaOrder.getPizzaType();
37                 case STATUS:
38                         return pizzaOrder.getStatus();
39                 case COOK:
40                         if (pizzaOrder.getStatus() == PizzaOrderStatus.DONE && Util.useJMS) {
41                                 Pizza pizza = pizzas.get(rowIndex);
42                                 return Util.getId(pizza.getCookId());
43                         }
44                         else if(!Util.useJMS) return Util.getId(pizzaOrder.getCookId());
45                         return "";
46                 default:
47                         throw new RuntimeException(UNHANDLEDCOLUMN);
48                 }
49         }
50
51         @Override
52         protected String[] getColumns() {
53                 return COLUMNS;
54         }
55
56         @Override
57         public int getRowCount() {
58                 return currentOrder == null ? 0 : currentOrder.getOrderedPizzas().size();
59         }
60
61 }