package gradertool.admin;

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

import gradertool.gradebook.NewClassDisplay;
import gradertool.gradebook.NewClassUI;
import gradertool.gradebook.GradeSpreadsheetUI;

/****
 *
 * Quick Launch display is a quick protyotype of the quick launch menu for the
 * instructor. It is intended to be displayed in a top-level screen window, it extends
 * JFrame.
 */
public class QuickLaunchDisplay extends JFrame {

    /**
     * Constructor for the Quick Launch display.
     */
    public QuickLaunchDisplay() {

		  	setSize(200, 100);
			Panel box = new Panel();
			Panel outerBox = new Panel();
			
			box.setPreferredSize(new Dimension(200, 400));
			
			box.setLayout(new BoxLayout(box, BoxLayout.Y_AXIS));
			outerBox.setLayout(new BoxLayout(outerBox, BoxLayout.X_AXIS));
			
			setContentPane(outerBox);
			
			box.add(Box.createHorizontalStrut(3));
			Button buttonNewClass = new Button("New Class");
			//buttonNewClass.setPreferredSize(new Dimension(200, 100));
			box.add(buttonNewClass);
			box.add(Box.createHorizontalStrut(3));
			//box.add(Box.createRigidArea(new Dimension(10,10)));
			
			Button buttonOpenClass = new Button("Open Class");
			box.add(buttonOpenClass);
			box.add(Box.createHorizontalStrut(3));
			
			Button buttonRecentClass = new Button("Recent Class");
			box.add(buttonRecentClass);
			box.add(Box.createHorizontalStrut(3));
			
			Button buttonGradeTrends = new Button("Grade Trends");
			box.add(buttonGradeTrends);
			box.add(Box.createHorizontalStrut(3));
			
			outerBox.add(Box.createRigidArea(new Dimension(50,50)));
			outerBox.add(box);
			outerBox.add(Box.createRigidArea(new Dimension(100,50)));
		  
        setTitle("Quick Launch");

        newButtonAction(buttonNewClass);
	     openButtonAction(buttonOpenClass);
		  recentButtonAction(buttonRecentClass);
		  gradeTrendsButtonAction(buttonGradeTrends);
		  
        pack();
    }


	   
		
	/**
     * Add the 'New Class' button to the Quick Launch window.  
     */
    protected void newButtonAction(Button buttonNewClass) {
	 
        buttonNewClass.addActionListener(
            new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                   NewClassUI newClassUI = new NewClassUI();
                   newClassUI.getNewClassDisplay().setVisible(true);
                   setVisible(false);
                }
            }
        );
    }
	 
	/**
     * Add the 'Open Class' button to the Quick Launch window.  
     */
    protected void openButtonAction(Button buttonOpenClass) {
		  final Button item = buttonOpenClass;           // Used by JFileChooser for placement

        buttonOpenClass.addActionListener(
            new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    JFileChooser chooser = new JFileChooser();
                    chooser.showOpenDialog(item);
						  GradeSpreadsheetUI gSheet = new GradeSpreadsheetUI();
		              gSheet.getGradeSpreadsheetDisplay().setVisible(true);
                }
            }
        );
    }
	 
    /**
     * Add the 'Recent Classes' button to the Quick Launch window.  
     */
    protected void recentButtonAction(Button buttonRecentClass) {
	 
        buttonRecentClass.addActionListener(
            new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    /*
                     * Print a message
                     */
                    System.out.println("Show list of Recent Classes.");
                }
            }
        );
    }
	 
	/**
     * Add the 'Grade Trends Class' button to the Quick Launch window.  
     */
    protected void gradeTrendsButtonAction(Button buttonGradeTrends) {
	 
        buttonGradeTrends.addActionListener(
            new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    /*
                     * Print a message
                     */
                    System.out.println("Show Grade Trends.");
                }
            }
        );
    }
	 
}