Problem with Richfaces
kassiuz Jan 24, 2011 9:08 PMI've been working a bit with Seam and RichFaces and this problem seems to be out of my bubble of knowledge.
The problem is that whenever I hit the generate report button and have the semester option picked, the data returned on the semestreSeleccionado
variable is null.
A friend suggested this be due to Ajax, yet I have been unable to find anything, here I leave the xhtml and bean that is called upon
<?xml version="1.0" encoding="ISO-8859-1"?>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich"
xmlns:ajax="https://ajax4jsf.dev.java.net/ajax"
xmlns:s="http://jboss.com/products/seam/taglib"
template="/layout/sfpTemplate.xhtml">
<ui:define name="body">
<h:form>
<rich:panel id="panelBusqueda">
<f:facet name="header">
<h:outputText value="Generación de reportes de verificaciones" />
</f:facet>
<s:decorate template="../layout/edit.xhtml">
<ui:define name="label">Periodo: </ui:define>
<h:selectOneRadio value="#{gestorReportesAseguramiento.tipo}">
<f:selectItem itemValue="1" itemLabel="Mensual" />
<f:selectItem itemValue="2" itemLabel="Semestral" />
<f:selectItem itemValue="3" itemLabel="Anual" />
<a4j:support event="onclick" reRender="richMensual,richSemestral,richAnual"/>
</h:selectOneRadio>
</s:decorate>
<br />
<rich:panel id="richMensual" style="border:0;">
<rich:panel id="rMensual" style="border:0;"
rendered="#{gestorReportesAseguramiento.tipo == 1}">
<s:decorate template="../layout/edit.xhtml">
<ui:define name="label">
<span class="asteriscos">*</span>Mes</ui:define>
<h:selectOneMenu id="selctorMes"
value="#{gestorReportesAseguramiento.mesSeleccionado}">
<s:selectItems var="mesActual" value="#{tiendaEnums.meses2}"
label="#{mesActual}" noSelectionLabel="Seleccionar..." />
<a4j:support event="onchange" ajaxSingle="true" />
</h:selectOneMenu>
</s:decorate>
<s:decorate template="../layout/edit.xhtml">
<ui:define name="label">
<span class="asteriscos">*</span>Año</ui:define>
<h:selectOneMenu id="selctorAnosUno"
value="#{gestorReportesAseguramiento.anoSeleccionado}">
<s:selectItems var="anoActual"
value="#{gestorReportesAseguramiento.listaAnos}" label="#{anoActual}"
noSelectionLabel="Seleccionar..." />
<a4j:support event="onchange" ajaxSingle="true" />
</h:selectOneMenu>
</s:decorate>
</rich:panel>
</rich:panel>
<rich:panel id="richSemestral" style="border:0;">
<rich:panel id="rSemestral" style="border:0;"
rendered="#{gestorReportesAseguramiento.tipo == 2}">
<s:decorate template="../layout/edit.xhtml">
<ui:define name="label">
<span class="asteriscos">*</span>
Semestre</ui:define>
<h:selectOneMenu id="selctorSem"
value="#{gestorReportesAseguramiento.semestreSeleccionado}">
<s:selectItems var="semActual" value="#{tiendaEnums.semestres}"
label="#{semActual}" noSelectionLabel="Seleccionar..." />
<a4j:support event="onchange" ajaxSingle="true" />
</h:selectOneMenu>
</s:decorate>
<s:decorate template="../layout/edit.xhtml">
<ui:define name="label"><span class="asteriscos">*</span>Año</ui:define>
<h:selectOneMenu id="selctorAnosDos"
value="#{gestorReportesAseguramiento.anoSeleccionado}">
<s:selectItems var="anoActual"
value="#{gestorReportesAseguramiento.listaAnos}" label="#{anoActual}"
noSelectionLabel="Seleccionar..." />
<a4j:support event="onchange" ajaxSingle="true" />
</h:selectOneMenu>
</s:decorate>
</rich:panel>
</rich:panel>
<rich:panel id="richAnual" style="border:0;">
<rich:panel id="rAnual" style="border:0;"
rendered="#{gestorReportesAseguramiento.tipo == 3}">
<s:decorate template="../layout/edit.xhtml">
<ui:define name="label"><span class="asteriscos">*</span>Año</ui:define>
<h:selectOneMenu id="selctorAnos"
value="#{gestorReportesAseguramiento.anoSeleccionado}">
<s:selectItems var="anoActual"
value="#{gestorReportesAseguramiento.listaAnos}" label="#{anoActual}"
noSelectionLabel="Seleccionar..." />
<a4j:support event="onchange" ajaxSingle="true" />
</h:selectOneMenu>
</s:decorate>
</rich:panel>
</rich:panel>
<s:decorate id="folio" template="../layout/edit.xhtml">
<ui:define name="label">Folio</ui:define>
<h:inputText value="#{gestorReportesAseguramiento.folio}" />
</s:decorate>
<s:decorate template="../layout/edit.xhtml">
<ui:define name="label">Institución: </ui:define>
<h:selectOneMenu id="lDependencias"
value="#{dependenciaHome.instance}" style=" width : 400px;">
<s:selectItems value="#{dependencias}" var="lDependencia"
label="#{lDependencia.nombre}" noSelectionLabel="Seleccionar..." />
<s:convertEntity />
</h:selectOneMenu>
</s:decorate>
<h:outputText value="#{messages['label.campos.obligatorios']}"
styleClass="asteriscos" />
</rich:panel>
<div class="barraBotones">
<h:commandButton styleClass="inputSubmit"
action="#{gestorReportesAseguramiento.generarReporteVerificacionesSR(1)}"
value="Generar Reporte">
<a4j:support event="onclick"
onsubmit="jQuery('#loadingBusqueda').show();"
oncomplete="jQuery('#loadingBusqueda').hide();" />
</h:commandButton>
</div>
<span id="loadingBusqueda" style="display: none"><h:graphicImage
value="#{messages['icono.loading']}" /></span>
<rich:panel rendered="#{gestorReportesAseguramiento.ceroResultados}">
<f:facet name="header">No se han encontrado registros</f:facet>
<br/>
<h:outputText value="#{messages['label.sinResultados']}" />
<br/>
</rich:panel>
</h:form>
</ui:define>
</ui:composition>package mx.gob.funcionpublica.siac.logica.aseguramientoCalidad;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import java.util.ResourceBundle;
import mx.gob.funcionpublica.siac.logica.Autorizador;
import mx.gob.funcionpublica.siac.logica.GestorDiasFestivos;
import mx.gob.funcionpublica.siac.logica.Periodos;
import mx.gob.funcionpublica.siac.logica.SiacEntityManager;
import mx.gob.funcionpublica.siac.logica.catalogos.DependenciaHome;
import mx.gob.funcionpublica.siac.logica.catalogos.TramiteHome;
import mx.gob.funcionpublica.siac.logica.meta.Registrable;
import mx.gob.funcionpublica.siac.logica.meta.RegistrarEvento;
import mx.gob.funcionpublica.siac.modelo.Usuario;
import mx.gob.funcionpublica.siac.modelo.aseguramiento.ge.GrupoEnfoque;
import mx.gob.funcionpublica.siac.modelo.aseguramiento.ve.Verificacion;
import mx.gob.funcionpublica.siac.modelo.aseguramiento.vesr.AreaVerificada;
import mx.gob.funcionpublica.siac.modelo.aseguramiento.vesr.AtributoVerificado;
import mx.gob.funcionpublica.siac.modelo.aseguramiento.vesr.VerificacionSupervisoria;
import mx.gob.funcionpublica.siac.modelo.catalogos.Dependencia;
import mx.gob.funcionpublica.siac.modelo.catalogos.EstadoVerificacionSupervisoria;
import mx.gob.funcionpublica.siac.modelo.catalogos.Tramite;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.faces.FacesMessages;
import org.jboss.seam.framework.EntityQuery;
@Name(value = "gestorReportesAseguramiento")
@Scope(ScopeType.CONVERSATION)
@Registrable
public class GestorReportesAseguramiento {
private String redirecciona = "";
private Integer anoSeleccionado = 0;
private String mesSeleccionado = "";
private String semestreSeleccionado = "";
private String folio;
private Date fechaInicio;
private Date fechaFin;
private Date fechaActual = new Date();
private int tipo = 1;
private Date fechaInicioAno;
private Date fechaFinAno;
private Date fechaInicioSemestre;
private Date fechaFinSemestre;
private Date fechaInicioMes;
private Date fechaFinMes;
private Tramite tramite;
@In(create=true)
private Autorizador autorizador;
@In(value = "tramiteHome", create = true, required = false)
private TramiteHome tramiteHome;
private Dependencia dependencia;
private Dependencia dependenciaSR;
@In(create = true)
private DependenciaHome dependenciaHome;
private VerificacionSupervisoria verificacionSR;
private EstadoVerificacionSupervisoria etapa;
@In(value = "usuario", create = true, required = false)
private Usuario usuario;
@In(value = "periodos", create = true, required = false)
private Periodos periodo;
private List<Integer> listaAnos = new ArrayList<Integer>();
@In(value = "gestorDiasFestivos", create = true, required = false)
GestorDiasFestivos gestorDiasFestivos;
@In(value = "siacEntityManager", create = true)
private SiacEntityManager siacEntityManager;
@In(value = "gruposEnfoquePorTramite", create = true, required = false)
private EntityQuery<GrupoEnfoque> gruposEnfoqueTramite;
private List<GrupoEnfoque> listaGruposEnfoqueTramite = new ArrayList<GrupoEnfoque>();
@In(value = "verificacionesPorTramite", create = true, required = false)
private EntityQuery<Verificacion> verificacionesTramite;
private List<Verificacion> listaVerificacionesTramite = new ArrayList<Verificacion>();
@In(value = "verificacionesSR", create = true, required = false)
private EntityQuery<VerificacionSupervisoria> verificacionesSR;
private List<VerificacionSupervisoria> listaVerificacionesSR = new ArrayList<VerificacionSupervisoria>();
private ResourceBundle bundleAseguramiento = ResourceBundle.getBundle(
"aseguramiento_participacion", Locale.getDefault());
@In
private FacesMessages facesMessages;
private boolean ceroResultados;
public String getFolio() {
return folio;
}
public void setFolio(String folio) {
this.folio = folio;
}
public Date getFechaInicio() {
return fechaInicio;
}
public void setFechaInicio(Date fechaInicio) {
this.fechaInicio = fechaInicio;
}
public Date getFechaFin() {
return fechaFin;
}
public void setFechaFin(Date fechaFin) {
this.fechaFin = fechaFin;
}
public Date getFechaActual() {
return fechaActual;
}
public void setFechaActual(Date fechaActual) {
this.fechaActual = fechaActual;
}
public int getTipo() {
return tipo;
}
public void setTipo(int tipo) {
this.tipo = tipo;
}
public Tramite getTramite() {
return tramite;
}
public void setTramite(Tramite tramite) {
this.tramite = tramite;
}
public Dependencia getDependencia() {
return dependencia;
}
public void setDependencia(Dependencia dependencia) {
this.dependencia = dependencia;
}
public Dependencia getDependenciaSR() {
return dependenciaSR;
}
public void setDependenciaSR(Dependencia dependenciaSR) {
this.dependenciaSR = dependenciaSR;
}
public Integer getAnoSeleccionado() {
return anoSeleccionado;
}
public void setAnoSeleccionado(Integer anoSeleccionado) {
this.anoSeleccionado = anoSeleccionado;
}
public String getMesSeleccionado() {
return mesSeleccionado;
}
public void setMesSeleccionado(String mesSeleccionado) {
this.mesSeleccionado = mesSeleccionado;
}
public String getSemestreSeleccionado() {
return semestreSeleccionado;
}
public void setSemestreSeleccionado(String semestreSeleccionado) {
this.semestreSeleccionado = semestreSeleccionado;
}
public Date getFechaInicioAno() {
return fechaInicioAno;
}
public void setFechaInicioAno(Date fechaInicioAno) {
this.fechaInicioAno = fechaInicioAno;
}
public Date getFechaFinAno() {
return fechaFinAno;
}
public void setFechaFinAno(Date fechaFinAno) {
this.fechaFinAno = fechaFinAno;
}
public Date getFechaInicioSemestre() {
return fechaInicioSemestre;
}
public void setFechaInicioSemestre(Date fechaInicioSemestre) {
this.fechaInicioSemestre = fechaInicioSemestre;
}
public Date getFechaFinSemestre() {
return fechaFinSemestre;
}
public void setFechaFinSemestre(Date fechaFinSemestre) {
this.fechaFinSemestre = fechaFinSemestre;
}
public Date getFechaInicioMes() {
return fechaInicioMes;
}
public void setFechaInicioMes(Date fechaInicioMes) {
this.fechaInicioMes = fechaInicioMes;
}
public Date getFechaFinMes() {
return fechaFinMes;
}
public void setFechaFinMes(Date fechaFinMes) {
this.fechaFinMes = fechaFinMes;
}
public VerificacionSupervisoria getVerificacionSR() {
return verificacionSR;
}
public void setVerificacionSR(VerificacionSupervisoria verificacionSR) {
this.verificacionSR = verificacionSR;
}
public EstadoVerificacionSupervisoria getEtapa() {
return etapa;
}
public void setEtapa(EstadoVerificacionSupervisoria etapa) {
this.etapa = etapa;
}
@SuppressWarnings("deprecation")
public List<Integer> getListaAnos() {
listaAnos.clear();
if (listaAnos != null || listaAnos.isEmpty()) {
int year = new Date().getYear() + 1900;
for (int i = 0; i < 10; i++)
listaAnos.add(year - i);
}
return listaAnos;
}
public void setListaAnos(List<Integer> listaAnos) {
this.listaAnos = listaAnos;
}
public List<GrupoEnfoque> getListaGruposEnfoqueTramite() {
if (listaGruposEnfoqueTramite != null
|| listaGruposEnfoqueTramite.isEmpty()) {
if (tramiteHome.getInstance().getTramiteId() > 0) {
tramite = tramiteHome.getInstance();
} else
tramite = null;
listaGruposEnfoqueTramite = gruposEnfoqueTramite.getResultList();
}
return listaGruposEnfoqueTramite;
}
public void setListaGruposEnfoqueTramite(
List<GrupoEnfoque> listaGruposEnfoqueTramite) {
this.listaGruposEnfoqueTramite = listaGruposEnfoqueTramite;
}
public List<Verificacion> getListaVerificacionesTramite() {
if (listaVerificacionesTramite != null
|| listaVerificacionesTramite.isEmpty()) {
if (tramiteHome.getInstance().getTramiteId() > 0) {
tramite = tramiteHome.getInstance();
} else
tramite = null;
listaVerificacionesTramite = verificacionesTramite.getResultList();
}
return listaVerificacionesTramite;
}
public void setListaVerificacionesTramite(
List<Verificacion> listaVerificacionesTramite) {
this.listaVerificacionesTramite = listaVerificacionesTramite;
}
public List<VerificacionSupervisoria> getListaVerificacionesSR() {
if (listaVerificacionesSR != null || listaVerificacionesSR.isEmpty()) {
if (dependenciaHome.getInstance().getDependenciaId() > 0) {
dependenciaSR = dependenciaHome.getInstance();
} else
dependenciaSR = null;
listaVerificacionesSR = verificacionesSR.getResultList();
}
return listaVerificacionesSR;
}
public void setListaVerificacionesSR(
List<VerificacionSupervisoria> listaVerificacionesSR) {
this.listaVerificacionesSR = listaVerificacionesSR;
}
public void resultados(){
}
@RegistrarEvento
public String generarReporteGrupoEnfoque() {
if (getListaGruposEnfoqueTramite().size() > 0) {
if (this.tipo == 1){
redirecciona = "/asegCalidadReportes/reporteGrupoEnfoqueTramite.xhtml";
} else if (this.tipo == 2){
redirecciona = "/asegCalidadReportes/reporteCompromisosGrupoEnfoque.xhtml";
} else {
redirecciona = null;
}
} else {
redirecciona = null;
}
return redirecciona;
}
@RegistrarEvento
public String generarReporteVerificacion() {
if (getListaVerificacionesTramite().size() > 0) {
if (this.tipo == 1){
redirecciona = "/asegCalidadReportes/reporteVerificacionTramite.xhtml";
}else if (this.tipo == 2){
redirecciona = "/asegCalidadReportes/reporteAreasVerificacion.xhtml";
} else if (this.tipo == 3) {
redirecciona = "/asegCalidadReportes/reporteCompromisosVerificacion.xhtml";
} else {
redirecciona = null;
}
} else {
redirecciona = null;
}
return redirecciona;
}
@RegistrarEvento
public String generarReporteVerificacionesSR(int tipo) {
System.out.println("tipo local:"+tipo);
System.out.println("tipo global:"+this.tipo);
System.out.println("año:"+this.anoSeleccionado);
System.out.println("semestre:"+this.semestreSeleccionado);
System.out.println("mes:"+this.mesSeleccionado);
if(validar()){
obtenerPeriodos(this.tipo);
}else{
return null;
}
if (getListaVerificacionesSR().size() > 0) {
if (tipo == 1) {
return "/asegCalidadReportes/reporteVerificacionSRPorOrigen.xhtml";
} else if (tipo == 2) {
return "/asegCalidadReportes/reporteVerificacionSRPorConclusion.xhtml";
} else if (tipo == 3) {
return "/asegCalidadReportes/reporteVerificacionSRPorAutoridad.xhtml";
} else if (tipo == 4) {
return "/asegCalidadReportes/reporteVerificacionSRPorVerificacion.xhtml";
} else if (tipo == 5) {
return "/asegCalidadReportes/reporteVerificacionSRPorReporte.xhtml";
} else
return null;
} else{
setCeroResultados(true);
return null;
}
}
public int vencimientoQuinceDias(Date fechaInicio, long verificacionId,
int tipo) {
int nDias = 0;
int res = 0;
Date fechaActual = new Date();
if (fechaInicio != null) {
res = gestorDiasFestivos.calcularDiasHabiles(fechaInicio,
fechaActual);
verificacionSR = siacEntityManager.obtenerVerificacionSupervisoriaPorId(verificacionId);
for (AreaVerificada _area : verificacionSR.getAreasVerificadas()) {
for (AtributoVerificado _atributo : _area
.getAtributosVerificados()) {
if (_atributo.getProblematica() != null) {
if (tipo == 1) {
if ((res <= 15)
&& (_atributo.getProblematica()
.getFechaProgramadaSolucion() == null)) {
nDias++;
}
}
if (tipo == 2) {
if ((res > 15)
&& (res <= 18)
&& (_atributo.getProblematica()
.getFechaProgramadaSolucion() == null)) {
nDias++;
}
}
if (tipo == 3) {
if ((res > 18)
&& (_atributo.getProblematica()
.getFechaProgramadaSolucion() == null)) {
nDias++;
}
}
}
}
}
}
return nDias;
}
public void obtenerPeriodos(int intEtapa) {
if(intEtapa == 2)
this.etapa = EstadoVerificacionSupervisoria.CONCLUSION;
else
this.etapa = null;
if (this.tipo == 1) {
fechaInicioMes = periodo
.inicioMes(anoSeleccionado, mesSeleccionado);
fechaFinMes = periodo.finMes(anoSeleccionado, mesSeleccionado);
} else if (this.tipo == 2) {
fechaInicioSemestre = periodo.inicioSemestre(anoSeleccionado,
semestreSeleccionado);
fechaFinSemestre = periodo.finSemestre(anoSeleccionado,
semestreSeleccionado);
} else if (this.tipo == 3) {
fechaInicioAno = periodo.inicioAno(anoSeleccionado);
fechaFinAno = periodo.finAno(anoSeleccionado);
}
}
public boolean validar(){
boolean valido = true;
String anoSel = "";
if(getTipo() == 1){
if(mesSeleccionado == null){
facesMessages.addToControl("selctorMes", bundleAseguramiento.getString("validate.reporteOrigen"));
anoSel = "selctorAnosUno";
valido = false;
}
}else if(getTipo() == 2){
if(semestreSeleccionado == null){
facesMessages.addToControl("selctorSem", bundleAseguramiento.getString("validate.reporteOrigen"));
anoSel = "selctorAnosDos";
valido = false;
}
}else if(getTipo() == 3){
anoSel = "selctorAnos";
}
if(anoSeleccionado == null){
facesMessages.addToControl(anoSel, bundleAseguramiento.getString("validate.reporteOrigen"));
valido = false;
}
return valido;
}
@RegistrarEvento
public void inicializar() {
if (autorizador.tienePermiso("VE", "CONSULTA", "GENERAL") ||
autorizador.tienePermiso("VE", "MODIFICACION", "GENERAL") ||
autorizador.tienePermiso("VE", "CREACION", "GENERAL") ||
autorizador.tienePermiso("FG", "CONSULTA", "GENERAL") ||
autorizador.tienePermiso("FG", "MODIFICACION", "GENERAL") ||
autorizador.tienePermiso("FG", "CREACION", "GENERAL")){
this.dependencia = null;
this.usuario = null;
}else{
this.dependencia = usuario.getDependencia();
}
}
public String getRedirecciona() {
return redirecciona;
}
public void setRedirecciona(String redirecciona) {
this.redirecciona = redirecciona;
}
public boolean isCeroResultados() {
return ceroResultados;
}
public void setCeroResultados(boolean ceroResultados) {
this.ceroResultados = ceroResultados;
}
public Usuario getUsuario() {
if (autorizador.tienePermiso("FG", "CONSULTA", "GENERAL") ||
autorizador.tienePermiso("FG", "MODIFICACION", "GENERAL") ||
autorizador.tienePermiso("FG", "CREACION", "GENERAL") ||
autorizador.tienePermiso("VE", "CONSULTA", "GENERAL") ||
autorizador.tienePermiso("VE", "MODIFICACION", "GENERAL") ||
autorizador.tienePermiso("VE", "CREACION", "GENERAL") ){
return null;
}
return usuario;
}
public void setUsuario(Usuario usuario) {
this.usuario = usuario;
}
}
if anyone can spot a solution to this, or needs anything I'd appreciate the help.