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

public class SquarePuzzleApp extends JFrame implements ActionListener{ 

    SquarePuzzle puzz;
    public SquarePuzzleDisplay disp;
    JMenuBar theBar;
    JMenu theMenu;

    private void newMenuItem(String s) {
        JMenuItem item;
        item = new JMenuItem(s);
        item.addActionListener(this);
        theMenu.add(item);
    }

    public SquarePuzzleApp(int i, int j){
        JMenuItem item;
        puzz = new SquarePuzzle(i,j);
        disp = new SquarePuzzleDisplay(puzz);
        theBar = new JMenuBar();
        theMenu = new JMenu("Options");
        newMenuItem("Scramble");
        newMenuItem("Order");
        newMenuItem("Quit");
        theBar.add(theMenu);
        setJMenuBar(theBar);
        getContentPane().add(disp);
        addWindowListener(new WindowAdapter() {
                public void windowClosing(WindowEvent e) {
                    System.exit(0);
                }
            });
        pack();
        setVisible(true);
    }

    public void actionPerformed(ActionEvent e) {
        JMenuItem source = (JMenuItem)(e.getSource());
        if (source.getText().equals("Scramble")) {
            puzz.randomizePosition();
            disp.updateTiles();
        } else if (source.getText().equals("Order")) {
            puzz.orderPosition();
            disp.updateTiles();
        } else if (source.getText().equals("Quit")) {
            System.exit(0);
        } else
            System.out.println("Error--unexpected action detected by SquarePuzzleApp.");
    }

    public static void main(String[] args) {
        SquarePuzzleApp app = new SquarePuzzleApp(4,4);
    }
}
