import java.text.*;
import javax.swing.*;
import java.awt.event.*;
public class Ch6Assignment7 extends JFrame implements ItemListener, ActionListener
{
//create the main panel, radio buttons, and text fields for the panel
JPanel mainPanel = new JPanel();
JPanel itemPanel = new JPanel();
String bagelNameString [] = {"Plain", "Egg", "Rye", "Salt", "Blueberry", "Garlic",
"Onion", "Sesame", "Poppy Seed", "The Works"};
JComboBox bagelComboBox = new JComboBox(bagelNameString);
JTextField bagelQuantityTextField = new JTextField("0",5);
JCheckBox creamCheeseButton = new JCheckBox("Cream Cheese");
String creamCheeseNameString [] = {"Plain", "Herb", "Garlic"};
JComboBox creamCheeseComboBox = new JComboBox(creamCheeseNameString);
JTextField creamCheeseQuantityTextField = new JTextField("0",5);
JTextField newItemTextField = new JTextField(10);
JRadioButton bagelRadioButton = new JRadioButton("Bagel");
JRadioButton creamRadioButton = new JRadioButton("Cream Cheese");
JRadioButton itemInvisibleRadioButton = new JRadioButton("");
ButtonGroup itemButtonGroup = new ButtonGroup();
JButton purchaseButton = new JButton("Purchase Items");
JButton clearButton = new JButton("Clear Items");
JButton summaryButton = new JButton("Summary of Sales");
JButton addButton = new JButton("Add an item");
JButton deleteButton = new JButton("Delete an item");
JTextArea outputTextArea = new JTextArea(20,30);
JScrollPane mainScrollPane = new JScrollPane(outputTextArea);
public static void main(String[] args)
{
// Create an object of the class
Ch6Assignment7 myBagelShop = new Ch6Assignment7();
myBagelShop.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public Ch6Assignment7()
{
//setting title, size of the designFrame
designFrame();
add(mainPanel);
setTitle("Bagel Shop");
setSize(350,600);
setVisible(true);
}
public void designFrame()
{
//add items to the panels
itemButtonGroup.add(bagelRadioButton);
itemButtonGroup.add(creamRadioButton);
itemButtonGroup.add(itemInvisibleRadioButton);
itemPanel.add(bagelRadioButton);
itemPanel.add(creamRadioButton);
mainPanel.add(new JLabel("Bagel Variety"));
mainPanel.add(bagelComboBox);
mainPanel.add(new JLabel("Bagel Quantity"));
mainPanel.add(bagelQuantityTextField);
creamCheeseComboBox.setEnabled(false);
creamCheeseQuantityTextField.setEditable(false);
mainPanel.add(creamCheeseButton);
mainPanel.add(creamCheeseComboBox);
mainPanel.add(new JLabel("Quantity"));
mainPanel.add(creamCheeseQuantityTextField);
mainPanel.add(itemPanel);
mainPanel.add(new JLabel(" New Item to Add"));
mainPanel.add(newItemTextField);
mainPanel.add(purchaseButton);
mainPanel.add(clearButton);
mainPanel.add(summaryButton);
mainPanel.add(addButton);
mainPanel.add(deleteButton);
mainPanel.add(mainScrollPane);
newItemTextField.addActionListener(this);
purchaseButton.addActionListener(this);
clearButton.addActionListener(this);
summaryButton.addActionListener(this);
addButton.addActionListener(this);
deleteButton.addActionListener(this);
creamCheeseButton.addItemListener(this);
bagelRadioButton.addItemListener(this);
creamRadioButton.addItemListener(this);
}
//Different actions performed when the buttons are pushed
public void actionPerformed(ActionEvent evt)
{
Object sourceObject = evt.getSource();
//if purchase button pushed everything sent to total class for calculation
if(sourceObject == purchaseButton)
{
total();
}
//if summary button pushed everything thing is sent to summary for calculation
else if(sourceObject == summaryButton)
{
summary();
}
//if clear button pushed everything thing is cleared
else if(sourceObject == clearButton)
{
clear();
}
//if bagel radio button is selected and add button is pushed items are added
if( bagelRadioButton.isSelected()&& sourceObject == addButton )
{
addItem();
}
//if bagel radio button is selected and delete button is pushed items are deleted
else if(bagelRadioButton.isSelected() && sourceObject == deleteButton)
{
deleteItem();
}
//if cream radio button is selected and add button is pushed items are added
if( creamRadioButton.isSelected() && sourceObject == addButton )
{
add2Item();
}
//if cream radio button is selected and delete button is pushed items are deleted
else if(creamRadioButton.isSelected() && sourceObject == deleteButton)
{
delete2Item();
}
}
public void addItem()
{
String inputString;
boolean foundBagelBoolean;
inputString = newItemTextField.getText();
//Check if the text field is not blank
if((!(inputString.equals(""))))
{
//checking for duplicate
foundBagelBoolean = checkInput(inputString);
displayBagelFound(foundBagelBoolean, inputString);
}
else
{
JOptionPane.showMessageDialog(null,"Enter a bagel type to add");
newItemTextField.requestFocus();
}
}
public void deleteItem()
{
int indexInteger, resultInteger;
indexInteger = bagelComboBox.getSelectedIndex();
String deleteString, outputString;
//checking to make sure object exists to delete
if(indexInteger != -1 )
{
deleteString = (String) bagelComboBox.getItemAt(indexInteger);
outputString = "Do wish to delete " + deleteString;
resultInteger = JOptionPane.showConfirmDialog(null,outputString,
"Confirmation",JOptionPane.YES_NO_OPTION);
if(resultInteger == JOptionPane.YES_OPTION)
{
bagelComboBox.removeItemAt(indexInteger);
}
}
else
{
JOptionPane.showMessageDialog(null,"Select an item to remove");
bagelComboBox.requestFocus();
}
}
public void add2Item()
{
String inputString;
boolean foundCreamBoolean;
inputString = newItemTextField.getText();
//Check if the text field is not blank
if((!(inputString.equals(""))))
{
//checking for duplicate
foundCreamBoolean = checkInput(inputString);
displayCreamFound(foundCreamBoolean, inputString);
}
else
{
JOptionPane.showMessageDialog(null,"Enter a type of Cream Cheese to add");
newItemTextField.requestFocus();
}
}
public void delete2Item()
{
int indexInteger, resultInteger;
indexInteger = creamCheeseComboBox.getSelectedIndex();
String deleteString, outputString;
//checking to make sure object exists to delete
if(indexInteger != -1 )
{
deleteString = (String) creamCheeseComboBox.getItemAt(indexInteger);
outputString = "Do wish to delete " + deleteString;
resultInteger = JOptionPane.showConfirmDialog(null,outputString,
"Confirmation",JOptionPane.YES_NO_OPTION);
if(resultInteger == JOptionPane.YES_OPTION)
{
creamCheeseComboBox.removeItemAt(indexInteger);
}
}
else
{
JOptionPane.showMessageDialog(null,"Select an item to remove");
creamCheeseComboBox.requestFocus();
}
}
//getting input from user and sending to calculation
public void total()
{
int bagelQuantityInteger, creamCheeseQuantityInteger;
double bagelDouble;
bagelQuantityInteger = Integer.parseInt(bagelQuantityTextField.getText());
creamCheeseQuantityInteger = Integer.parseInt(creamCheeseQuantityTextField.
getText());
Calculation myCalcs = new Calculation(bagelQuantityInteger,
creamCheeseQuantityInteger);
bagelDouble = myCalcs.getBagelCharge();
displayOutput(bagelQuantityInteger, creamCheeseQuantityInteger, bagelDouble);
}
//clearing all values
public void clear()
{
itemInvisibleRadioButton.setSelected(true);
bagelQuantityTextField.setText("0");
creamCheeseQuantityTextField.setText("0");
creamCheeseQuantityTextField.setEditable(false);
newItemTextField.setText("");
creamCheeseComboBox.setEnabled(false);
creamCheeseButton.setSelected(false);
outputTextArea.setText("");
bagelComboBox.requestFocus();
}
//different options for when the Cream Cheese button is selected
public void itemStateChanged(ItemEvent evt)
{
if(creamCheeseButton.isSelected())
{
creamCheeseComboBox.setEnabled(true);
creamCheeseQuantityTextField.setEditable(true);
}
else if(!creamCheeseButton.isSelected())
{
creamCheeseComboBox.setEnabled(false);
creamCheeseQuantityTextField.setEditable(false);
}
}
//checking to insure the object is found and no duplicates exist
public boolean checkInput(String userInputString)
{
boolean foundBoolean = false;
int indexInteger = 0;
String inputString = new String();
while(!foundBoolean && indexInteger < bagelComboBox.getItemCount())
{
inputString = (String) bagelComboBox.getItemAt(indexInteger);
if(userInputString.equalsIgnoreCase(inputString))
{
foundBoolean = true;
}
else
{
indexInteger++;
}
while(!foundBoolean && indexInteger < creamCheeseComboBox.getItemCount())
{
inputString = (String) creamCheeseComboBox.getItemAt(indexInteger);
if(userInputString.equalsIgnoreCase(inputString))
{
foundBoolean = true;
}
else
{
indexInteger++;
}
}}
return foundBoolean;
}
//display output of totals
public void displayOutput(int bagelQuantityInteger, int creamCheeseQuantityInteger,
double bagleChargeDouble)
{
Calculation myCalcs = new Calculation();
DecimalFormat formatDecimal = new DecimalFormat("$0.00");
DecimalFormat formatNumber = new DecimalFormat("0");
String outputString;
outputString = "Type of Bagel: " + bagelComboBox.getSelectedItem() + '\n' + "Quantity:" +
formatNumber.format(bagelQuantityInteger)+ '\n'+ "Cream Cheese: " +
creamCheeseComboBox.getSelectedItem()+ '\n' + "Quantity:" +
formatNumber.format(creamCheeseQuantityInteger)+ '\n' + "Bagels: " +
formatDecimal.format(myCalcs.getBagelTotal())+ '\n' + "Cream Cheese:"
+ formatDecimal.format(myCalcs.getCreamCheeseTotal())+ '\n' + "Total: " +
formatDecimal.format(myCalcs.getGrandTotalDouble()) + '\n';
outputTextArea.append(outputString);
}
public void summary()
{
Calculation myCalculations = new Calculation();
DecimalFormat formatDecimal = new DecimalFormat("$0.00");
DecimalFormat formatNumber = new DecimalFormat("0");
JOptionPane.showMessageDialog(null,"Total Revenue from Bagels:" +
formatDecimal.format(myCalculations.getBagelTotal())+'\n'+
"Total Revenue from Cream Cheese: " + formatDecimal.format
(myCalculations.getCreamCheeseTotal())+'\n'+ "Total Orders Placed: "
+ formatNumber.format(myCalculations.getGrandTotalInteger())+'\n'+ "Total Bagels " +
"Ordered: " + formatNumber.format(myCalculations.getTotalNumberOfBagelsInteger())
+'\n' + "Total Cream Cheese Ordered: " + formatNumber.format
(myCalculations.getTotalNumberOfCreamCheeseInteger())+'\n');
}
//validation for bagels
public void displayBagelFound(boolean bagelBoolean, String inputString)
{
if(bagelBoolean)
{
JOptionPane.showMessageDialog(null,"This bagel is already in the list");
newItemTextField.selectAll();
newItemTextField.requestFocus();
}
else
{
bagelComboBox.addItem(inputString);
JOptionPane.showMessageDialog(null,"This bagel is added to the list");
newItemTextField.setText("");
}
}
//validation for cream cheese
public void displayCreamFound(boolean creamBoolean, String inputString)
{
if(creamBoolean)
{
JOptionPane.showMessageDialog(null,"This Cream Cheese is already in the list");
newItemTextField.selectAll();
newItemTextField.requestFocus();
}
else
{
creamCheeseComboBox.addItem(inputString);
JOptionPane.showMessageDialog(null,"This Cream Cheese is added to the list");
newItemTextField.setText("");
}
}
} |