public Special addPizzaToSpecial(Special special, PizzaSize size, double price) throws PizzaException { if ((special == null) || !(parentSystem.getPizzaStore().getSpecials().contains(special)) || (size == null) || !(parentSystem.getPizzaStore().getMenu().getPizzaSizes().contains(size)) || (price < 0) || ((Double) price == null)) { throw new PizzaException( "Incorrect parameter addPizzaToSpecial(<" + special.getSpecialName() + ">:Special, <" + size.getDesc() + ">:PizzaSize, <" + price + ">:double)"); } else { if (special.getSize() == null) { size.setPrice(price); special.addPizzaToSpecial(size, price); return special; } else { special.removePizzaSizeFromSpecial(); special.addPizzaToSpecial(size, price); return special; } } }
public Special createSpecialWithPizza(String name, PizzaSize size, double price) throws PizzaException { Special temp = new Special(name); if ((name.trim().equals("")) || (name == null) || (size == null) || !(parentSystem.getPizzaStore().getMenu().getPizzaSizes().contains(size)) || (price < 0) || ((Double) price == null)) { throw new PizzaException( "Incorrect parameter createSpecialWithPizza(<" + name.trim() + ">:String, <" + size.getDesc() + ">:PizzaSize, <" + price + ">:double)"); } else { // if special exists for size already, set that special's name to the new name. if (parentSystem.getPizzaStore().checkSpecialsForPizzaSize(size)) { temp = parentSystem.getPizzaStore().findSpecialBySize(size); temp.setSpecialName(name); } else { temp.addPizzaToSpecial(size, price); parentSystem.getPizzaStore().getSpecials().add(temp); } } return temp; }
@Override public void actionPerformed(ActionEvent actionEvent) { String command = actionEvent.getActionCommand(); System.out.println(command); switch (command) { case "comboBoxChanged": if (((JComboBox) components.get("typeComboBox")).getSelectedItem().equals("Side") || ((JComboBox) components.get("typeComboBox")).getSelectedItem().equals("Drink")) { components.get("priceContainer").setVisible(true); components.get("shortnameContainer").setVisible(false); } else if (((JComboBox) components.get("typeComboBox")).getSelectedItem().equals("Size")) { components.get("priceContainer").setVisible(true); components.get("shortnameContainer").setVisible(true); } else { components.get("priceContainer").setVisible(false); components.get("shortnameContainer").setVisible(true); } break; case "Back": manager.activateWindow(manager.MENU_EDIT, manager.MANAGE_MAIN); break; case "Delete": if (item != null) { model.getCatalog().deleteItem(item); } resetView(); break; case "Cancel": resetView(); break; case "Save": String itemName = ((JTextArea) components.get("itemNameEditText")).getText(); String shortName = ((JTextArea) components.get("shortNameEditText")).getText(); String priceString = ((JTextArea) components.get("priceEditText")).getText(); double price; try { switch (((JComboBox) components.get("typeComboBox")).getSelectedItem().toString()) { case "Topping": if (model.getCatalog().getEntireCatalog().contains(item)) { ((Topping) item).setFullName(itemName); ((Topping) item).setShortName(shortName); model.getCatalog().updateItem(((Topping) item).getItemID()); } else { item = new Topping(shortName, itemName); model.getCatalog().addItem(item); } break; case "Size": price = Double.parseDouble(priceString); if (model.getCatalog().getEntireCatalog().contains(item)) { ((PizzaSize) item).setFullName(itemName); ((PizzaSize) item).setShortName(shortName); ((PizzaSize) item).setPrice(price); model.getCatalog().updateItem(((PizzaSize) item).getItemID()); } else { item = new PizzaSize(shortName, itemName, price); model.getCatalog().addItem(item); } break; case "Sauce": if (model.getCatalog().getEntireCatalog().contains(item)) { ((Sauce) item).setFullName(itemName); ((Sauce) item).setShortName(shortName); model.getCatalog().updateItem(((Sauce) item).getItemID()); } else { item = new Sauce(shortName, itemName); model.getCatalog().addItem(item); } break; case "Side": price = Double.parseDouble(priceString); if (model.getCatalog().getEntireCatalog().contains(item)) { ((Side) item).setName(itemName); ((Side) item).setPrice(price); model.getCatalog().updateItem(((Side) item).getItemID()); } else { item = new Side(itemName, price); model.getCatalog().addItem(item); } break; case "Drink": price = Double.parseDouble(priceString); if (model.getCatalog().getEntireCatalog().contains(item)) { ((Drink) item).setName(itemName); ((Drink) item).setPrice(price); model.getCatalog().updateItem(((Drink) item).getItemID()); } else { item = new Drink(itemName, price); model.getCatalog().addItem(item); } break; } resetView(); } catch (NumberFormatException e) { JOptionPane.showMessageDialog( view, "Price must be a number", "Error", JOptionPane.PLAIN_MESSAGE); } break; } }