1 package at.ac.tuwien.sbc.valesriegler.group.gui;
3 import java.util.HashMap;
7 import org.slf4j.Logger;
8 import org.slf4j.LoggerFactory;
10 import at.ac.tuwien.sbc.valesriegler.common.PizzaType;
11 import at.ac.tuwien.sbc.valesriegler.common.TableModel;
12 import at.ac.tuwien.sbc.valesriegler.group.Group;
14 public class GroupOverviewModel extends TableModel<Group> {
15 private static final Logger log = LoggerFactory.getLogger(GroupOverviewModel.class);
17 private static final String STATE = "State";
18 private static final String PIZZAS = "Pizzas";
19 private static final String SIZE = "Size";
20 private static final String ID = "ID";
21 private static final String[] COLUMNS = new String[] { ID, SIZE, PIZZAS, STATE };
24 protected String[] getColumns() {
28 public List<Group> getItems() {
33 public Object getValueAt(int rowIndex, int columnIndex) {
34 Group group = items.get(rowIndex);
35 String wantedColumn = COLUMNS[columnIndex];
36 switch (wantedColumn) {
38 int groupId = group.getId();
39 log.info("This is the group id : {}", groupId);
42 int groupSize = group.getSize();
43 log.info("This is the size : {}", groupSize);
46 return pizzaDisplay(group.getPizzas());
48 return group.getState();
50 throw new RuntimeException(UNHANDLEDCOLUMN);
56 * @return A display string for PizzaTypes.
58 * e.g. Cardinale, Cardinale, Margherita is displayed as
59 * "2xCARDINALE,1xMARGHERITA"
61 private String pizzaDisplay(List<PizzaType> pizzas) {
62 HashMap<PizzaType, Integer> pizzaCount = new HashMap<PizzaType, Integer>();
63 for (PizzaType pizzaType : pizzas) {
64 if (pizzaCount.containsKey(pizzaType)) {
65 pizzaCount.put(pizzaType, pizzaCount.get(pizzaType) + 1);
67 pizzaCount.put(pizzaType, 1);
69 Set<PizzaType> pizzaTypes = pizzaCount.keySet();
70 StringBuilder sb = new StringBuilder();
72 boolean multiplePizzas = false;
73 for (PizzaType pizzaType : pizzaTypes) {
77 multiplePizzas = true;
79 sb.append(pizzaCount.get(pizzaType) + "x");
80 sb.append(pizzaType.toString());
87 public void addItems(List<Group> newItems) {
88 log.info("addItems()");
89 super.addItems(newItems);
90 for (Group g : newItems) {