/*
        FileName: QueryBox.java
        Name: Todd Klasik
        Class: Artificial Intelligence
        Date: December 7, 2005

        This is a subclass of Sudoku.java that edits box values w/o the incrementing annoyingness.
*/

import javax.swing.*; //we gonna use da window creation stuff
import java.awt.*;
import java.awt.event.*;

public class QueryBox extends JFrame {
        
        private JButton OKbutton;
        queryOKHandler qOKHandler;
        private JTextField ValueBox;
        
        public QueryBox(JButton sentButton) {
                setTitle("What value?");
                
                Container queryCan = getContentPane();
                queryCan.setLayout(new GridLayout(2,1));
                
                ValueBox = new JTextField(5);
                qOKHandler = new queryOKHandler(sentButton);
                OKbutton = new JButton("Set Value");
                OKbutton.addActionListener(qOKHandler);
                
                queryCan.add(ValueBox);
                queryCan.add(OKbutton);
                
                setSize(200, 100);      //size it so ie doesnt look like crap
                setVisible(true);       //make it visible
                setDefaultCloseOperation(EXIT_ON_CLOSE);        //set that up too
        }
        
        private class queryOKHandler implements ActionListener {
                JButton sentButton;
                public queryOKHandler(JButton a) {
                        sentButton = a;
                }
                
                public void actionPerformed(ActionEvent e) {
                        if(ValueBox.getText().compareTo("") == 0) {
                                sentButton.setText("");
                                setVisible(false); //I hesitate to do this...but i dont know how to close these otherwise.
                                return;
                        }
                        int value = Integer.parseInt(ValueBox.getText());
                        if(value > 0 && value < 10) {
                                sentButton.setText(value + "");
                                setVisible(false);
                                return;
                        } else {
                                JOptionPane.showMessageDialog(null,"Please Enter a valid value! (10 > x > 0)","Oops!",JOptionPane.ERROR_MESSAGE);  //error window
                        }
                        
                }
        }
        
}