package slides;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

/**
 * The button panel for a slide presentation
 *
 * @author  Prof. David Bernstein, James Madison University
 * @version 1.0
 */
public class ButtonPanel extends JPanel
{
    private JButton         backwardB, forwardB;

    private static final Insets  margin = new Insets(0,0,0,0);


    /**
     * Default constructor
     */
    public ButtonPanel()
    {
	backwardB = createButton("backward");
	forwardB  = createButton("forward");

	performLayout();

	backwardB.setEnabled(true);
	forwardB.setEnabled(true);
    }
    
    
    /**
     * Add an ActionListener
     *
     * @param al   The listener
     */
    public void addActionListener(ActionListener al)
    {
	backwardB.addActionListener(al);
	forwardB.addActionListener(al);
    }




    /**
     * Create a button
     *
     * @param prefix   The button's identifier
     * @return         The button
     */
    private JButton createButton(String prefix)
    {
	JButton       b;
	
	b = new JButton();
	setupButton(b, prefix);
	return b;
    }




    /**
     * Set-up a button
     *
     * @param b        The button
     * @param prefix   The button's identifier
     */
    private void setupButton(AbstractButton b, String prefix)
    {
	ImageIcon     icon;
	
	icon = new ImageIcon(prefix+"out.gif");
	b.setIcon(icon);
	icon = new ImageIcon(prefix+"disabled.gif");
	b.setDisabledIcon(icon);
	b.setMargin(margin);
	b.setBorderPainted(false);
	b.setFocusPainted(false);
	b.setRolloverEnabled(false);
	b.setActionCommand(prefix);

	b.setBackground(null);
    }



    /**
     * Layout this component
     */
    private void performLayout()
    {
	setBackground(null);

	setLayout(new FlowLayout());
	add(backwardB);
	add(forwardB);
    }

}
