package howto;

import java.awt.*;
import java.util.*;

public class HotSpot extends Observable
{
   private Coordinates _coord;
   private Dimensions _dim;

   public HotSpot()
   {
      _coord = new Coordinates(0, 0);
      _dim = new Dimensions(5, 5);
   }

   public HotSpot(Coordinates coord)
   {
      _coord = new Coordinates(coord);
      _dim = new Dimensions(5, 5);
   }

   public HotSpot(Coordinates coord, Dimensions dim)
   {
      _coord = new Coordinates(coord);
      _dim = new Dimensions(dim);
   }

   public Coordinates getCoordinates()
   {
      return new Coordinates(_coord);
   }

   public void setCoordinates(Coordinates coord)
   {
      _coord = new Coordinates(coord);

      setChanged();
   }

   public Dimensions getDimensions()
   {
      return new Dimensions(_dim);
   }

   public void setDimensions(Dimensions dim)
   {
      _dim = new Dimensions(dim);

      setChanged();
   }

   public void paint(Graphics g)
   {
      g.fillRect(_coord.x - _dim.w / 2,
                 _coord.y - _dim.h / 2,
                 _dim.w - 1,
                 _dim.h - 1);
   }

   public boolean isAt(Coordinates coord)
   {
      if ((coord.x >= _coord.x - _dim.w / 2) &&
          (coord.x <= _coord.x + (_dim.w - 1) / 2) &&
          (coord.y >= _coord.y - _dim.h / 2) &&
          (coord.y <= _coord.y + (_dim.h - 1) / 2))
      {
         return true;
      }

      return false;
   }
}
