package myuml;

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



/**
 * <p>Title: Hola a todos</p>
 *
 * <p>Description: este es el tutorial hola a todos</p>
 *
 * <p>Copyright: Copyright (c) 2005</p>
 *
 * <p>Company: Mi empresa</p>
 *
 * @author Mi nombre
 * @version 1.0
 */
public class MyExceptionFrame extends MyFrame implements Serializable {
    //Variable para controlar si se trata del primer Exception frame de la lista
    public boolean primero = true;

    //Variable que contiene el tipo de excepción tratada
    protected String exception = "";

    /**
     * Crea un nuevo frame
     *
     * @param c coordenadas del frame
     */
    public MyExceptionFrame(XYConstraints c, String tipo){
        super(c,tipo);
    }

    /**
     * Método que devuelve si es el prime frame de excepción
     *
     * @return primero del frame
     */
    public boolean getPrimero(){
        return primero;
    }


    /**
     * Método que establece si es el primer frame de excepción
     *
     * @param primero del frame
     */
    public void setPrimero(boolean b){
        primero = b;
    }

    /**
     * Método que devuelve la excepción que se le haya asociado al frame
     *
     * @return exception del frame
     */
    public String getException(){
        return exception;
    }


    /**
     * Método que permite asociar una excepción al frame con el que estemos
     * trabajando
     *
     * @param s exception del frame
     */
    public void setException(String s){
        guard = s;
    }


    public void paint(Graphics g){

          Graphics2D g2 = (Graphics2D) g;

          g2.setColor(col);

          String cad_frame;

          //Si es el primer frame debe tener otro recuadro exterior marcando
          //el comienzo del bloque de excepción
          if(primero){

              g2.drawString("Exception Block",-5,-10);

              g2.drawRect(-5,-10, xyc.getWidth() + 4, xyc.getHeight() + 4);

          }

          //Rectángulo que contiene el tipo de frame que se trata
          //Su anchura variará según la anchura total del frame
          g2.drawRect(0, 0, xyc.getWidth(), 15);
          g2.drawString("Exception"+" ["+exception+"]",5,10);


          //Rectángulo con la dimensión total del frame
          g2.drawRect(0, 0, xyc.getWidth() - 1, xyc.getHeight() - 1);

    }

}
