package q02b.exe.comun;





import java.util.StringTokenizer;



import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpSession;



import q02b.exe.seguridad.beans.Q02bSeguridadBean;

import q02b.exe.utils.Q02bConstantes;

import q02b.exe.utils.Q02bFormatData;

import es.ejie.frmk.infraestructura.internacionalizacion.Q70GestorMensajesi18n;

import es.ejie.frmk.infraestructura.traza.Q70Traza;

import es.ejie.frmk.listeners.base.Q70ListenerUtils;

import es.ejie.frmk.presentacion.sesiondatos.Q70ContextoEJIE;

public class Q02bFiltro {

	

//	Variables que no se modifican

    //private static String COMPONENTE = "FILTRO";

    

	//Variable para mostrar las trazas

    //private static Q70Traza tr = Q70Traza.getSingleton();

    

	//Bean de seguridad para acceder a la información del usuario

    protected Q02bSeguridadBean beanSeguridad = null;

	 /**

     * Método que genera el migas de pan de la aplicación para el titulo

     * @param HttpServletRequest request, Q70ContextoEJIE contexto

     * @throws Exception

     */

    public void crearMigasPanTitle(HttpServletRequest request, Q70ContextoEJIE contexto) throws Exception {

    	   //Se definen variables que no se van a modificar

    	   final String MIGAS_PAN_TITLE 						= "migasPanTitle";

    	  

    	   //Se definen todas las variables

    	   StringBuffer RECURSOS_LOCALIZADORES	= new StringBuffer("recursosLocalizadores");

    	   String rutaCompleta				= null;	

	       String localizadorModulo 		= null;

	       String localizadorSeccion 		= null;

	       String localizadorAccion			= null;

	       //Se obtiene la sesión de la request

	       HttpSession 		session 		= request.getSession();

	       //Se obtiene la ruta completa: será de la forma s99bXXXXWar/YYYYJSP/s99bZZZZ.do

	       rutaCompleta =(String)request.getRequestURI().substring(1);

	       //Se comprueba que la ruta exista

	       if(!Q02bFormatData.esVacio(rutaCompleta) && contexto!=null){

	    	    //Se obtiene la aplicacion

	    	   	String aplicacion    = (String)contexto.get("aplicacion");

	    	   	//Se indica el nombre del fichero

                RECURSOS_LOCALIZADORES  = new StringBuffer(aplicacion).append(RECURSOS_LOCALIZADORES);

	    	    //Se obtiene el idioma

	    	    String idioma 		 = (String)contexto.get("idioma");

	    	    //1.-INICIO: MODULO (grupo de menú)

	    	    //Para obtener el nombre de menú utilizaremos el localizador de sección. Luego en un fichero de propiedades 

	    	    //se definen qué secciones van en cada módulo

	    	  	//INICIO: SECCIÓN 

	       		//Se modifica la ruta ahora se tiene: YYYYJSP/s99bZZZZ.do

	       		rutaCompleta 		= rutaCompleta.substring(rutaCompleta.indexOf("/")+1,rutaCompleta.length());

	       		//Se obtiene la sección: YYYY

	       		localizadorSeccion 	= rutaCompleta.substring(0,rutaCompleta.indexOf("JSP"));

       			//Se convierte a minúsculas

       			localizadorSeccion  = localizadorSeccion.toLowerCase();

       			//con el localizador de seccción recupermos el módulo

       			localizadorModulo 	= Q70GestorMensajesi18n.getSingleton().getMessage(RECURSOS_LOCALIZADORES.toString(),"localizador.modulo."+localizadorSeccion,idioma);

       			//INICIO: ACCIÓN

       			String localizadorAccionAux = rutaCompleta.replaceFirst(aplicacion,"");

	    	    localizadorAccion 			= localizadorAccionAux.substring(0,localizadorAccionAux.indexOf("."));

	       		//Se convierte a minúsculas

	       		localizadorAccion 	= localizadorAccion.toLowerCase();

       			

	       		//Si no estoy en común quiere decir que estoy en alguna parte completa de la aplicación

	       		if(localizadorSeccion.indexOf("comun")==(-1)){

	       			//Se obtiene el nombre del localizador de la sección

	       			localizadorSeccion 	= Q70GestorMensajesi18n.getSingleton().getMessage(RECURSOS_LOCALIZADORES.toString(),"localizador.seccion."+localizadorSeccion,idioma);

       				session.setAttribute(MIGAS_PAN_TITLE,localizadorModulo+" - "+localizadorSeccion);	       			

	       		}else{

	       			//Se pone en la sesión el mensaje

	       			session.setAttribute(MIGAS_PAN_TITLE,Q70GestorMensajesi18n.getSingleton().getMessage(RECURSOS_LOCALIZADORES.toString(),"localizador.modulo.inicioAplicacion",idioma));       		

	       		}

	       } else {

	    	    //Se pone en la sesión el mensaje

	    	   session.setAttribute(MIGAS_PAN_TITLE,"");

	       }

    }

    

