/**
 * RecipePanel.java
 *
 *
 * Caitlin Ross 
 * 100735219
 */

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

public class RecipePanel extends JPanel {
	
	private GridBagLayout layout = new GridBagLayout();
    private GridBagConstraints constraints = new GridBagConstraints();
    private MyRecipe recipe = new MyRecipe();
	
    public RecipePanel() {
    	setLayout(layout);
    	
    	//First column
    	addLabel("File Name", 0, 0, 3, 1, 15, 5);
    	addTextField("", 0, 1, 3, 1, 15, 5);
    	addLabel("Recipe Names", 0, 2, 3, 1, 15, 5);
    	addList(0, 3, 3, 3, 15, 30);
    	addLabel("Spice List", 0, 6, 3, 1, 15, 5);
    	addList(0, 7, 3, 1, 15, 30);
    	addButton("Open", 0, 9, 1, 1, 5, 15);
    	addButton("Save", 1, 9, 1, 1, 5, 15);
    	addButton("New", 2, 9, 1, 1, 5, 15);
    	
    	//Second Column
    	addLabel("Recipe Name", 3, 0, 1, 1, 20, 5);
    	addTextField(recipe.getRecipeName(), 3, 1, 1, 1, 20, 5);
    	addLabel("Contributor", 3, 2, 1, 1, 20, 5);
    	addTextField(recipe.getContributor(), 3, 3, 1, 1, 20, 10);
    	addLabel("Rating", 3, 4, 1, 1, 20, 10);
    	addTextField(recipe.getRating(), 3, 5, 1, 1, 20, 10);
    	addLabel("Spices", 3, 6, 1, 1, 20, 5);
    	addTextField(recipe.getSpices(), 3, 7, 1, 1, 20, 45);
    	
    	//Third Column
    	addRadioButton("Display Description", 4, 0, 1, 1, 65, 5);
    	addRadioButton("Display Ingredients", 4, 1, 1, 1, 65, 5);
    	addRadioButton("Display Directions", 4, 2, 1, 1, 65, 5);
    	addTextArea(recipe.getDescription(), 4, 3, 1, 7, 65, 80);
    }
    
    private void addTextArea(String text, int xpos, int ypos, int width, int height, int xweight, int yweight){
    	JTextArea textArea = new JTextArea();
    	textArea.setText(text);
    	textArea.setLineWrap(true);
    	textArea.setWrapStyleWord(true);
    	JScrollPane scrollPane = new JScrollPane(textArea,
              ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,
              ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
    	constraints.gridx = xpos;
    	constraints.gridy = ypos;
    	constraints.gridwidth = width;
    	constraints.gridheight = height;
    	constraints.fill = GridBagConstraints.BOTH;
    	constraints.weightx = xweight;
    	constraints.weighty = yweight;
    	constraints.insets = new Insets(5, 10, 5, 10);
    	layout.setConstraints(scrollPane, constraints);
    	add(scrollPane);
    }
    
    private void addRadioButton(String name, int xpos, int ypos, int width, int height, int xweight, int yweight){
    	JRadioButton button = new JRadioButton(name);
    	constraints.gridx = xpos;
    	constraints.gridy = ypos;
    	constraints.gridwidth = width;
    	constraints.gridheight = height;
    	constraints.weightx = xweight;
    	constraints.weighty = yweight;
    	constraints.insets = new Insets(5, 10, 5, 10);
    	layout.setConstraints(button, constraints);
    	add(button);
    }
    
    private void addTextField(String text, int xpos, int ypos, int width, int height, int xweight, int yweight ){
    	JTextField textField = new JTextField();
    	textField.setText(text);
    	textField.setPreferredSize(new Dimension(200, 20));
    	constraints.gridx = xpos;
    	constraints.gridy = ypos;
    	constraints.gridwidth = width;
    	constraints.gridheight = height;
    	constraints.fill = GridBagConstraints.HORIZONTAL;
    	constraints.weightx = xweight;
    	constraints.weighty = yweight;
    	constraints.anchor = GridBagConstraints.NORTHWEST;
    	constraints.insets = new Insets(5, 10, 5, 10);
    	layout.setConstraints(textField, constraints);
    	add(textField);
    }
    
    private void addLabel(String name, int xpos, int ypos, int width, int height, int xweight, int yweight){
    	JLabel label = new JLabel(name);
    	constraints.gridx = xpos;
    	constraints.gridy = ypos;
    	constraints.gridwidth = width;
    	constraints.gridheight = height;
    	constraints.weightx = xweight;
    	constraints.weighty = yweight;
    	constraints.anchor = GridBagConstraints.SOUTHWEST;
    	constraints.insets = new Insets(5, 10, 5, 10);
    	layout.setConstraints(label, constraints);
    	add(label);
    }
    
    private void addList(int xpos, int ypos, int width, int height, int xweight, int yweight){
    	JList list = new JList();
    	list.setPrototypeCellValue("xxxxxxxxxxxxxxx");
    	JScrollPane scrollPane = new JScrollPane(list,
              ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,
              ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
    	constraints.gridx = xpos;
    	constraints.gridy = ypos;
    	constraints.gridwidth = width;
    	constraints.gridheight = height;
    	constraints.fill = GridBagConstraints.BOTH;
    	constraints.weightx = xweight;
    	constraints.weighty = yweight;
    	constraints.insets = new Insets(5, 10, 5, 10);
    	layout.setConstraints(scrollPane, constraints);
    	add(scrollPane);
    }
    
    private void addButton(String name, int xpos, int ypos, int width, int height, int xweight, int yweight){
    	JButton button = new JButton(name);
    	constraints.gridx = xpos;
    	constraints.gridy = ypos;
    	constraints.gridwidth = width;
    	constraints.gridheight = height;
    	constraints.weightx = xweight;
    	constraints.weighty = yweight;
    	constraints.anchor = GridBagConstraints.CENTER;
    	constraints.insets = new Insets(5, 10, 5, 10);
    	layout.setConstraints(button, constraints);
    	add(button);
    }
    
}