import java.awt.*;
import java.awt.event.*;

// class SplineTestPanel
//
// Author:      Alexander Bogomolny, CTK Software, Inc.
// URL:         http://www.cut-the-knot.com
// Date:        November 30, 2000
// Copyright:   A. Bogomolny
//              Permission to use and modify the file is therefore granted
//              as long as this comment remains unchanged. Do this at your
//              own risk.
//
public class SplineTestPanel extends Panel implements ItemListener
{
    SplineTest m_Parent;

    Checkbox Derivative, Integral, Points, Shade;

    public SplineTestPanel(SplineTest parent)
    {
        super();

        m_Parent = parent;

        add(Derivative = new Checkbox("Show Derivative", null, false));
        Derivative.addItemListener(this);

        add(Integral = new Checkbox("Show Integral", null, false));
        Integral.addItemListener(this);

        add(Points = new Checkbox("Show Points", null, false));
        Points.addItemListener(this);

        add(Shade = new Checkbox("Shade graph", null, false));
        Shade.addItemListener(this);

        try
        {
            setBackground(new Color(Integer.parseInt(m_Parent.getParameter("BCOLOR"), 16)));
            setForeground(new Color(Integer.parseInt(m_Parent.getParameter("FCOLOR"), 16)));
        }
        catch (Exception e)
        {
            setBackground(Color.lightGray);
            setForeground(Color.black);
        }
    }

    public void itemStateChanged(ItemEvent event)
    {
        String s = (String)event.getItem();

        if (s.equals("Show Derivative"))
        {
            m_Parent.m_Canvas.ShowDerivative(Derivative.getState());
        }
        else if (s.equals("Show Integral"))
        {
            m_Parent.m_Canvas.ShowIntegral(Integral.getState());
        }
        else if (s.equals("Show Points"))
        {
            m_Parent.m_Canvas.ShowPoints(Points.getState());
        }
        else if (s.equals("Shade graph"))
        {
            m_Parent.m_Canvas.ShowShade(Shade.getState());
        }

        m_Parent.m_Canvas.repaint();
    }
}