package myuml;

import com.umlet.control.Constants;
import java.awt.Graphics2D;
import java.awt.Graphics;
import javax.swing.JComponent;
import com.borland.jbcl.layout.*;
import java.io.Serializable;
import java.util.ArrayList;

/**
 * <p>Title: Generación de Coreografías de Servicios Web</p>
 *
 * <p>Description: Clase que gestiona el dibujado de los actores </p>
 *
 * <p>Copyright: Copyright (c) 2007</p>
 *
 * <p>Company: UCLM</p>
 *
 * @version 1.0
 */
public class MyActor extends MyObjects implements Serializable {

    public MyLine line;


    /**
     * Creación de un nuevo actor
     *
     * @param c coordenadas del actor
     */
    public MyActor(XYConstraints c) {
        super(c);
        line = new MyLine(new XYConstraints());
    }

    /**
   * Creación de un nuevo actor
   *
   * @param s nombre del actor
   * @param c coordenadas de la línea vertical del actor
   */
    public MyActor(String s, XYConstraints c){
        super(c);
        name = s;
        line = new MyLine(new XYConstraints());
    }


    /**
    * Método que dibuja los actores
    *
    * @param g parámetro que contiene métodos para la representación del actor
    */
    public void paint(Graphics g) {

        int startx = this.getWidth()/2;

        Graphics2D g2 = (Graphics2D) g;

        g2.setColor(col);

        if(name!=""){
            int yPos=7*Constants.getFontsize();
            Constants.write(g2, name, this.getWidth() / 2, yPos, true);
        }

        g2.drawOval(startx - Constants.getFontsize() / 2, 0, Constants.getFontsize(),
                    Constants.getFontsize());
        g2.drawLine(startx, Constants.getFontsize(), startx,
                    (int) (Constants.getFontsize() * 2.5));
        g2.drawLine(startx - 2 * Constants.getFontsize(),
                    (int) (Constants.getFontsize() * 1.3),
                    startx + 2 * Constants.getFontsize(),
                    (int) (Constants.getFontsize() * 1.3));

        // Feet
        g2.drawLine(startx, (int) (Constants.getFontsize() * 2.5),
                    startx - Constants.getFontsize(), Constants.getFontsize() * 5);
        g2.drawLine(startx, (int) (Constants.getFontsize() * 2.5),
                    startx + Constants.getFontsize(), Constants.getFontsize() * 5);

        line.setCol(col);

        line.xyc.setX(startx);
        line.xyc.setY(8*Constants.getFontsize());
        line.xyc.setWidth(1);
        line.xyc.setHeight(getHeight());
        line.paint(g);

    }

    public MyLine getLine(){
        return line;
    }

}
