/**
 * This class creates a frame with a JEditorPane for loading HTML
 * help files
 */

import java.io.*;
import javax.swing.event.*;
import javax.swing.*;
import java.net.*;
import java.awt.event.*;
import java.awt.*;

public class Help extends JFrame implements ActionListener, HyperlinkListener
{
	private JEditorPane editorpane;
	private URL helpURL;

	public Help()
	{
		JFrame.setDefaultLookAndFeelDecorated(true);

		ImageIcon icon = new ImageIcon(ClassLoader.getSystemResource("Belief.ico"));

		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		setPreferredSize(new Dimension(850, 600));
		setMinimumSize(new Dimension(850, 600));
		setTitle("Belief - Help");
		setIconImage(icon.getImage());

		helpURL = ClassLoader.getSystemResource("Help/Help.html");

		editorpane = new JEditorPane();
		editorpane.setEditable(false);
		try
		{
			editorpane.setPage(helpURL);
		}
		catch (Exception e)
		{
			e.printStackTrace();
		}

		editorpane.addHyperlinkListener(this);

		getContentPane().add(new JScrollPane(editorpane));
		addButtons();

		pack();
		setVisible(true);
	}

	public void actionPerformed(ActionEvent evt)
	{
		String strAction = evt.getActionCommand();
		URL tempURL;

		try
		{
			if (strAction == "Contents")
			{
				tempURL = editorpane.getPage();
				editorpane.setPage(helpURL);
			}
			if (strAction == "Close")
			{
				processWindowEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
			}
		}
		catch (IOException ioe)
		{
			ioe.printStackTrace();
		}
	}

	public void hyperlinkUpdate(HyperlinkEvent he)
	{
		try
		{
			if (he.getEventType() == HyperlinkEvent.EventType.ACTIVATED)
			{
				editorpane.setPage(he.getURL());
			}
		}
		catch (IOException ioe)
		{
			ioe.printStackTrace();
		}
	}

	private void addButtons()
	{
		JButton btncontents = new JButton("Contents");
		btncontents.addActionListener(this);

		JButton btnclose = new JButton("Close");
		btnclose.addActionListener(this);

		JPanel panebuttons = new JPanel();
		panebuttons.add(btncontents);
		panebuttons.add(btnclose);

		getContentPane().add(panebuttons, BorderLayout.SOUTH);
	}
}
