package myuml;

import com.borland.jbcl.layout.XYConstraints;
import java.awt.Graphics2D;
import java.awt.Graphics;
import com.umlet.control.Constants;
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 'lifelines' </p>
 *
 * <p>Copyright: Copyright (c) 2007</p>
 *
 * <p>Company: UCLM</p>
 *
 * @version 1.0
 */
public class MyLifeLine extends MyObjects implements Serializable {

    private MyLine line;
    public ArrayList variables;

    /**
    * Crea un 'lifeline'
    *
    * @param c Coordenadas de la línea de vida
    */
    public MyLifeLine(XYConstraints c) {
        super(c);
        name = ":";
        line = new MyLine(new XYConstraints());
        variables = new ArrayList();
    }

    /**
    * Crea una línea de vida
    *
    * @param s nombre de la línea de vida
    * @param c coordenadas de la línea vertical de la línea de vida
    */
    public MyLifeLine(String s, XYConstraints c){
        super(c);
        name = s;
        //line = new MyLine(new XYConstraints());
        line = new MyLine(new XYConstraints());
    }

    /**
    * Método que dibuja la línea de vida
    *
    * @param g parámetro que contiene métodos para el dibujado del objeto
    */
    public void paint(Graphics g){

        Graphics2D g2 = (Graphics2D) g;

        g2.setColor(col);

        int yPos = 2*Constants.getFontsize();
        Constants.write(g2, name, (this.getWidth() / 2) + 5, yPos, true);

        g2.drawRect(0, 0, xyc.getWidth()-1, 4*Constants.getFontsize());

        line.setCol(col);

        line.xyc.setX(getWidth() / 2);
        line.xyc.setY(5*Constants.getFontsize());
        line.xyc.setWidth(1);
        line.xyc.setHeight(getHeight());

        line.paint(g);


    }

    public MyLine getLine(){
        return line;
    }

}
