package gradertool.gradebook;

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

/**
 * NewClassDisplay
 */
public class LogInDisplay extends JFrame {
   /**
    * Construct this, per the design explained in the class comment.
    */
   public LogInDisplay() {
      JPanel outerBox = new JPanel();
      Box loginBox = Box.createVerticalBox();
      Box buttonBox = Box.createHorizontalBox();
      Box userBox = Box.createHorizontalBox();
      Box passBox = Box.createHorizontalBox();
      
      loginBox.setPreferredSize(new Dimension(300, 200));
      
      setContentPane(outerBox);
      
      buttonBox.setAlignmentX(Component.LEFT_ALIGNMENT);
      
      // set up user box
      JLabel userLabel = new JLabel("username:  ");
      JTextField userTextField = new JTextField();
      userLabel.setForeground(Color.black);
      
      userTextField.setMaximumSize(new Dimension(200, 25));
      
      userBox.add(userLabel);
      userBox.add(userTextField);
      
      // set up pass box
      JLabel passLabel = new JLabel("password:  ");
      JPasswordField passField = new JPasswordField();
      passLabel.setForeground(Color.black);
      
      passField.setMaximumSize(new Dimension(200, 25));
      
      passBox.add(passLabel);
      passBox.add(passField);
      
      // set up buttons box (left to right)
      Button buttonCancel = new Button("Cancel");
      buttonCancel.setMaximumSize(new Dimension(100, 35));
      buttonBox.add(buttonCancel);
      
      Button buttonLogin = new Button("Log In");
      buttonLogin.setMaximumSize(new Dimension(100, 35));
      buttonBox.add(buttonLogin);
      
      // set up login box (top to bottom)
      loginBox.add(Box.createVerticalStrut(25));
      loginBox.add(userBox);
      loginBox.add(Box.createVerticalStrut(25));
      loginBox.add(passBox);
      loginBox.add(Box.createVerticalStrut(25));
      loginBox.add(buttonBox);
      loginBox.add(Box.createVerticalStrut(5));
      
      
      
      // set up outer box (top to bottom)
      outerBox.add(Box.createHorizontalStrut(20));
      outerBox.add(loginBox);
      
      setTitle("SIS Log In");
      
      cancelButtonAction(buttonCancel);
      loginButtonAction(buttonLogin);
      
      pack();
   }

   /**
    * Add the 'Cancel' button.
    */
   protected void cancelButtonAction(Button buttonCancel) {
      buttonCancel.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            NewClassUI newClassUI = new NewClassUI();
            newClassUI.getNewClassDisplay().setVisible(true);
            setVisible(false);
         }
      });
   }

   /**
    * Add the 'Log In' button.
    */
   protected void loginButtonAction(Button buttonLogin) {
      buttonLogin.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            NewClassUI newClassUI = new NewClassUI();
            newClassUI.getImportDisplay().setVisible(true);
            setVisible(false);
         }
      });
   }
}