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; } }