/**
 * Grades.java
 * Written by: Don Jayakody
 * CPE 308
 */

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


public class Grades extends JPanel
                          implements ActionListener {
    JLabel picture;

    public Grades() {
    	super(new BorderLayout());
        
        
        JLabel username = new JLabel(" jhayes", JLabel.CENTER);
		JLabel selectClass = new JLabel("Select Class", JLabel.LEFT);
		JLabel selectView = new JLabel("Select View", JLabel.LEFT);
		
		
		String[] classStrings = { "Select Class","CPE 308", "CPE 101", "CSC 349", "CPE 464" };
     	JComboBox classList = new JComboBox(classStrings);
     	classList.setSelectedIndex(0);
     	

        String[] viewStrings = {"Select View", "Table View", "Graph View" };
        JComboBox viewList = new JComboBox(viewStrings);
        viewList.setSelectedIndex(0);
        viewList.addActionListener(this);

        //Set up the picture.
        picture = new JLabel();
        picture.setFont(picture.getFont().deriveFont(Font.ITALIC));
        picture.setHorizontalAlignment(JLabel.CENTER);
        //updateLabel(viewStrings[viewList.getSelectedIndex()]);
        picture.setBorder(BorderFactory.createEmptyBorder(10,0,0,10));

        //The preferred size is hard-coded to be the width of the
        //widest image and the height of the tallest image + the border.
        //A real program would compute this.
        //picture.setPreferredSize(new Dimension(177, 122+10));
        picture.setPreferredSize(new Dimension(250, 250+10));
        //Lay out the demo.
        
        add(username, BorderLayout.PAGE_START);
        add(classList,BorderLayout.WEST);
        add(viewList, BorderLayout.CENTER);
        add(picture, BorderLayout.PAGE_END);
        setBorder(BorderFactory.createEmptyBorder(20,20,20,20));
        this.setPreferredSize(new Dimension (400,400));
 
    }

    /** Listens to the combo box. */
    public void actionPerformed(ActionEvent e) {
        JComboBox cb = (JComboBox)e.getSource();
        String petName = (String)cb.getSelectedItem();
        updateLabel(petName);
    }

    protected void updateLabel(String name) {
        ImageIcon icon = createImageIcon("images/" + name + ".jpg");
        picture.setIcon(icon);
        picture.setToolTipText("A drawing of a " + name.toLowerCase());
        if (icon != null) {
            picture.setText(null);
        } else {
            picture.setText("Image not found");
        }
    }

    /** Returns an ImageIcon, or null if the path was invalid. */
    protected static ImageIcon createImageIcon(String path) {
        java.net.URL imgURL = Grades.class.getResource(path);
        if (imgURL != null) {
            return new ImageIcon(imgURL);
        } else {
            System.err.println("Couldn't find file: " + path);
            return null;
        }
    }

    /**
     * Create the GUI and show it.  For thread safety,
     * this method should be invoked from the
     * event-dispatching thread.
     */
 
    public static void createAndShowGUI() {
        //Create and set up the window.
        JFrame frame = new JFrame("Grades");
        //frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        //Create and set up the content pane.
        JComponent newContentPane = new Grades();
        newContentPane.setOpaque(true); //content panes must be opaque
        frame.setContentPane(newContentPane);

        //Display the window.
        frame.pack();
        frame.setVisible(true);
    }

    


}