/* File: AdminChoicePane.java
 * Author: Jason Gookins
 * Description: Displays the various options that an admin has at their disposal.
 */

import java.awt.CardLayout;
import java.awt.Dimension;
import java.awt.Insets;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JPanel;

public class AdminChoicePane extends JPanel implements ActionListener
{
	/************************
	 ** Instance Variables **
	 ************************/

	private Belief belief;
	private JButton addNewUserButton, editUserButton, deleteUserButton, editPermissionsButton, logOutButton;



	/**********************
	 ** Main Constructor **
	 **********************/

	public AdminChoicePane(Belief belief)
	{
		this.belief = belief;

		setLayout(new GridBagLayout());
		GridBagConstraints c = new GridBagConstraints();

		addNewUserButton = new JButton("Add New User");
		addNewUserButton.setPreferredSize(new Dimension(200, 60));
		addNewUserButton.setMinimumSize(new Dimension(200, 60));
		addNewUserButton.addActionListener(this);
		c.gridx = 0;
		c.gridy = 0;
		c.gridwidth = 1;
		c.gridheight = 1;
		c.insets = new Insets(10, 10, 10, 10);
		c.fill = GridBagConstraints.BOTH;
		add(addNewUserButton, c);

		editUserButton = new JButton("Edit User");
		editUserButton.setPreferredSize(new Dimension(200, 60));
		editUserButton.setMinimumSize(new Dimension(200, 60));
		editUserButton.addActionListener(this);
		c.gridy = 1;
		add(editUserButton, c);

		deleteUserButton = new JButton("Delete User");
		deleteUserButton.setPreferredSize(new Dimension(200, 60));
		deleteUserButton.setMinimumSize(new Dimension(200, 60));
		deleteUserButton.addActionListener(this);
		c.gridy = 2;
		add(deleteUserButton, c);

		editPermissionsButton = new JButton("Edit Permissions");
		editPermissionsButton.setPreferredSize(new Dimension(200, 60));
		editPermissionsButton.setMinimumSize(new Dimension(200, 60));
		editPermissionsButton.addActionListener(this);
		c.gridy = 3;
		add(editPermissionsButton, c);

		logOutButton = new JButton("Log Out");
		logOutButton.setPreferredSize(new Dimension(200, 60));
		logOutButton.setMinimumSize(new Dimension(200, 60));
		logOutButton.addActionListener(this);
		c.gridy = 4;
		add(logOutButton, c);
	}



	/*******************
	 ** Action Events **
	 *******************/

	public void actionPerformed(ActionEvent evt)
	{
		CardLayout mainLayout = (CardLayout)belief.getContentPane().getLayout();

		if (evt.getSource().equals(addNewUserButton))
		{
			mainLayout.show(belief.getContentPane(), "addUserPane");
			belief.getAddUserPane().getUsernameTextField().requestFocus();
		}
		else if (evt.getSource().equals(editUserButton))
		{
			mainLayout.show(belief.getContentPane(), "editUserPane");
			belief.getEditUserPane().initialize();
		}
		else if (evt.getSource().equals(deleteUserButton))
		{
			mainLayout.show(belief.getContentPane(), "deleteUserPane");
			belief.getDeleteUserPane().initialize();
		}
		else if (evt.getSource().equals(editPermissionsButton))
		{
			mainLayout.show(belief.getContentPane(), "editPermissionsPane");
			belief.getEditPermissionsPane().initialize();
		}
		else if (evt.getSource().equals(logOutButton))
		{
			mainLayout.show(belief.getContentPane(), "loginPane");
			belief.getLoginPane().getUsernameTextField().requestFocus();
		}
	}
}