// Fig. 11.12: SelectColorDialog.java
// Modeless dialog that allows user to choose drawing color.
package com.deitel.jhtp2.ch11;
import java.awt.*;
import java.awt.event.*;
import com.deitel.jhtp2.ch11.CloseWindow;

public class SelectColorDialog extends Dialog
             implements ItemListener {
   private List colorList;
   private String colorNames[] =
      { "Black", "Blue", "Cyan", "Dark Gray", "Gray", "Green",
        "Light Gray", "Magenta", "Orange", "Pink", "Red",
        "White", "Yellow" };
   private Color colors[] =
      { Color.black, Color.blue, Color.cyan, Color.darkGray,
        Color.gray, Color.green, Color.lightGray, Color.magenta,
        Color.orange, Color.pink, Color.red, Color.white,
        Color.yellow };
   private Color currentColor;

   public SelectColorDialog( Frame parent, String title )    
   {
      super( parent, title, false );
      setSize( 275, 150 );
      addWindowListener( new CloseWindow() );

      // create a list with 5 items visible
      // do not allow multiple selections
      colorList = new List( 5, false );
      colorList.addItemListener( this );
      colorList.addItemListener( ( ItemListener ) parent );

      // add items to the list
      for ( int i = 0; i < colorNames.length; i++ )
         colorList.add( colorNames[ i ] );

      // add list to applet
      add( colorList, BorderLayout.CENTER );

      currentColor = colors[ 0 ];  // black
   }

   public void itemStateChanged( ItemEvent e )
   {
      currentColor = colors[ colorList.getSelectedIndex() ];
   }

   public Color getColor() { return currentColor; }
}