    /**

     * Método que genera el migas de pan de la aplicación

     * @param HttpServletRequest request, Q70ContextoEJIE contexto

     * @throws Exception

     */

    public void crearMigasPan(HttpServletRequest request, Q70ContextoEJIE contexto) throws Exception {

    	   //Se definen variables que no se van a modificar

    	   final String MIGAS_PAN 					= "migasPan";

    	  

    	   

    	    

    	   //Se definen todas las variables

    	   StringBuffer RECURSOS_LOCALIZADORES	= new StringBuffer("recursosLocalizadores");

    	   String rutaCompleta					= null;	

	       String localizadorModulo 			= null;

	       String localizadorSeccion 			= null;

	       String localizadorSeccionAux			= null;

	       String localizadorSeccionObjeto		= null;

	       String localizadorAccion 			= null;

	       //Se obtiene la sesión de la request

	       HttpSession 		session 		= request.getSession();

	       //Se obtiene la ruta completa: será de la forma s99bXXXXWar/YYYYJSP/s99bZZZZ.do

	       rutaCompleta =(String)request.getRequestURI().substring(1);

	       //Se comprueba que la ruta exista

	       if(!Q02bFormatData.esVacio(rutaCompleta) && contexto!=null){

//	    	 Se obtiene la aplicacion

	    	   	String aplicacion    = (String)contexto.get("aplicacion");

	    	   	//Se indica el nombre del fichero

                RECURSOS_LOCALIZADORES  = new StringBuffer(aplicacion).append(RECURSOS_LOCALIZADORES);
                
	    	    //Se obtiene el idioma

	    	    String idioma 		 = (String)contexto.get("idioma");

	    	    //1.-INICIO: MODULO (grupo de menú)

	    	    //Para obtener el nombre de menú utilizaremos el localizador de sección. Luego en un fichero de propiedades 

	    	    //se definen qué secciones van en cada módulo

	    	  	//INICIO: SECCIÓN 

	       		//Se modifica la ruta ahora se tiene: YYYYJSP/s99bZZZZ.do

	       		rutaCompleta 		= rutaCompleta.substring(rutaCompleta.indexOf("/")+1,rutaCompleta.length());

	       		//Se obtiene la sección: YYYY

	       		localizadorSeccion 	= rutaCompleta.substring(0,rutaCompleta.indexOf("JSP"));

      			//Se convierte a minúsculas

      			localizadorSeccion  = localizadorSeccion.toLowerCase();

//      		Se obtiene el localizador sección del objeto	

	       		localizadorSeccionObjeto 	= localizadorSeccion.substring(0,1).toUpperCase()+localizadorSeccion.substring(1,localizadorSeccion.length());

      			//con el localizador de seccción recupermos el módulo	       		

      			localizadorModulo 	= Q70GestorMensajesi18n.getSingleton().getMessage(RECURSOS_LOCALIZADORES.toString(),"localizador.modulo."+localizadorSeccion,idioma);

      			//String localizadorModuloAux = localizadorModulo;

      			localizadorSeccionAux		= localizadorSeccion;

	       		//Si no estoy en común quiere decir que estoy en alguna parte completa de la aplicación

	       		if(localizadorSeccion.indexOf("comun")==(-1)){

	       			//Carpeta de accion

	       			String carpetaAccion = "comun";

	       				       			

                    //Se obtiene el nombre del localizador de la sección

	       			localizadorSeccion 	= Q70GestorMensajesi18n.getSingleton().getMessage(RECURSOS_LOCALIZADORES.toString(),"localizador.seccion."+localizadorSeccion,idioma);

	       			

                    //Se pone el link

	       			localizadorSeccion = "<a href='../"+carpetaAccion+"JSP/"+aplicacion+"Ir"+localizadorSeccionObjeto+".do'>"+localizadorSeccion+"</a>";

	       			//FIN: SECCIÓN

		       		//INICIO: ACCION

		       		//Se modifica la ruta ahora se tiene: q02bZZZZ.do

		       		rutaCompleta 		= rutaCompleta.substring(rutaCompleta.indexOf("/")+1,rutaCompleta.length());

		       		//Se obtiene la sección: ZZZZ

		    	    String localizadorAccionAux = rutaCompleta.replaceFirst(aplicacion,"");

		    	    localizadorAccion 			= localizadorAccionAux.substring(0,localizadorAccionAux.indexOf("."));

		       		//Se convierte a minúsculas

		       		localizadorAccion 	= localizadorAccion.toLowerCase();

		       		

		       		//FIN HAY QUE CAMBIARLO!!!!!!

		       		

		       		//Variable que guarda la accion

		       		String accion       = "";

		       		//Variable que contiene el mapeo de acciones

		       		String accionAsig	= "";

		       		//Lista de las acciones de los mappings separadas por ;

		       		String listaAcciones 		= Q02bConstantes.getString("localizador.acciones.comp");

		       		//Lista que contiene variables que se mapearán con las acciones de mappings

		       		//P.Ej. Si en el .do contiene la palabra "lista", se mapeará a la palabra "listado"

		       		String listaAccionesAsig 	= Q02bConstantes.getString("localizador.acciones.asig");

		       		//Se comprueba que existan datos

		       		if (!Q02bFormatData.esVacio(listaAcciones) && !Q02bFormatData.esVacio(listaAccionesAsig)){

		       			//Se obtienen los tokenizer del fichero de properties

		       			StringTokenizer str 	= new StringTokenizer(listaAcciones,";");

		       			StringTokenizer strAsig = new StringTokenizer(listaAccionesAsig,";");

		       			//Mientras haya datos se sigue iterando

		       			while (str.hasMoreElements() && strAsig.hasMoreElements()){

		       				//Se obtienen los valores de los ficheros

		       				accion 		= (String)str.nextElement();

		       				accionAsig	= (String)strAsig.nextElement();

		       				//Si contiene la palabra del fichero, se asocia el mapeo

		       				if(localizadorAccion.indexOf(accion)>=0){

		       					accion = accionAsig;

		       					break;

		       				}

		       			}		       			

		       		}

		       		//Se obtiene el nombre del localizador de la acción

		       		localizadorAccion 	= Q70GestorMensajesi18n.getSingleton().getMessage(RECURSOS_LOCALIZADORES.toString(),"localizador.accion."+accion,idioma);

		       		//FIN: ACCION 

		       		

		       		session.setAttribute(MIGAS_PAN,localizadorModulo+"&nbsp;<img class='q02_campoImgLocalizador'   border='0'  name='imgUsuario' src='" +Q70ListenerUtils.getApplicationProperty("ALIAS_ESTATICO") + "/images/f_localizador.gif'  width='11' height='10' >&nbsp;<u>"+localizadorSeccion+"</u>&nbsp;<img class='q02_campoImgLocalizador'   border='0'  name='imgUsuario' src='" +Q70ListenerUtils.getApplicationProperty("ALIAS_ESTATICO") + "/images/f_localizador.gif'  width='11' height='10' >&nbsp;"+localizadorAccion);		       		

		       	}else{

	       			//Se pone en la sesión el mensaje

	       			session.setAttribute(MIGAS_PAN,Q70GestorMensajesi18n.getSingleton().getMessage(RECURSOS_LOCALIZADORES.toString(),"localizador.modulo.inicioAplicacion",idioma));       		

	       		}

	       } else {

	    	    //Se pone en la sesión el mensaje

	    	   session.setAttribute(MIGAS_PAN,"");

	       }

    }

    

}

