/*
April 3, 2019.
 */

import java.awt.event.*;
import java.awt.*;
import javax.swing.*;

public class FlowerPizzaLive extends MouseAdapter implements ActionListener {
    String defaultRose = "I love roses";
    String defaultPizza = "I love pizza";
    JFrame f = new JFrame("Flowers and Pizza");
    JMenuBar mb = new JMenuBar();
    JMenu action = new JMenu("Action");
    JMenuItem suspend = new JMenuItem("Suspend");
    JMenuItem resume = new JMenuItem("Resume");
    JMenuItem exit=new JMenuItem("Exit");
    JTextField tf1 = new JTextField(defaultRose);
    JTextField tf2 = new JTextField(defaultPizza);
    JPanel textPanel = new JPanel();
    JPanel imgPanel = new JPanel();
    JLabel rose=new JLabel();
    JLabel pizza=new JLabel();
    ImageIcon roseImg=new ImageIcon("rose.jpg");
    ImageIcon pizzaImg=new ImageIcon("pizza.jpg");
    JLabel status=new JLabel("Suspended");
    JCheckBox  freeze=new JCheckBox("Freeze");
    boolean freezeStatus=false;

    Font font = new Font("Arial", Font.BOLD, 24);
    boolean active = false;

    public static void main(String[] args) {
        new FlowerPizzaLive();
    }

    public FlowerPizzaLive() {
        createMenu();
        createTextFields();
        createIcons();
        createFrame();
    } // End constructor()


    public void createMenu() {
        action.setFont(font);
        suspend.setFont(font);
        resume.setFont(font);
        exit.setFont(font);
        suspend.addActionListener(this);
        resume.addActionListener(this);
        exit.addActionListener(this);
        rose.addMouseListener(this);
        pizza.addMouseListener(this);
        action.add(suspend);
        action.add(resume);
        action.add(exit);
        mb.add(action);
        status.setFont(font);
        freeze.setFont(font);
        freeze.addActionListener(this);
        mb.add(status);
        mb.add(freeze);
    }// End createMenu()
    public void createIcons(){
        rose.setIcon(roseImg);
        pizza.setIcon(pizzaImg);
        rose.setHorizontalAlignment(JLabel.CENTER);
        pizza.setHorizontalAlignment(JLabel.CENTER);
        imgPanel.add(rose);
        imgPanel.add(pizza);
    }//End createIcons()

    public void createTextFields() {
        textPanel.setLayout(new GridLayout(1, 2, 5, 5));
        imgPanel.setLayout(new GridLayout(1, 2, 5, 5));
        tf1.setFont(font);
        tf2.setFont(font);
        tf1.setHorizontalAlignment(JTextField.CENTER);
        tf2.setHorizontalAlignment(JTextField.CENTER);
        textPanel.add(tf1);
        textPanel.add(tf2);
    }// End createTextFields()

    public void actionPerformed(ActionEvent e) {
        Object a = e.getSource();
        if (a == suspend) {
            active = false;
            status.setText("Suspended");
        } else if (a==resume){
            active = true;
            status.setText("Active");
        }else if (a==exit){
            System.exit(0);
        }
        else {
            freezeStatus=!freezeStatus;
        }
    }//End actionPerformed()
    public void mouseEntered(MouseEvent e) {
        Object o = e.getSource();
        if (freezeStatus) return;
        if (active) {
            if (o == rose) {
                tf1.setText("Roses are beautiful!");
            } else {
                tf2.setText("Pizza is great!");
            }
        }
    }
    public void mouseExited(MouseEvent e){
        Object o=e.getSource();
        if (active) {
            if (o == rose) {
                tf1.setText(defaultRose);
            } else {
                tf2.setText(defaultPizza);
            }
        }
    }
    public void createFrame(){
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setLayout(new GridLayout(2, 1, 5, 5));
        f.setPreferredSize(new Dimension(600, 200));
        f.add(textPanel);
        f.add(imgPanel);
        f.setJMenuBar(mb);
        f.pack();
        f.setVisible(true);
        f.setLocationRelativeTo(null);
    }// End createFrame()
}// End FlowerPizza class
