Java tutorial
/* * Este programa es software libre; usted puede redistribuirlo y/o modificarlo bajo los trminos * de la licencia "GNU General Public License" publicada por la Fundacin "Free Software Foundation". * Este programa se distribuye con la esperanza de que pueda ser til, pero SIN NINGUNA GARANTIA; * vea la licencia "GNU General Public License" para obtener mas informacin. */ package ips1ap101.lib.core.web.app; import com.sun.rave.web.ui.appbase.AbstractPageBean; import com.sun.webui.jsf.component.Breadcrumbs; import com.sun.webui.jsf.component.DropDown; import com.sun.webui.jsf.component.Form.VirtualFormDescriptor; import com.sun.webui.jsf.model.Option; import java.io.IOException; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.Iterator; import java.util.List; import javax.faces.application.FacesMessage; import ips1ap101.lib.base.app.constant.URX; import ips1ap101.lib.base.bundle.BundleFunciones; import ips1ap101.lib.base.constant.CPP; import ips1ap101.lib.base.util.BitUtils; import ips1ap101.lib.base.util.ThrowableUtils; import ips1ap101.lib.core.CoreBundle; import ips1ap101.lib.core.app.Bitacora; import ips1ap101.lib.core.app.ConsultaBusqueda; import ips1ap101.lib.core.app.FiltroBusqueda; import ips1ap101.lib.core.app.ListaParametros; import ips1ap101.lib.core.app.Mensaje; import ips1ap101.lib.core.app.TLC; import ips1ap101.lib.core.constant.Global; import ips1ap101.lib.core.db.util.DBUtils; import ips1ap101.lib.core.enumeration.EnumOpcionAbrirVentana; import ips1ap101.lib.core.enumeration.EnumSeveridadMensaje; import ips1ap101.lib.core.jsf.JSF; import ips1ap101.lib.core.util.ClassX; import ips1ap101.lib.core.util.JS; import ips1ap101.lib.core.util.TypeValuePair; import org.apache.commons.lang.ArrayUtils; import org.apache.commons.lang.StringUtils; /** * @author Jorge Campins */ public class GestorPaginaBasica { private String SIMPLE = getClass().getSimpleName(); private static final String EXCEPTION_LOGGING = "exception_logging"; public static GestorPaginaBasica newInstance() { Class<?> clase = GestorPaginaBasica.class; String subclase = ClassX.get().subclassName(clase, "page_delegate"); Object instance = ClassX.get().newInstance(clase, subclase); return (GestorPaginaBasica) instance; } public static GestorPaginaBasica newInstance(PaginaBasica pagina) { Class<?> clase = GestorPaginaBasica.class; TypeValuePair parametro = new TypeValuePair(PaginaBasica.class, pagina); String subclase = ClassX.get().subclassName(clase, "page_delegate"); Object instance = ClassX.get().newInstance(clase, subclase, parametro); return (GestorPaginaBasica) instance; } public GestorPaginaBasica() { designing = true; paginaBasica = null; i18n = GestorPaginaBasicaI18N.getInstance(); } public GestorPaginaBasica(PaginaBasica pagina) { designing = false; paginaBasica = pagina; i18n = GestorPaginaBasicaI18N.getInstance(); init(); } private void init() { ThreadContext.setPaginaActual(getAbstractPageBean()); ThreadContext.setGestorActual(this); /* * inicia contexto peticin */ paginaBasica.getContextoPeticion(); } protected boolean designing; public boolean isDesigning() { return designing; } protected String getDesignTimeString(String metodo) { return metodo + " @ " + getClass().getSimpleName(); } private GestorPaginaBasicaI18N i18n; public GestorPaginaBasicaI18N getI18n() { return i18n; } protected boolean paginaAutorizada; public boolean isPaginaAutorizada() { return paginaAutorizada; } // <editor-fold defaultstate="collapsed" desc="propiedades estandar de la pagina basica"> /** * Conserva el valor de la propiedad paginaBasica. */ private PaginaBasica paginaBasica; /** * Getter para propiedad abstractPageBean. * * @return Valor de la propiedad abstractPageBean. */ protected AbstractPageBean getAbstractPageBean() { return paginaBasica instanceof AbstractPageBean ? (AbstractPageBean) paginaBasica : null; } /** * Getter para propiedad paginaBasica. * * @return Valor de la propiedad paginaBasica. */ protected PaginaBasica getPaginaBasica() { return paginaBasica; } /** * Getter para propiedad paginaBasicaConAccionMultiple. * * @return Valor de la propiedad paginaBasicaConAccionMultiple. */ protected PaginaBasicaConAccionMultiple getPaginaBasicaConAccionMultiple() { return paginaBasica instanceof PaginaBasicaConAccionMultiple ? (PaginaBasicaConAccionMultiple) paginaBasica : null; } protected boolean isPaginaBasicaConAccionMultiple() { return paginaBasica instanceof PaginaBasicaConAccionMultiple; } public boolean isMensajeDisponible() { if (designing) { return true; } return StringUtils.isNotBlank(getMensaje()); } public boolean isMensajeNoDisponible() { return !isMensajeDisponible(); } /** * Getter para propiedad identificacionFuncionAccionPagina. * * @return Valor de la propiedad identificacionFuncionAccionPagina. */ public Long getValorListaFuncionAccion1() { if (designing) { return null; } return getPaginaBasica().getContextoSesion().getIdentificacionFuncionAccionPagina(); } /** * Setter para propiedad identificacionFuncionAccionPagina. * * @param funcion Nuevo valor de la propiedad identificacionFuncionAccionPagina. */ public void setValorListaFuncionAccion1(Long valor) { getPaginaBasica().getContextoSesion().setIdentificacionFuncionAccionPagina(valor); } /** * Conserva el valor de la propiedad urlAnclaPie1. */ private String urlAnclaPie1; /** * Getter para propiedad urlAnclaPie1. * * @return Valor de la propiedad urlAnclaPie1. */ public String getUrlAnclaPie1() { if (designing) { return null; } return JSF.encodeURX(urlAnclaPie1); } /** * Setter para propiedad urlAnclaPie1. * * @param url Nuevo valor de la propiedad urlAnclaPie1. */ public void setUrlAnclaPie1(String url) { urlAnclaPie1 = url; } /** * Conserva el valor de la propiedad mensaje. */ private String mensaje; /** * Getter para propiedad mensaje. * * @return Valor de la propiedad mensaje. */ public String getMensaje() { if (designing) { return getDesignTimeString("getMensaje"); } return mensaje; } /** * Setter para propiedad mensaje. * * @param string Nuevo valor de la propiedad mensaje. */ public void setMensaje(String string) { mensaje = string; } /** * Conserva el valor de la propiedad severidad. */ private EnumSeveridadMensaje severidad; /** * Getter para propiedad severidad. * * @return Valor de la propiedad severidad. */ public EnumSeveridadMensaje getSeveridad() { return severidad; } /** * Setter para propiedad severidad. * * @param enumSeveridadMensaje Nuevo valor de la propiedad severidad. */ public void setSeveridad(EnumSeveridadMensaje enumSeveridadMensaje) { severidad = enumSeveridadMensaje; } /** * Conserva el valor de la propiedad paginaJSP. */ private String paginaJSP; /** * Getter para propiedad paginaJSP. * * @return Valor de la propiedad paginaJSP. */ public String getPaginaJSP() { return paginaJSP; } /** * Setter para propiedad paginaJSP. * * @param pagina Nuevo valor de la propiedad paginaJSP. */ public void setPaginaJSP(String pagina) { paginaJSP = pagina; } /** * Conserva el valor de la propiedad peticionProcesada. */ private boolean peticionProcesada = false; /** * Getter para propiedad peticionProcesada. * * @return Valor de la propiedad peticionProcesada. */ public boolean isPeticionProcesada() { return peticionProcesada; } /** * Setter para propiedad peticionProcesada. * * @param b Nuevo valor de la propiedad peticionProcesada. */ public void setPeticionProcesada(boolean b) { peticionProcesada = b; } /** * Conserva el valor de la propiedad recursion. */ private boolean recursion = false; /** * Getter para propiedad recursion. * * @return Valor de la propiedad recursion. */ public boolean isRecursion() { return recursion; } /** * Setter para propiedad recursion. * * @param b Nuevo valor de la propiedad recursion. */ public void setRecursion(boolean b) { recursion = b; } /** * Conserva el valor de la propiedad reinicio. */ private boolean reinicio = false; /** * Getter para propiedad reinicio. * * @return Valor de la propiedad reinicio. */ public boolean isReinicio() { return reinicio; } /** * Setter para propiedad reinicio. * * @param b Nuevo valor de la propiedad reinicio. */ public void setReinicio(boolean b) { reinicio = b; } /** * Conserva el valor de la propiedad restauracion. */ private boolean restauracion = false; /** * Getter para propiedad restauracion. * * @return Valor de la propiedad restauracion. */ public boolean isRestauracion() { return restauracion; } /** * Setter para propiedad restauracion. * * @param b Nuevo valor de la propiedad restauracion. */ public void setRestauracion(boolean b) { restauracion = b; } /** * Conserva el valor de la propiedad retorno. */ private boolean retorno = false; /** * Getter para propiedad retorno. * * @return Valor de la propiedad retorno. */ public boolean isRetorno() { return retorno; } /** * Setter para propiedad retorno. * * @param b Nuevo valor de la propiedad retorno. */ public void setRetorno(boolean b) { retorno = b; } /** * Conserva el valor de la propiedad retruque. */ private boolean retruque = false; /** * Getter para propiedad retruque. * * @return Valor de la propiedad retruque. */ public boolean isRetruque() { return retruque; } /** * Setter para propiedad retruque. * * @param b Nuevo valor de la propiedad retruque. */ public void setRetruque(boolean b) { retruque = b; } /** * Conserva el valor de la propiedad focus. */ private String focus; /** * Getter para propiedad focus. * * @return Valor de la propiedad focus. */ public String getFocus() { return designing ? null : focus; } /** * Setter para propiedad focus. * * @param string Nuevo valor de la propiedad focus. */ public void setFocus(String string) { focus = string; } /** * Conserva el valor de la propiedad preserveFocus. */ private boolean preserveFocus = false; /** * Getter para propiedad preserveFocus. * * @return Valor de la propiedad preserveFocus. */ public boolean isPreserveFocus() { return preserveFocus; } /** * Setter para propiedad preserveFocus. * * @param b Nuevo valor de la propiedad preserveFocus. */ public void setPreserveFocus(boolean b) { preserveFocus = b; } /** * Conserva el valor de la propiedad preserveScroll. */ private boolean preserveScroll = false; /** * Getter para propiedad preserveScroll. * * @return Valor de la propiedad preserveScroll. */ public boolean isPreserveScroll() { return preserveScroll; } /** * Setter para propiedad preserveScroll. * * @param b Nuevo valor de la propiedad preserveScroll. */ public void setPreserveScroll(boolean b) { preserveScroll = b; } private boolean botonesAccionSinImagen = true; /** * Getter para propiedad botonesAccionSinImagen. * * @return Valor de la propiedad botonesAccionSinImagen. */ public boolean isBotonesAccionSinImagen() { return botonesAccionSinImagen; } protected String getToolTipHipervinculoMigasPan() { return designing ? null : getPaginaBasica().getEtiquetaMigasPan(); } protected String getMensajePeticionPorOmision() { return null; } // </editor-fold> public void preiniciar() { track("preiniciar"); getPaginaBasica().getContextoPeticion().setPaginaActual(getAbstractPageBean()); getPaginaBasica().getContextoPeticion().setGestorActual(this); paginaAutorizada = getPaginaBasica().isPostBack(); if (paginaAutorizada) { } else { autorizar(); if (paginaAutorizada) { } else { redireccionar(); } } } protected void autorizar() { track("autorizar"); Long funcion = null; if (isPaginaBasicaConAccionMultiple()) { for (Option option : getPaginaBasicaConAccionMultiple().getOpcionesListaFuncionAccion()) { if (option.getValue() instanceof Long) { funcion = (Long) option.getValue(); paginaAutorizada = TLC.getControlador().esFuncionAutorizada(funcion); if (paginaAutorizada) { break; } } } } if (funcion == null) { paginaAutorizada = true; } } private void redireccionar() { track("redireccionar"); String rpl = ""; try { rpl = addParameter(rpl, Global.PARAMETRO_REDIRECT_REQUEST); JSF.redirect(URX.REJECT + rpl); } catch (IOException ex) { TLC.getBitacora().error(ex); } } private String addParameter(String rpl, String key) { String value = JSF.getRequestParameter(key); return StringUtils.isBlank(value) ? rpl : StringUtils.isBlank(rpl) ? "?" + key + "=" + value : rpl + "&" + key + "=" + value; } public void iniciar() { track("iniciar"); setPeticionProcesada(false); setSeveridad(EnumSeveridadMensaje.INFORMATIVO); setRecursion(BitUtils.valueOf(JSF.getRequestParameter(Global.PARAMETRO_RECURSION))); setReinicio(getPaginaBasica().getContextoPeticion().getCondicionSesion() != null); setRestauracion(BitUtils.valueOf(getPaginaBasica().getContextoPeticion().getCondicionSesion())); setRetorno(StringUtils.isNotBlank(JSF.getRequestParameter(Global.PARAMETRO_RETRUCAR))); setFocus(null); String requestSP = getPaginaBasica().getFacesContext().getExternalContext().getRequestServletPath(); String urlOrigen = requestSP + getPaginaBasica().getFacesContext().getExternalContext().getRequestPathInfo(); String urlActual = requestSP + getPaginaBasica().getRequestPathInfo(); setRetruque(getPaginaBasica().isPostBack() || (urlActual.equals(urlOrigen) && !isReinicio())); setPaginaJSP(urlActual); updateMigasSesion(); trace(); } private void trace() { track("trace@GestorPaginaBasica"); trace("isRecursion=" + isRecursion()); trace("isReinicio=" + isReinicio()); trace("isRestauracion=" + isRestauracion()); trace("isRetorno=" + isRetorno()); trace("isRetruque=" + isRetruque()); trace("contextoOrigen=" + getPaginaBasica().getFacesContext().getExternalContext().getRequestContextPath()); trace("urlOrigen=" + getPaginaBasica().getFacesContext().getExternalContext().getRequestPathInfo()); trace("urlActual=" + getPaginaBasica().getRequestPathInfo()); } public void preprocesar() { /* no se ejecuta si al apenas abrir la pagina se hace click en un link con url */ track("preprocesar"); setPeticionProcesada(true); } public void prepresentar() { track("prepresentar"); posprepresentar(); } protected void posprepresentar() { String clientId = JSF.getFirstClientIdWithMessages(); if (clientId != null) { setFocus(clientId); JSF.fixFacesMessages(); } setMensajePeticion(); setPropiedadesPresentacionPagina(); tell(); if (isRetorno() || !isPeticionProcesada()) { descartarFormulariosVirtuales(); } } protected void setPropiedadesPresentacionPagina() { updateMigasPagina(); } protected void removerHipervinculo(boolean remover) { if (remover) { Breadcrumbs migasSesion = getPaginaBasica().getContextoSesion().getMigas(); JSF.removeHipervinculo(migasSesion, getPaginaJSP()); } } protected void updateMigasSesion() { Breadcrumbs migasSesion = getPaginaBasica().getContextoSesion().getMigas(); String text = getPaginaBasica().getEtiquetaMigasPan(); String toolTip = getToolTipHipervinculoMigasPan(); // String url = getPaginaJSP(); String url = getBreadcrumbsHyperlinkUrl(); JSF.updateHipervinculo(migasSesion, text, toolTip, url); } protected void updateMigasPagina() { Breadcrumbs migasSesion = getPaginaBasica().getContextoSesion().getMigas(); Breadcrumbs migasPagina = getPaginaBasica().getBreadcrumbs1(); String text = getPaginaBasica().getEtiquetaMigasPan(); String toolTip = getToolTipHipervinculoMigasPan(); // String url = getPaginaJSP(); String url = getBreadcrumbsHyperlinkUrl(); JSF.addHipervinculo(migasSesion, text, toolTip, url, isReinicio() && !isRecursion()); JSF.addHipervinculos(migasSesion, migasPagina); } private String getBreadcrumbsHyperlinkUrl() { String url = null; String jsp = getPaginaJSP(); if (StringUtils.isNotBlank(jsp)) { url = jsp; String opcion = getPaginaBasica().getContextoSesion().getOpcionCampoRetorno(); if (StringUtils.isNotBlank(opcion)) { String campo = getPaginaBasica().getContextoSesion().getCampoAccionRetorno(); String boton = getPaginaBasica().getContextoSesion().getBotonAccionRetorno(); String dominio = getPaginaBasica().getContextoSesion().getDominioRetorno(); url += "?" + CPP.ID_OPCION_CAMPO_RETORNO + "=" + opcion; if (StringUtils.isNotBlank(campo)) { url += "&" + CPP.ID_CAMPO_ACCION_RETORNO + "=" + campo; } if (StringUtils.isNotBlank(boton)) { url += "&" + CPP.ID_BOTON_ACCION_RETORNO + "=" + boton; } if (StringUtils.isNotBlank(dominio)) { url += "&" + CPP.ID_DOMINIO_RETORNO + "=" + dominio; } } } return url; } public Object getIdentificacionOpcionSeleccionada(DropDown lista) { Option opcion = JSF.getOpcion(lista); if (opcion != null) { Object objeto = opcion.getValue(); // if (objeto != null && objeto instanceof Integer) { // return (Integer) objeto; // } // if (objeto != null && objeto instanceof Long) { // return (Long) objeto; // } return objeto; } return null; } public String getEtiquetaOpcionSeleccionada(DropDown lista) { Option opcion = JSF.getOpcion(lista); return opcion == null ? null : opcion.getLabel(); } public String getDescripcionOpcionSeleccionada(DropDown lista) { Option opcion = JSF.getOpcion(lista); return opcion == null ? null : opcion.getDescription(); } public Option getOpcionListaDesplegable(Object valor, DropDown lista) { return JSF.getOpcion(valor, lista.getItems()); } private static Calendar calendar = Calendar.getInstance(); public Date getDefaultMinDate() { calendar.clear(); // calendar.setTime(getCurrentDate()); // calendar.add(Calendar.YEAR, -1); calendar.set(1900, 0, 1, 0, 0, 0); return calendar.getTime(); } public Date getDefaultMaxDate() { calendar.clear(); // calendar.setTime(getCurrentDate()); // calendar.add(Calendar.YEAR, 1); calendar.set(2100, 11, 31, 23, 59, 59); return calendar.getTime(); } public Date getCurrentDate() { calendar.clear(); calendar.setTimeInMillis(System.currentTimeMillis()); int y = calendar.get(Calendar.YEAR); int m = calendar.get(Calendar.MONTH); int d = calendar.get(Calendar.DAY_OF_MONTH); calendar.clear(); calendar.set(y, m, d); return calendar.getTime(); } public String getWhiteLabel() { if (designing) { return "abc"; } return " "; } public Option[] getOpcionesListaFuncionAccionAutorizadas(List<Option> opciones) { Option[] array = new Option[opciones.size()]; opciones.toArray(array); return getOpcionesListaFuncionAccionAutorizadas(array); } public Option[] getOpcionesListaFuncionAccionAutorizadas(Option[] opciones) { ArrayList<Option> autorizadas = new ArrayList<>(); for (Option option : opciones) { if (option.getValue() instanceof Long) { if (TLC.getControlador().esFuncionAutorizada((Long) option.getValue())) { autorizadas.add(option); } } else { autorizadas.add(option); } } return (Option[]) autorizadas.toArray(new Option[0]); } // public Option getOpcionSeleccioneUnaOpcionListaComandoAbrir() { // return getOpcionSeleccioneUnaOpcion(i18n.getEtiquetaSeleccioneUnaOpcionListaComandoAbrir()); // } // // public Option getOpcionSeleccioneUnaOpcionListaComandoGuardar() { // return getOpcionSeleccioneUnaOpcion(i18n.getEtiquetaSeleccioneUnaOpcionListaComandoGuardar()); // } // // public Option getOpcionSeleccioneUnaOpcionListaComandoVer() { // return getOpcionSeleccioneUnaOpcion(i18n.getEtiquetaSeleccioneUnaOpcionListaComandoVer()); // } // // public Option getOpcionSeleccioneUnaOpcionListaFuncionEdicion() { // return getOpcionSeleccioneUnaOpcion(i18n.getEtiquetaSeleccioneUnaOpcionListaFuncionEdicion()); // } // // private Option getOpcionSeleccioneUnaOpcion(String etiqueta) { // return new Option("", etiqueta); // } // public Option getOpcionSeleccioneUnaOpcionListaFuncionAccion() { String label = i18n.getEtiquetaSeleccioneUnaOpcionListaFuncionAccion(); String description = i18n.getInlineHelpListaFuncionAccion(); return getOpcionSeleccioneUnaOpcion(label, description); } private Option getOpcionSeleccioneUnaOpcion(String etiqueta, String descripcion) { return new Option("", etiqueta, descripcion); } public Option getOpcionFuncion(long valor, String etiqueta) { String label = BundleFunciones.getString(etiqueta); String description = BundleFunciones.getInlineHelp(etiqueta); if (StringUtils.isBlank(description)) { description = i18n.getInlineHelpListaFuncionAccion(); } return new Option(valor, label, description); } // <editor-fold defaultstate="collapsed" desc="metodos estandar para abrir archivos y/o paginas con el explorador"> public void abrirArchivo(String file) { if (StringUtils.isBlank(file)) { return; } redirect(JSF.getFileURL(file)); } public void abrirURI(String uri) { if (StringUtils.isBlank(uri)) { return; } redirect(JSF.encodeURI(uri)); } public void abrirURL(String url) { if (StringUtils.isBlank(url)) { return; } redirect(JSF.encodeURL(url)); } public void abrirURX(String urx) { if (StringUtils.isBlank(urx)) { return; } redirect(JSF.encodeURX(urx)); } public void redirect(String url) { if (StringUtils.isBlank(url)) { return; } try { JSF.redirect(url); } catch (Exception ex) { handle(ex); } } // </editor-fold> // <editor-fold defaultstate="collapsed" desc="metodos estandar para obtener el script de los botones de la pagina basica"> public String getScriptAbrirVentanaBuscarCodigo(String urx, long dominio, long funcion, String campo, String boton) { return TLC.getControlador().esFuncionAutorizada(funcion) ? getScriptAbrirVentanaBuscarCodigo(urx, dominio, campo, boton) : getScriptAbrirVentanaBuscarCodigo(dominio, funcion, campo, boton); } public String getScriptAbrirVentanaBuscarCodigo(String urx, long dominio, long funcion, String campo, String boton, FiltroBusqueda filtro) { return TLC.getControlador().esFuncionAutorizada(funcion) ? getScriptAbrirVentanaBuscarCodigo(urx, dominio, campo, boton, filtro) : getScriptAbrirVentanaBuscarCodigo(dominio, funcion, campo, boton, filtro); } public String getScriptAbrirVentanaBuscarCodigo(String urx, long dominio, long funcion, String campo, String boton, ConsultaBusqueda consulta) { return TLC.getControlador().esFuncionAutorizada(funcion) ? getScriptAbrirVentanaBuscarCodigo(urx, dominio, campo, boton, consulta) : getScriptAbrirVentanaBuscarCodigo(dominio, funcion, campo, boton, consulta); } public String getScriptAbrirVentanaBuscarIdentificacion(String urx, long dominio, long funcion, String campo, String boton) { return TLC.getControlador().esFuncionAutorizada(funcion) ? getScriptAbrirVentanaBuscarIdentificacion(urx, dominio, campo, boton) : getScriptAbrirVentanaBuscarIdentificacion(dominio, funcion, campo, boton); } public String getScriptAbrirVentanaBuscarIdentificacion(String urx, long dominio, long funcion, String campo, String boton, FiltroBusqueda filtro) { return TLC.getControlador().esFuncionAutorizada(funcion) ? getScriptAbrirVentanaBuscarIdentificacion(urx, dominio, campo, boton, filtro) : getScriptAbrirVentanaBuscarIdentificacion(dominio, funcion, campo, boton, filtro); } public String getScriptAbrirVentanaBuscarIdentificacion(String urx, long dominio, long funcion, String campo, String boton, ConsultaBusqueda consulta) { return TLC.getControlador().esFuncionAutorizada(funcion) ? getScriptAbrirVentanaBuscarIdentificacion(urx, dominio, campo, boton, consulta) : getScriptAbrirVentanaBuscarIdentificacion(dominio, funcion, campo, boton, consulta); } public String getScriptAbrirVentanaBuscar(String urx, long dominio, long funcion, String columna, String campo, String boton) { return TLC.getControlador().esFuncionAutorizada(funcion) ? getScriptAbrirVentanaBuscar(urx, dominio, columna, campo, boton) : getScriptAbrirVentanaBuscar(dominio, funcion, columna, campo, boton); } public String getScriptAbrirVentanaBuscar(String urx, long dominio, long funcion, String columna, String campo, String boton, FiltroBusqueda filtro) { return TLC.getControlador().esFuncionAutorizada(funcion) ? getScriptAbrirVentanaBuscar(urx, dominio, columna, campo, boton, filtro) : getScriptAbrirVentanaBuscar(dominio, funcion, columna, campo, boton, filtro); } public String getScriptAbrirVentanaBuscar(String urx, long dominio, long funcion, String columna, String campo, String boton, ConsultaBusqueda consulta) { return TLC.getControlador().esFuncionAutorizada(funcion) ? getScriptAbrirVentanaBuscar(urx, dominio, columna, campo, boton, consulta) : getScriptAbrirVentanaBuscar(dominio, funcion, columna, campo, boton, consulta); } public String getScriptAbrirVentanaBuscarCodigo(long dominio, long funcion, String campo) { return getScriptAbrirVentanaBuscar(dominio, funcion, EnumOpcionAbrirVentana.BUSCAR_CODIGO, campo, null, false); } public String getScriptAbrirVentanaBuscarCodigo(long dominio, long funcion, String campo, String boton) { return getScriptAbrirVentanaBuscar(dominio, funcion, EnumOpcionAbrirVentana.BUSCAR_CODIGO, campo, boton, false); } public String getScriptAbrirVentanaBuscarCodigo(long dominio, long funcion, String campo, boolean arbol) { return getScriptAbrirVentanaBuscar(dominio, funcion, EnumOpcionAbrirVentana.BUSCAR_CODIGO, campo, null, arbol); } public String getScriptAbrirVentanaBuscarCodigo(long dominio, long funcion, String campo, String boton, boolean arbol) { return getScriptAbrirVentanaBuscar(dominio, funcion, EnumOpcionAbrirVentana.BUSCAR_CODIGO, campo, boton, arbol); } public String getScriptAbrirVentanaBuscarCodigo(long dominio, long funcion, String campo, String boton, FiltroBusqueda filtro) { return getScriptAbrirVentanaBuscar(dominio, funcion, EnumOpcionAbrirVentana.BUSCAR_CODIGO, campo, boton, filtro); } public String getScriptAbrirVentanaBuscarCodigo(long dominio, long funcion, String campo, String boton, ConsultaBusqueda consulta) { return getScriptAbrirVentanaBuscar(dominio, funcion, EnumOpcionAbrirVentana.BUSCAR_CODIGO, campo, boton, consulta); } public String getScriptAbrirVentanaBuscarIdentificacion(long dominio, long funcion, String campo) { return getScriptAbrirVentanaBuscar(dominio, funcion, EnumOpcionAbrirVentana.BUSCAR_ID, campo, null, false); } public String getScriptAbrirVentanaBuscarIdentificacion(long dominio, long funcion, String campo, String boton) { return getScriptAbrirVentanaBuscar(dominio, funcion, EnumOpcionAbrirVentana.BUSCAR_ID, campo, boton, false); } public String getScriptAbrirVentanaBuscarIdentificacion(long dominio, long funcion, String campo, boolean arbol) { return getScriptAbrirVentanaBuscar(dominio, funcion, EnumOpcionAbrirVentana.BUSCAR_ID, campo, null, arbol); } public String getScriptAbrirVentanaBuscarIdentificacion(long dominio, long funcion, String campo, String boton, boolean arbol) { return getScriptAbrirVentanaBuscar(dominio, funcion, EnumOpcionAbrirVentana.BUSCAR_ID, campo, boton, arbol); } public String getScriptAbrirVentanaBuscarIdentificacion(long dominio, long funcion, String campo, String boton, FiltroBusqueda filtro) { return getScriptAbrirVentanaBuscar(dominio, funcion, EnumOpcionAbrirVentana.BUSCAR_ID, campo, boton, filtro); } public String getScriptAbrirVentanaBuscarIdentificacion(long dominio, long funcion, String campo, String boton, ConsultaBusqueda consulta) { return getScriptAbrirVentanaBuscar(dominio, funcion, EnumOpcionAbrirVentana.BUSCAR_ID, campo, boton, consulta); } public String getScriptAbrirVentanaBuscar(long dominio, long funcion, EnumOpcionAbrirVentana opcion, String campo, String boton) { return getScriptAbrirVentanaBuscar(dominio, funcion, opcion, campo, boton, false); } public String getScriptAbrirVentanaBuscar(long dominio, long funcion, EnumOpcionAbrirVentana opcion, String campo, String boton, boolean arbol) { String urx = arbol ? URX.ARBOL_RECURSOS : URX.LISTA_RECURSOS; return JSF.getOpenSearchWindowJavaScript(urx, dominio, opcion, campo, boton, getListaParametrosFuncion(funcion)); } public String getScriptAbrirVentanaBuscar(long dominio, long funcion, EnumOpcionAbrirVentana opcion, String campo, String boton, FiltroBusqueda filtro) { String urx = URX.LISTA_RECURSOS; return JSF.getOpenSearchWindowJavaScript(urx, dominio, opcion, campo, boton, getListaParametrosFuncion(funcion, filtro)); } public String getScriptAbrirVentanaBuscar(long dominio, long funcion, EnumOpcionAbrirVentana opcion, String campo, String boton, ConsultaBusqueda consulta) { String urx = URX.LISTA_RECURSOS; return JSF.getOpenSearchWindowJavaScript(urx, dominio, opcion, campo, boton, getListaParametrosFuncion(funcion, consulta)); } public String getScriptAbrirVentanaBuscar(long dominio, long funcion, String columna, String campo, String boton) { return getScriptAbrirVentanaBuscar(dominio, funcion, columna, campo, boton, false); } public String getScriptAbrirVentanaBuscar(long dominio, long funcion, String columna, String campo, String boton, boolean arbol) { String urx = arbol ? URX.ARBOL_RECURSOS : URX.LISTA_RECURSOS; return JSF.getOpenSearchWindowJavaScript(urx, dominio, columna, campo, boton, getListaParametrosFuncion(funcion)); } public String getScriptAbrirVentanaBuscar(long dominio, long funcion, String columna, String campo, String boton, FiltroBusqueda filtro) { String urx = URX.LISTA_RECURSOS; return JSF.getOpenSearchWindowJavaScript(urx, dominio, columna, campo, boton, getListaParametrosFuncion(funcion, filtro)); } public String getScriptAbrirVentanaBuscar(long dominio, long funcion, String columna, String campo, String boton, ConsultaBusqueda consulta) { String urx = URX.LISTA_RECURSOS; return JSF.getOpenSearchWindowJavaScript(urx, dominio, columna, campo, boton, getListaParametrosFuncion(funcion, consulta)); } public String getScriptAbrirVentanaBuscarCodigo(String urx, long dominio, String campo) { return getScriptAbrirVentanaBuscar(urx, dominio, EnumOpcionAbrirVentana.BUSCAR_CODIGO, campo, null, null, (FiltroBusqueda) null); } public String getScriptAbrirVentanaBuscarCodigo(String urx, long dominio, String campo, String boton) { return getScriptAbrirVentanaBuscar(urx, dominio, EnumOpcionAbrirVentana.BUSCAR_CODIGO, campo, boton, null, (FiltroBusqueda) null); } public String getScriptAbrirVentanaBuscarCodigo(String urx, long dominio, String campo, String boton, Long maestro) { return getScriptAbrirVentanaBuscar(urx, dominio, EnumOpcionAbrirVentana.BUSCAR_CODIGO, campo, boton, maestro, (FiltroBusqueda) null); } public String getScriptAbrirVentanaBuscarCodigo(String urx, long dominio, String campo, String boton, FiltroBusqueda filtro) { return getScriptAbrirVentanaBuscar(urx, dominio, EnumOpcionAbrirVentana.BUSCAR_CODIGO, campo, boton, null, filtro); } public String getScriptAbrirVentanaBuscarCodigo(String urx, long dominio, String campo, String boton, ConsultaBusqueda consulta) { return getScriptAbrirVentanaBuscar(urx, dominio, EnumOpcionAbrirVentana.BUSCAR_CODIGO, campo, boton, null, consulta); } public String getScriptAbrirVentanaBuscarCodigo(String urx, long dominio, String campo, String boton, Long maestro, FiltroBusqueda filtro) { return getScriptAbrirVentanaBuscar(urx, dominio, EnumOpcionAbrirVentana.BUSCAR_CODIGO, campo, boton, maestro, filtro); } public String getScriptAbrirVentanaBuscarCodigo(String urx, long dominio, String campo, String boton, Long maestro, ConsultaBusqueda consulta) { return getScriptAbrirVentanaBuscar(urx, dominio, EnumOpcionAbrirVentana.BUSCAR_CODIGO, campo, boton, maestro, consulta); } public String getScriptAbrirVentanaBuscarCodigo(String urx, long dominio, String campo, String boton, ListaParametros rpl) { return getScriptAbrirVentanaBuscar(urx, dominio, EnumOpcionAbrirVentana.BUSCAR_CODIGO, campo, boton, rpl); } public String getScriptAbrirVentanaBuscarIdentificacion(String urx, long dominio, String campo) { return getScriptAbrirVentanaBuscar(urx, dominio, EnumOpcionAbrirVentana.BUSCAR_ID, campo, null, null, (FiltroBusqueda) null); } public String getScriptAbrirVentanaBuscarIdentificacion(String urx, long dominio, String campo, String boton) { return getScriptAbrirVentanaBuscar(urx, dominio, EnumOpcionAbrirVentana.BUSCAR_ID, campo, boton, null, (FiltroBusqueda) null); } public String getScriptAbrirVentanaBuscarIdentificacion(String urx, long dominio, String campo, String boton, Long maestro) { return getScriptAbrirVentanaBuscar(urx, dominio, EnumOpcionAbrirVentana.BUSCAR_ID, campo, boton, maestro, (FiltroBusqueda) null); } public String getScriptAbrirVentanaBuscarIdentificacion(String urx, long dominio, String campo, String boton, FiltroBusqueda filtro) { return getScriptAbrirVentanaBuscar(urx, dominio, EnumOpcionAbrirVentana.BUSCAR_ID, campo, boton, null, filtro); } public String getScriptAbrirVentanaBuscarIdentificacion(String urx, long dominio, String campo, String boton, ConsultaBusqueda consulta) { return getScriptAbrirVentanaBuscar(urx, dominio, EnumOpcionAbrirVentana.BUSCAR_ID, campo, boton, null, consulta); } public String getScriptAbrirVentanaBuscarIdentificacion(String urx, long dominio, String campo, String boton, Long maestro, FiltroBusqueda filtro) { return getScriptAbrirVentanaBuscar(urx, dominio, EnumOpcionAbrirVentana.BUSCAR_ID, campo, boton, maestro, filtro); } public String getScriptAbrirVentanaBuscarIdentificacion(String urx, long dominio, String campo, String boton, Long maestro, ConsultaBusqueda consulta) { return getScriptAbrirVentanaBuscar(urx, dominio, EnumOpcionAbrirVentana.BUSCAR_ID, campo, boton, maestro, consulta); } public String getScriptAbrirVentanaBuscarIdentificacion(String urx, long dominio, String campo, String boton, ListaParametros rpl) { return getScriptAbrirVentanaBuscar(urx, dominio, EnumOpcionAbrirVentana.BUSCAR_ID, campo, boton, rpl); } public String getScriptAbrirVentanaBuscar(String urx, long dominio, EnumOpcionAbrirVentana opcion, String campo, String boton) { return getScriptAbrirVentanaBuscar(urx, dominio, opcion, campo, boton, null, (FiltroBusqueda) null); } public String getScriptAbrirVentanaBuscar(String urx, long dominio, EnumOpcionAbrirVentana opcion, String campo, String boton, Long maestro) { return getScriptAbrirVentanaBuscar(urx, dominio, opcion, campo, boton, maestro, (FiltroBusqueda) null); } public String getScriptAbrirVentanaBuscar(String urx, long dominio, EnumOpcionAbrirVentana opcion, String campo, String boton, FiltroBusqueda filtro) { return getScriptAbrirVentanaBuscar(urx, dominio, opcion, campo, boton, null, filtro); } public String getScriptAbrirVentanaBuscar(String urx, long dominio, EnumOpcionAbrirVentana opcion, String campo, String boton, ConsultaBusqueda consulta) { return getScriptAbrirVentanaBuscar(urx, dominio, opcion, campo, boton, null, consulta); } public String getScriptAbrirVentanaBuscar(String urx, long dominio, EnumOpcionAbrirVentana opcion, String campo, String boton, Long maestro, FiltroBusqueda filtro) { return getScriptAbrirVentanaBuscar(urx, dominio, opcion, campo, boton, getListaParametrosMaestro(maestro, filtro)); } public String getScriptAbrirVentanaBuscar(String urx, long dominio, EnumOpcionAbrirVentana opcion, String campo, String boton, Long maestro, ConsultaBusqueda consulta) { return getScriptAbrirVentanaBuscar(urx, dominio, opcion, campo, boton, getListaParametrosMaestro(maestro, consulta)); } public String getScriptAbrirVentanaBuscar(String urx, long dominio, EnumOpcionAbrirVentana opcion, String campo, String boton, ListaParametros rpl) { return JSF.getOpenSearchWindowJavaScript(urx, dominio, opcion, campo, boton, rpl); } public String getScriptAbrirVentanaBuscar(String urx, long dominio, String columna, String campo, String boton) { return getScriptAbrirVentanaBuscar(urx, dominio, columna, campo, boton, null, (FiltroBusqueda) null); } public String getScriptAbrirVentanaBuscar(String urx, long dominio, String columna, String campo, String boton, Long maestro) { return getScriptAbrirVentanaBuscar(urx, dominio, columna, campo, boton, maestro, (FiltroBusqueda) null); } public String getScriptAbrirVentanaBuscar(String urx, long dominio, String columna, String campo, String boton, FiltroBusqueda filtro) { return getScriptAbrirVentanaBuscar(urx, dominio, columna, campo, boton, null, filtro); } public String getScriptAbrirVentanaBuscar(String urx, long dominio, String columna, String campo, String boton, ConsultaBusqueda consulta) { return getScriptAbrirVentanaBuscar(urx, dominio, columna, campo, boton, null, consulta); } public String getScriptAbrirVentanaBuscar(String urx, long dominio, String columna, String campo, String boton, Long maestro, FiltroBusqueda filtro) { return getScriptAbrirVentanaBuscar(urx, dominio, columna, campo, boton, getListaParametrosMaestro(maestro, filtro)); } public String getScriptAbrirVentanaBuscar(String urx, long dominio, String columna, String campo, String boton, Long maestro, ConsultaBusqueda consulta) { return getScriptAbrirVentanaBuscar(urx, dominio, columna, campo, boton, getListaParametrosMaestro(maestro, consulta)); } public String getScriptAbrirVentanaBuscar(String urx, long dominio, String columna, String campo, String boton, ListaParametros rpl) { return JSF.getOpenSearchWindowJavaScript(urx, dominio, columna, campo, boton, rpl); } public String getScriptAbrirVentanaVerRastroInformes() { String urx = URX.RASTRO_INFORME; return JSF.getOpenWindowJavaScript(urx, null); } public String getScriptAbrirVentanaVerRastroProcesos() { String urx = URX.RASTRO_PROCESO; return JSF.getOpenWindowJavaScript(urx, null); } public String getScriptAbrirVentana(String urx, Long recurso) { // a.k.a. getScriptAbrirVentanaVerConsola ListaParametros listaParametrosRecurso = getListaParametrosRecurso(recurso); String rpl = listaParametrosRecurso.toString(); return recurso == null ? null : JSF.getOpenWindowJavaScript(urx, rpl); } public String getScriptAbrirVentanaVerDetalle(String urx, Long recurso) { ListaParametros listaParametrosRecurso = getListaParametrosRecurso(recurso); // ListaParametros listaParametrosRetorno = getListaParametrosRetorno(); // listaParametrosRetorno.addAll(listaParametrosRecurso); // String rpl = listaParametrosRetorno.toString(); String rpl = listaParametrosRecurso.toString(); return recurso == null ? null : JSF.getOpenDetailWindowJavaScript(urx, rpl); } public String getScriptAbrirVinculo() { return null; } public String getScriptAbrirVentanaBuscarNoDisponible() { return JS.getAlertScript("funcion_buscar_recurso_no_disponible"); } public String getScriptAbrirVentanaVerDetalleNoDisponible() { return JS.getAlertScript("funcion_ver_detalle_recurso_no_disponible"); } public ListaParametros getListaParametrosFuncion(long funcion) { return getListaParametrosFuncion(funcion, (FiltroBusqueda) null); } public ListaParametros getListaParametrosFuncion(long funcion, FiltroBusqueda filtro) { ListaParametros rpl = new ListaParametros(); rpl.addParametro(CPP.ID_FUNCION_REFERENCIA, Long.valueOf(funcion)); if (filtro != null) { String criterios = StringUtils.trimToNull(filtro.toString()); if (criterios != null) { rpl.addParametro(FiltroBusqueda.class.getSimpleName(), criterios); } } return rpl; } public ListaParametros getListaParametrosFuncion(long funcion, ConsultaBusqueda consulta) { ListaParametros rpl = new ListaParametros(); rpl.addParametro(CPP.ID_FUNCION_REFERENCIA, Long.valueOf(funcion)); if (consulta != null) { rpl.addParametro(ConsultaBusqueda.class.getSimpleName(), consulta.getId()); String criterios = StringUtils.trimToNull(consulta.getCriteriosConjugados()); if (criterios != null) { rpl.addParametro(FiltroBusqueda.class.getSimpleName(), criterios); } } return rpl; } public ListaParametros getListaParametrosRecurso(Long recurso) { ListaParametros rpl = new ListaParametros(); if (BitUtils.valueOf(recurso)) { rpl.addParametro(CPP.ID_RECURSO, recurso); } return rpl; } public ListaParametros getListaParametrosMaestro(Long maestro, FiltroBusqueda filtro) { boolean masterly = BitUtils.valueOf(maestro); if (masterly || filtro != null) { ListaParametros rpl = new ListaParametros(); if (masterly) { rpl.addParametro(CPP.ID_RECURSO_MAESTRO, maestro); } if (filtro != null) { String criterios = StringUtils.trimToNull(filtro.toString()); if (criterios != null) { rpl.addParametro(FiltroBusqueda.class.getSimpleName(), criterios); } } return rpl; } return null; } public ListaParametros getListaParametrosMaestro(Long maestro, ConsultaBusqueda consulta) { boolean masterly = BitUtils.valueOf(maestro); if (masterly || consulta != null) { ListaParametros rpl = new ListaParametros(); if (masterly) { rpl.addParametro(CPP.ID_RECURSO_MAESTRO, maestro); } if (consulta != null) { rpl.addParametro(ConsultaBusqueda.class.getSimpleName(), consulta.getId()); String criterios = StringUtils.trimToNull(consulta.getCriteriosConjugados()); if (criterios != null) { rpl.addParametro(FiltroBusqueda.class.getSimpleName(), criterios); } } return rpl; } return null; } protected ListaParametros getListaParametrosRetorno() { ListaParametros rpl = new ListaParametros(); String opcionCampoRetorno = getPaginaBasica().getContextoSesion().getOpcionCampoRetorno(); if (StringUtils.isNotBlank(opcionCampoRetorno)) { rpl.addParametro(CPP.ID_OPCION_CAMPO_RETORNO, opcionCampoRetorno); String campoAccionRetorno = getPaginaBasica().getContextoSesion().getCampoAccionRetorno(); if (StringUtils.isNotBlank(campoAccionRetorno)) { rpl.addParametro(CPP.ID_CAMPO_ACCION_RETORNO, campoAccionRetorno); } String botonAccionRetorno = getPaginaBasica().getContextoSesion().getBotonAccionRetorno(); if (StringUtils.isNotBlank(botonAccionRetorno)) { rpl.addParametro(CPP.ID_BOTON_ACCION_RETORNO, botonAccionRetorno); } String dominioRetorno = getPaginaBasica().getContextoSesion().getDominioRetorno(); if (StringUtils.isNotBlank(dominioRetorno)) { rpl.addParametro(CPP.ID_DOMINIO_RETORNO, dominioRetorno); } } return rpl; } // </editor-fold> // <editor-fold defaultstate="collapsed" desc="metodos estandar para obtener el estilo de botones e hipervinculos"> public String getEstiloBotonesAccion() { return isBotonesAccionSinImagen() ? "width: 64px" : null; } public String getEstiloHipervinculos() { return "margin-right: 8px"; } // </editor-fold> // <editor-fold defaultstate="collapsed" desc="metodos estandar para obtener el url de la imagen botones e hipervinculos"> public String getUrlImagenAbrirVinculo() { return "/resources/open_link_enabled.gif"; } public String getUrlImagenAbrirVinculoInhabilitado() { return "/resources/open_link_disabled.gif"; } public String getUrlImagenAbrirVinculoHabilitado() { return "/resources/open_link_enabled.gif"; } public String getUrlImagenAbrirVentanaBuscar() { return "/resources/search.gif"; } public String getUrlImagenEjecutarInforme() { return "/resources/run_report.gif"; } public String getUrlImagenEjecutarInformeInhabilitado() { return "/resources/run_report_dimmed.gif"; } public String getUrlImagenEjecutarProceso() { return "/resources/run.gif"; } public String getUrlImagenEjecutarProcesoInhabilitado() { return "/resources/run_dimmed.gif"; } public String getUrlImagenExportarArchivo() { return "/resources/run_export.gif"; } public String getUrlImagenExportarArchivoInhabilitado() { return "/resources/run_export_dimmed.gif"; } public String getUrlImagenEjecutarVinculo() { return "/resources/run_link_enabled.gif"; } public String getUrlImagenEjecutarVinculoInhabilitado() { return "/resources/run_link_disabled.gif"; } public String getUrlImagenEjecutarVinculoHabilitado() { return "/resources/run_link_enabled.gif"; } public String getUrlImagenSeveridadMensaje() { if (designing) { return "/resources/info_medium.gif"; } String imagen = "/resources/go_dimmed.gif"; if (getMensaje() != null) { switch (getSeveridad()) { case INFORMATIVO: imagen = "/resources/info_medium.gif"; break; case ADVERTENCIA: imagen = "/resources/warning_medium.gif"; break; case ERROR: imagen = "/resources/error_medium.gif"; break; case FATAL: imagen = "/resources/failed_medium.gif"; break; default: imagen = "/resources/unknown_medium.gif"; break; } } return imagen; } public boolean isUrlImagenSeveridadMensajeDisponible() { if (designing) { return true; } return isMensajeDisponible() && StringUtils.isNotBlank(getUrlImagenSeveridadMensaje()); } public boolean isUrlImagenSeveridadMensajeNoDisponible() { return !isUrlImagenSeveridadMensajeDisponible(); } // </editor-fold> // <editor-fold defaultstate="collapsed" desc="metodos estandar para descartar los formularios virtuales"> private static final String[] discardableVirtualForms = { "virtualForm1" }; public void descartarFormulariosVirtuales() { track("descartarFormulariosVirtuales"); String virtualFormName; VirtualFormDescriptor descriptor; VirtualFormDescriptor[] descriptors; if (isRetruque()) { try { descriptors = getPaginaBasica().getForm1().getVirtualForms(); if (descriptors != null) { for (int i = 0; i < descriptors.length; i++) { descriptor = descriptors[i]; if (descriptor != null) { virtualFormName = descriptor.getName(); if (virtualFormName != null) { boolean contains = ArrayUtils.contains(discardableVirtualForms, virtualFormName); if (contains) { getPaginaBasica().getForm1().discardSubmittedValues(virtualFormName); } } } } } } catch (Exception ex) { handle(ex); } } } // </editor-fold> // <editor-fold defaultstate="collapsed" desc="metodos estandar para establecer el mensaje por omision de la peticion"> protected void setMensajePeticion() { track("setMensajePeticion"); if (getPaginaBasica().getFacesContext().getMaximumSeverity() == null) { setMensaje(getMensajePeticionPorOmision()); setSeveridad(EnumSeveridadMensaje.INFORMATIVO); } else { int mayor = getPaginaBasica().getFacesContext().getMaximumSeverity().getOrdinal(); setSeveridad(EnumSeveridadMensaje.valueOf(mayor)); boolean continuar = true; Iterator iterator = getPaginaBasica().getFacesContext().getMessages(); while (continuar && iterator.hasNext()) { FacesMessage fm = (FacesMessage) iterator.next(); if (fm != null && fm.getSeverity().getOrdinal() == mayor) { setMensaje(fm.getSummary()); // continuar = false; } } } } // </editor-fold> // <editor-fold defaultstate="collapsed" desc="metodos estandar para el manejo de errores (track, trace, handle, show, ...)"> public void track(String metodo) { if (!designing) { Bitacora.trace(getPaginaBasica().getClass(), getClass().getSimpleName() + "_" + metodo); } } public void track(String metodo, Object arg0) { if (!designing) { Bitacora.trace(getPaginaBasica().getClass(), getClass().getSimpleName() + "_" + metodo, arg0); } } public void track(String metodo, Object arg0, Object arg1) { if (!designing) { Bitacora.trace(getPaginaBasica().getClass(), getClass().getSimpleName() + "_" + metodo, arg0, arg1); } } public void track(String metodo, Object arg0, Object arg1, Object arg2) { if (!designing) { Bitacora.trace(getPaginaBasica().getClass(), getClass().getSimpleName() + "_" + metodo, arg0, arg1, arg2); } } public void track(String metodo, Object arg0, Object arg1, Object arg2, Object arg3) { if (!designing) { Bitacora.trace(getPaginaBasica().getClass(), getClass().getSimpleName() + "_" + metodo, arg0, arg1, arg2, arg3); } } public void trace(String mensaje) { if (!designing) { trace(mensaje, null, null, null, null); } } public void trace(String mensaje, Object arg0) { if (!designing) { trace(mensaje, arg0, null, null, null); } } public void trace(String mensaje, Object arg0, Object arg1) { if (!designing) { trace(mensaje, arg0, arg1, null, null); } } public void trace(String mensaje, Object arg0, Object arg1, Object arg2) { if (!designing) { trace(mensaje, arg0, arg1, arg2, null); } } public void trace(String mensaje, Object arg0, Object arg1, Object arg2, Object arg3) { if (!designing) { Bitacora.trace(mensaje, arg0, arg1, arg2, arg3); } } public void tell() { Mensaje m; int s; int menor = TLC.getBitacora().getSeveridadMinima().intValue(); int mayor = getMensaje() == null ? menor - 1 : getSeveridad().intValue(); boolean b = true; Iterator iterator = TLC.getBitacora().iterator(); while (iterator.hasNext()) { m = (Mensaje) iterator.next(); if (m != null) { s = m.getSeveridad().intValue(); if (s >= menor) { if (mayor < s || (mayor == s && b)) { mayor = s; b = false; setMensaje(m.toString()); setSeveridad(m.getSeveridad()); } switch (m.getSeveridad()) { case INFORMATIVO: getPaginaBasica().info(m.toString()); break; case ADVERTENCIA: getPaginaBasica().warn(m.toString()); break; case ERROR: getPaginaBasica().error(m.toString()); break; case FATAL: getPaginaBasica().fatal(m.toString()); break; default: getPaginaBasica().info(m.toString()); break; } } } } TLC.getBitacora().clear(); } public void handle(Exception ex) { String string = DBUtils.getProperErrorMessage(ThrowableUtils.getString(ex)); Throwable cause = ThrowableUtils.getCause(ex); if (cause != null) { String simple = cause.getClass().getSimpleName(); String prefix = string.contains(simple) ? "" : StringUtils.join(StringUtils.splitByCharacterTypeCamelCase(simple), " ") + ": "; string = prefix + string; } if (TLC.getBitacora().contiene(string)) { tell(); } else { tell(); getPaginaBasica().fatal(string); if (exceptionLoggingEnabled()) { getPaginaBasica().log(string, ex); } } } private boolean exceptionLoggingEnabled() { return BitUtils.valueOf(CoreBundle.getStringToNull(SIMPLE, EXCEPTION_LOGGING)); } // </editor-fold> }