/**
 * XXXX
 * Inserte aquí la descripción del tipo.
 * Fecha de creación: (10/05/07)
 */    
package com.ejie.p06b.tags;

import java.util.ArrayList;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;

import com.ejie.p06b.datatype.logic.P06BError;
import com.ejie.p06b.general.P06BConstantes;
import com.ejie.p06b.util.P06BResources;

public class P06BValidationTag extends TagSupport{
	private String name;
	   
	public void setName(String name){
        this.name = name;
    }
	
	public int doStartTag() throws JspException {
	    try{
	    	HttpServletRequest request = (HttpServletRequest)pageContext.getRequest();
	    	P06BResources res = (P06BResources)request.getSession().getAttribute(P06BConstantes.P06B_RES_SES_ERRORES);
	    	ArrayList listaErrores = (ArrayList)request.getAttribute(name);
	    	if(listaErrores==null 
	    			|| listaErrores.size()==0){
	    		pageContext.getOut().print("");
	    	}
	    	else{
	    		String htmlError = "";
	    		htmlError+="<tr>"; 
	    		htmlError+="  <td width='100%'>"; 
	    		htmlError+="	<table style='text-align: left;font-size: 11px;border: 1px solid red;width: 100%;'>"; 
	    		String campo = "";
	    		for(int i=0;i<listaErrores.size();i++){
	    			P06BError error = (P06BError)listaErrores.get(i);
	    			if(campo.equals(error.getNombreCampo())){
	    				//Para que quede mejor en la pantalla
	    				//Lo comento porque dan problemas los ":"
	    				//campo = "";
	    				campo = error.getNombreCampo();
	    			}else{
	    				campo = error.getNombreCampo();
	    			}
	    			String desc = res.get(error.getCodigo());
	    			htmlError+="	<tr>"; 
	    			htmlError+="	  <td style='padding: 5px;' width='40%'>";
	    			htmlError+= 			"<b>" + campo + "</b>" + ": "; 
	    			htmlError+="	  </td>";
	    			htmlError+="	  <td style='padding: 5px;' width='60%'>";
	    			htmlError+= 			desc; 
	    			htmlError+="	  </td>";
	    			htmlError+="	</tr>";
	    		}
	    		htmlError+="	</table>"; 
	    		htmlError+="	</div>"; 
	    		htmlError+="   </td>"; 
	    		htmlError+="</tr>"; 
	    		htmlError+="<tr>";
	    		htmlError+="  <td height='20'></td>";
	    		htmlError+="</tr>";
	    		pageContext.getOut().print(htmlError);
	    	}
	    } catch (Exception e) {
	        throw new JspException ("Error: IOException" + 
			e.getMessage());
	    }
	    return SKIP_BODY;
	}
	
    public int doEndTag() throws JspException {
        return EVAL_PAGE;
    }
}
