Example #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;
      }
    }
Example #2
0
  @Override
  public void doGoBack() {
    List<MenuItemModifierGroup> menuItemModifierGroups = parentMenuItem.getMenuItemModiferGroups();
    List<TicketItemModifierGroup> ticketItemModifierGroups =
        parentTicketItem.getTicketItemModifierGroups();

    boolean requiredModifierAdded = true;
    if (menuItemModifierGroups != null) {
      outer:
      for (MenuItemModifierGroup menuItemModifierGroup : menuItemModifierGroups) {
        int minQuantity = menuItemModifierGroup.getMinQuantity();
        if (minQuantity == 0) continue;

        if (ticketItemModifierGroups == null) {
          requiredModifierAdded = false;
          break outer;
        }

        for (TicketItemModifierGroup ticketItemModifierGroup : ticketItemModifierGroups) {
          if (ticketItemModifierGroup.countItems(false) < minQuantity) {
            requiredModifierAdded = false;
            break outer;
          }
        }
      }
    }

    if (!requiredModifierAdded) {
      int option =
          JOptionPane.showConfirmDialog(
              this,
              "Some required modifiers are not added, do you really want to go back?",
              "Confirm",
              JOptionPane.YES_NO_OPTION);
      if (option != JOptionPane.YES_OPTION) {
        return;
      }
    }

    fireModifierSelectionFinished();
  }