// PaletteFrame.java
// Program allows the user to create a custom color.

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

public class PaletteFrame extends JFrame
{
  private MyColorChooser colorChooser;
  private DrawPanel drawPanel;
    
  PaletteFrame()
  {
    setTitle("PaletteFrame");
    setSize(200,300);
    setBackground(Color.white);
    setForeground(Color.black);
    addWindowListener(new WindowAdapter()
    {
      public void windowClosing(WindowEvent e)
      {
        System.exit(0);
      }
    });
    init();
    setVisible(true);
  }
  
  public void init()
  {
    colorChooser = new MyColorChooser();

    Container c = getContentPane();
    c.add( colorChooser, BorderLayout.SOUTH );

    final JSlider red = colorChooser.getRedSlider();
    red.addChangeListener(
      new ChangeListener()
      {
        public void stateChanged( ChangeEvent e )
        {
          drawPanel.setRed( red.getValue() );
        }
      });
    final JTextField redField = colorChooser.getRedDisplay();
    redField.addActionListener(
      new ActionListener()
      {
        public void actionPerformed( ActionEvent e )
        {
          drawPanel.setRed( Integer.parseInt( redField.getText() ) );
        }
      });
  
    final JSlider green = colorChooser.getGreenSlider();
    green.addChangeListener(
      new ChangeListener()
      {
        public void stateChanged( ChangeEvent e )
        {
          drawPanel.setGreen( green.getValue() );
        }
      });
    final JTextField greenField = colorChooser.getGreenDisplay();
    greenField.addActionListener(
      new ActionListener()
      {
        public void actionPerformed( ActionEvent e )
        {
          drawPanel.setGreen( Integer.parseInt( greenField.getText() ) );
        }
      });

    final JSlider blue = colorChooser.getBlueSlider();
    blue.addChangeListener(
      new ChangeListener()
      {
        public void stateChanged( ChangeEvent e )
        {
          drawPanel.setBlue( blue.getValue() );
        }
      });
    final JTextField blueField = colorChooser.getBlueDisplay();
    blueField.addActionListener(
      new ActionListener()
      {
        public void actionPerformed( ActionEvent e )
        {
          drawPanel.setBlue( Integer.parseInt( blueField.getText() ) );
        }
      });
  
    drawPanel = new DrawPanel( Color.black );
    c.add( drawPanel, BorderLayout.CENTER );
  } // end init

  public static void main(String args[])
  {
    new PaletteFrame();
  }
}


