Esempio n. 1
0
    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;
      }
    }