public void updateVisualRepresentation() { // Collection<ModifierButton> modifierButtons = buttonMap.values(); // for (ModifierButton modifierButton : modifierButtons) { // modifierButton.updateView(null); // } List<TicketItemModifierGroup> ticketItemModifierGroups = parentTicketItem.getTicketItemModifierGroups(); if (ticketItemModifierGroups != null) { for (TicketItemModifierGroup ticketItemModifierGroup : ticketItemModifierGroups) { List<TicketItemModifier> ticketItemModifiers = ticketItemModifierGroup.getTicketItemModifiers(); if (ticketItemModifiers != null) { int total = 0; int max = ticketItemModifierGroup.getMaxQuantity(); for (TicketItemModifier ticketItemModifier : ticketItemModifiers) { String key = ticketItemModifier.getItemId() + "_" + ticketItemModifier.getGroupId(); ModifierButton button = buttonMap.get(key); if (ticketItemModifier.getModifierType() != TicketItemModifier.NO_MODIFIER) { total += ticketItemModifier.getItemCount(); if (total > max) { ticketItemModifier.setModifierType(TicketItemModifier.EXTRA_MODIFIER); } else { ticketItemModifier.setModifierType(TicketItemModifier.NORMAL_MODIFIER); } } button.updateView(ticketItemModifier); } } } } }
void updateView(TicketItemModifier ticketItemModifier) { if (ticketItemModifier == null || ticketItemModifier.getModifierType() == TicketItemModifier.MODIFIER_NOT_INITIALIZED) { setBackground(null); // setIcon(null); return; } if (ticketItemModifier.getModifierType() == TicketItemModifier.NORMAL_MODIFIER) { // setIcon(normalIcon); setBackground(Color.GREEN.darker()); } else if (ticketItemModifier.getModifierType() == TicketItemModifier.NO_MODIFIER) { // setIcon(noIcon); setBackground(Color.RED.darker()); } else if (ticketItemModifier.getModifierType() == TicketItemModifier.EXTRA_MODIFIER) { // setIcon(extraIcon); setBackground(Color.ORANGE); } }
public void actionPerformed(ActionEvent e) { TicketItemModifierGroup ticketItemModifierGroup = parentTicketItem.findTicketItemModifierGroup(menuModifier, true); int modifierCount = ticketItemModifierGroup.countItems(true); int maxModifier = ticketItemModifierGroup.getMaxQuantity(); TicketItemModifier ticketItemModifier = ticketItemModifierGroup.findTicketItemModifier(menuModifier); TicketView ticketView = OrderView.getInstance().getTicketView(); if (ticketItemModifier == null) { TicketItemModifier m = ticketItemModifierGroup.addTicketItemModifier( menuModifier, modifierCount >= maxModifier ? TicketItemModifier.EXTRA_MODIFIER : TicketItemModifier.NORMAL_MODIFIER); updateView(m); ticketView.updateAllView(); ticketView.selectRow(m.getTableRowNum()); return; } int modifierType = TicketItemModifier.MODIFIER_NOT_INITIALIZED; if (ticketItemModifier.getModifierType() != null) { modifierType = ticketItemModifier.getModifierType().intValue(); } switch (modifierType) { case TicketItemModifier.MODIFIER_NOT_INITIALIZED: ticketItemModifier.setModifierType(TicketItemModifier.NORMAL_MODIFIER); updateVisualRepresentation(); ticketView.updateAllView(); ticketView.selectRow(ticketItemModifier.getTableRowNum()); break; case TicketItemModifier.NORMAL_MODIFIER: case TicketItemModifier.EXTRA_MODIFIER: ticketItemModifier.setModifierType(TicketItemModifier.NO_MODIFIER); updateVisualRepresentation(); ticketView.updateAllView(); ticketView.selectRow(ticketItemModifier.getTableRowNum()); break; case TicketItemModifier.NO_MODIFIER: ticketItemModifier.setModifierType(TicketItemModifier.MODIFIER_NOT_INITIALIZED); ticketItemModifierGroup.removeTicketItemModifier(ticketItemModifier); updateView(ticketItemModifier); updateVisualRepresentation(); ticketView.updateAllView(); ticketView.selectRow(ticketItemModifier.getTableRowNum() - 1); break; } }