package gradertool.curve;

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

/**
 * Set Find Gaps Window GUI based on section 2.6.3.2 of the requirements.
 */
public class SetFindGaps extends JFrame
{
   /**
    * Constructor of set find gaps curve GUI.
    */
   public SetFindGaps()
   {
      Box whole = new Box(BoxLayout.Y_AXIS);
      Box gapRow = new Box(BoxLayout.X_AXIS);
      gapRow.setMaximumSize(new Dimension(100, 40));
      
      JLabel gapLab = new JLabel("Gap List:");
      gapLab.setFont(new Font("Arial", Font.BOLD, 20));
      gapRow.add(gapLab);
          
      Box fill;
      
      whole.add(gapRow);
      
      Box rows = new Box(BoxLayout.Y_AXIS);
      Box row = new Box(BoxLayout.X_AXIS);
      row.setMaximumSize(new Dimension(589, 30));
      
      JTextField t = new JTextField("96-99%");
      t.setMaximumSize(new Dimension(100, 30));
      row.add(t);
      row.add(new JSeparator(SwingConstants.HORIZONTAL));
      row.add(new JToggleButton("A"));
      row.add(new JToggleButton("B"));
      row.add(new JToggleButton("C"));
      row.add(new JToggleButton("D"));
      row.add(new JToggleButton("F"));
      rows.add(row);
      
      fill = new Box(BoxLayout.Y_AXIS);
      fill.setMaximumSize(new Dimension(75,20));
      rows.add(fill);
      
      row = new Box(BoxLayout.X_AXIS);
      row.setMaximumSize(new Dimension(589, 30));
      t = new JTextField("83-89%");
      t.setMaximumSize(new Dimension(100, 30));
      row.add(t);
      row.add(new JSeparator(SwingConstants.HORIZONTAL));
      row.add(new JToggleButton("A"));
      row.add(new JToggleButton("B"));
      row.add(new JToggleButton("C"));
      row.add(new JToggleButton("D"));
      row.add(new JToggleButton("F"));
      rows.add(row);
      
      fill = new Box(BoxLayout.Y_AXIS);
      fill.setMaximumSize(new Dimension(75,20));
      rows.add(fill);      
      
      row = new Box(BoxLayout.X_AXIS);
      row.setMaximumSize(new Dimension(589, 30));
      t = new JTextField("78-81%");
      t.setMaximumSize(new Dimension(100, 30));
      row.add(t);
      row.add(new JSeparator(SwingConstants.HORIZONTAL));
      row.add(new JToggleButton("A"));
      row.add(new JToggleButton("B"));
      row.add(new JToggleButton("C"));
      row.add(new JToggleButton("D"));
      row.add(new JToggleButton("F"));
      rows.add(row);
      
      fill = new Box(BoxLayout.Y_AXIS);
      fill.setMaximumSize(new Dimension(75,20));
      rows.add(fill); 
 
      row = new Box(BoxLayout.X_AXIS);
      row.setMaximumSize(new Dimension(589, 30));
      t = new JTextField("66-70%");
      t.setMaximumSize(new Dimension(100, 30));
      row.add(t);
      row.add(new JSeparator(SwingConstants.HORIZONTAL));
      row.add(new JToggleButton("A"));
      row.add(new JToggleButton("B"));
      row.add(new JToggleButton("C"));
      row.add(new JToggleButton("D"));
      row.add(new JToggleButton("F"));
      rows.add(row);
      
      fill = new Box(BoxLayout.Y_AXIS);
      fill.setMaximumSize(new Dimension(75,20));
      rows.add(fill);      

      row = new Box(BoxLayout.X_AXIS);
      row.setMaximumSize(new Dimension(589, 30));
      t = new JTextField("54-64%");
      t.setMaximumSize(new Dimension(100, 30));
      row.add(t);
      row.add(new JSeparator(SwingConstants.HORIZONTAL));
      row.add(new JToggleButton("A"));
      row.add(new JToggleButton("B"));
      row.add(new JToggleButton("C"));
      row.add(new JToggleButton("D"));
      row.add(new JToggleButton("F"));
      rows.add(row);
      
      fill = new Box(BoxLayout.Y_AXIS);
      fill.setMaximumSize(new Dimension(75,20));
      rows.add(fill); 
      
      row = new Box(BoxLayout.X_AXIS);
      row.setMaximumSize(new Dimension(589, 30));
      t = new JTextField("49-52%");
      t.setMaximumSize(new Dimension(100, 30));
      row.add(t);
      row.add(new JSeparator(SwingConstants.HORIZONTAL));
      row.add(new JToggleButton("A"));
      row.add(new JToggleButton("B"));
      row.add(new JToggleButton("C"));
      row.add(new JToggleButton("D"));
      row.add(new JToggleButton("F"));
      rows.add(row);
      
      fill = new Box(BoxLayout.Y_AXIS);
      fill.setMaximumSize(new Dimension(75,20));
      rows.add(fill); 
      
      whole.add(rows);
      
      fill = new Box(BoxLayout.Y_AXIS);
      fill.setMaximumSize(new Dimension(75,20));
      whole.add(fill);      
      
      Box button = new Box(BoxLayout.X_AXIS);
      
      fill = new Box(BoxLayout.X_AXIS);
      fill.setMaximumSize(new Dimension(400, 28));
      button.add(fill);
     
      JButton appCurve = new JButton("Apply Curve");
      appCurve.setMaximumSize(new Dimension(140, 28));
      appCurve.addActionListener(new ApplyCurveButtonListener());
      button.add(appCurve);
      
      whole.add(button);
     
      add(whole);
              
      setSize(new Dimension(589, 408));
      setTitle("Set Letter Grade--CPE 308");
      setVisible(true); 
   }
   
   /**
    * Action listener for clicking apply curve button.
    */
   private class ApplyCurveButtonListener implements ActionListener
   {
      /**
       * Action from clicking button.
       * @param e clicking action.
       */
      public void actionPerformed(ActionEvent e)
      {
         setVisible(false);
      }
   }
}