/* File: ContentPane.java
 * Author: Jason Gookins
 * Description: This class builds the main window's content pane.
 */

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
 
public class ContentPane extends JPanel
{
	/************************
	 ** Instance Variables **
	 ************************/

	private ListPane listPane;
	private NetworkPane networkPane;
	private JButton listButton;



	/**********************
	 ** Main Constructor **
	 **********************/

	public ContentPane(BeliefListener beliefListener)
	{
		setLayout(new GridBagLayout());
		GridBagConstraints c = new GridBagConstraints();

		listPane = new ListPane(beliefListener);
		listPane.setPreferredSize(new Dimension(0, this.getHeight()));
		listPane.setMinimumSize(new Dimension(0, this.getHeight()));
		c.gridx = 0;
		c.gridy = 0;
		c.gridwidth = 1;
		c.gridheight = 1;
		c.fill = GridBagConstraints.BOTH;
		add(listPane, c);

		listButton = new JButton();
		listButton.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
		listButton.setPreferredSize(new Dimension(10, this.getHeight()));
		listButton.setMinimumSize(new Dimension(10, this.getHeight()));
		listButton.addActionListener(beliefListener);
		c.gridx = 1;
		c.gridy = 0;
		c.gridwidth = 1;
		c.gridheight = 1;
		c.fill = GridBagConstraints.BOTH;
		add(listButton, c);

		networkPane = new NetworkPane(beliefListener);
		networkPane.setPreferredSize(new Dimension(10000, 10000));
		JScrollPane networkScrollPane = new JScrollPane(networkPane);
		networkScrollPane.getVerticalScrollBar().setUnitIncrement(25);
		networkScrollPane.getHorizontalScrollBar().setUnitIncrement(25);
		JPanel editPane = new JPanel(new BorderLayout());
		editPane.add(networkScrollPane, BorderLayout.CENTER);
		c.gridx = 2;
		c.gridy = 0;
		c.gridwidth = 1;
		c.gridheight = 1;
		c.weightx = 1.0;
		c.weighty = 1.0;
		c.fill = GridBagConstraints.BOTH;
		add(editPane, c);
	}



	/***************
	 ** Accessors **
	 ***************/

	public ListPane getListPane()
	{
		return this.listPane;
	}

	public JButton getListButton()
	{
		return this.listButton;
	}

	public NetworkPane getNetworkPane()
	{
		return this.networkPane;
	}
}