import java.awt.Image;

/**
 * <P>DoorCanvas adapts ImageCanvas for LetsMakeADealApplet.  It
 * stores the various door Images and maintains state.</P>
 *
 * @author Mark L. Irons
 * @version 1.0
 * @date 18-11-1998
 */
public class DoorCanvas extends ImageCanvas
{
  Image currentImage_    = null;
  Image unselectedImage_ = null;
  Image selectedImage_   = null;
  Image badImage_        = null;

  /**
   * Provided for convenience only.  DoorCanvas should be initialized
   * by calling a constructor with parameters.
   */
  public DoorCanvas()
  {
  }

  /**
   * Creates a DoorCanvas.
   *
   * @param handler a callback that handles events from this object
   * @param unselected unselected door Image
   * @param selected selected door Image
   * @param bad booby prize door Image
   */
  public DoorCanvas(ImageCanvasEventHandler handler,
                    Image unselected,
                    Image selected,
                    Image bad)
  {
    // create the ImageCanvas part
    super(handler,unselected);
    // set the Images
    unselectedImage_ = unselected;
    selectedImage_ = selected;
    badImage_ = bad;
    currentImage_ = unselectedImage_;
  }

  /**
   * Sets the DoorCanvas to the unselected state
   */
  public void setUnselected()
  {
    currentImage_ = unselectedImage_;
    setImage(currentImage_);
    draw();
  }

  /**
   * Sets the DoorCanvas to the selected state
   */
  public void setSelected()
  {
    currentImage_ = selectedImage_;
    setImage(currentImage_);
    draw();
  }

  /**
   * Sets the DoorCanvas to the revealed booby prize state
   */
  public void setBad()
  {
    currentImage_ = badImage_;
    setImage(currentImage_);
    draw();
  }

  /**
   * Is this door the booby prize?
   */
  public boolean isBad()
  {
    return (currentImage_ == badImage_);
  }

} // class DoorCanvas