package uk.co.patrickhaston.mars;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Graphics;

public class MarsPersonFacePanel extends MPanel 
{
  private MarsModel theModel;
  private int personId;
  
  private boolean active;
  private int decision;
  public static int UNDECIDED = 0;
  public static int SUPPORT = 1;
  public static int OPPOSE = 2;
  
  public MarsPersonFacePanel(MarsModel model, int personIdNum)
  {
    theModel = model;
    personId = personIdNum;
    
    active = false;
    decision = UNDECIDED;
    
    this.setPreferredSize(new Dimension(70,120));
  }
  
  public void paintComponent(Graphics g)
  {
    int faceId = theModel.People.getFaceId(personId);
    int mood = theModel.People.getMood(personId);
    if( active )
    {
      g.setColor(Color.yellow);
    }
    else
    {
      g.setColor(Color.DARK_GRAY);
    }
    g.drawRect(0,0,70,120);
    g.drawRect(1,1,68,118);
    switch( decision )
    {
      case 0: // undecided - yellow
        g.setColor(Color.yellow);
        break;
      case 1: // support - green
        g.setColor(Color.green);
        break;
      case 2: // oppose - red
        g.setColor(Color.red);
        break;
    }
    g.fillRoundRect(3,102,64,16,2,2);

    g.setColor(Color.black);
  
    g.drawString(theModel.People.getName(personId),5,114);
    
    g.drawRect(2,2,66,98);

    theModel.Faces.paintAt(faceId, g, 3, 3, mood);
  }
  
  public int getPersonId()
  {
    return personId;
  }
  
  public void setActive(boolean a)
  {
    active = a;
  }
}
