Dúvidas com Lista de Objetos

4 respostas
cherador

Galera estou com dúvida aqui de como eu mostro um dado na minha tabela que está dentro de um modal.

Na verdade o dado somente é carregado quando se verifica a data de termino, para saber se todos aqueles que estão sendo mostratos estão vencidos ou data ainda em vigor.

Sas minha tentativas aqui eu soh consegui mostrar o primeiro dado os dados seguintes ñ aparecem.

Exemplo
linha 1 - Joao Data de Termino ‘Vencida’ <- esses valores eu só estou conseguindo o primeiro dado
linha 2 - Maria Data de Termino ‘Em Vigor’ <- aqui nao aparece :frowning:
linha 3 - José Data de Termino ‘Vencida’
linha 4 - Caio Data de Termino ‘Sem Data de Termino’

meu RICHMODAL com a TABLE

<rich:modalPanel id="desativarPanel" autosized="true" width="950">
                <f:facet name="header">
                    <h:outputText value="Determine a Data de Fim do Responsável"
                                  style="padding-right:15px;" />
                </f:facet>
                <f:facet name="controls">
                    <h:panelGroup>
                        <h:graphicImage value="#{pageContext.servletContext.contextPath}/imagens/close.png"
                                        styleClass="hidelink" id="hidelink5" />
                        <rich:componentControl for="desativarPanel" attachTo="hidelink5"
                                               operation="hide" event="onclick" />
                    </h:panelGroup>
                </f:facet>
                <h:form id="desativaResp">

                    <rich:messages style="color:green;"></rich:messages>

                    <h:panelGrid columns="1">
                        <a4j:outputPanel ajaxRendered="true">


                            <rich:dataTable align="center"
                                            value="#{provaUsuarioController.todasProvasUsu}"
                                            onRowMouseOver="this.style.backgroundColor='#F1F1F1'"
                                            onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'"
                                            var="provaUsus" rows="10" rowKeyVar="row"
                                            ajaxKeys="#{dataTableScrollerBean.keys}" id="tbLista"
                                            onRowContextMenu="if (row) row.style.backgroundColor='#{a4jSkin.tableBackgroundColor}';
                                            this.style.backgroundColor='#F1F1F1'; row=this;
                                            #{rich:component('menu')}.show(event,{provaUsus'#{provaUsuarioController.pu.idprovausu}', currentRow:'#{row}'});
                                            return false;">

                                <f:facet name="header">
                                    <h:outputText value="Listas de Usuários Responáveis pela Prova " />
                                </f:facet>
                                <rich:column>
                                    <f:facet name="header">
                                        <h:outputText value="Código da Prova" />
                                    </f:facet>
                                    <h:outputText value="#{provaUsus.idprovausu}" id="idprovausu" />
                                </rich:column>

                                <rich:column>
                                    <f:facet name="header">
                                        <h:outputText value="Responsável" />
                                    </f:facet>
                                    <h:outputText value="#{provaUsus.usuario.usuario}" id="responsavell" />
                                </rich:column>

                                <rich:column>
                                    <f:facet name="header">
                                        <h:outputText value="Prova" />
                                    </f:facet>
                                    <h:outputText value="#{provaUsus.prova.produto}" id="produtoo" />
                                </rich:column>

                                <rich:column>
                                    <f:facet name="header">
                                        <h:outputText value="Data de Início" />
                                    </f:facet>
                                    <h:outputText value="#{provaUsus.datai}" id="datainii" >
                                        <f:convertDateTime pattern="dd/MM/yyyy"/>
                                    </h:outputText>
                                </rich:column>

                                <rich:column>
                                    <f:facet name="header">
                                        <h:outputText value="Data de Término" />
                                    </f:facet>
                                    <h:outputText value="#{provaUsus.dataf}" id="dataFimm" >
                                        <f:convertDateTime pattern="dd/MM/yyyy"/>
                                    </h:outputText>

                                </rich:column>

                                <rich:column>
                                    <f:facet name="header">
                                        <h:outputText value="Situação do Usuário" />
                                    </f:facet>
                                    <h:outputText value="#{provaUsuarioController.verificaDataFim}" /> //aqui que eu faço a verificação 

                                </rich:column>

                                <rich:column>
                                    <f:facet name="header">
                                        <h:outputText value="Nova Data de Término" />
                                    </f:facet>

                                    <a4j:region id="cadDataF">                                      
                                        <rich:calendar id="dataFim" popup="true"
                                                       value="#{provaUsuarioController.pu.dataf}"
                                                       datePattern="dd/MM/yyyy">
                                            <a4j:support event="onchanged"
                                                         ajaxSingle="true"
                                                         actionListener="#{provaUsuarioController.actionPegarDataFim}"/>
                                        </rich:calendar>
                                        <a4j:commandButton value="Salvar Data Fim"
                                                           action="#{provaUsuarioController.salvarDataSaida}"
                                                           reRender="dataFimm"/>
                                    </a4j:region>

                                </rich:column>

                            </rich:dataTable>

                            <table width="100%">
                                <tbody>
                                    <tr>                                      
                                        <td align="center" width="50%">
                                            <a4j:commandButton value="Cancelar"
                                                               onclick="#{rich:component('desativarPanel')}.hide(); return false;" />
                                        </td>
                                    </tr>
                                </tbody>
                            </table>

                        </a4j:outputPanel>
                    </h:panelGrid>
                </h:form>
            </rich:modalPanel>

Meu bean que carrega a table

public DataModel getTodasProvasUsu() {
        if (prova.getIdaval() == 0) {
            model = new ListDataModel();
            return model;
        }
        if (prova.getIdaval() != 0) {
            model = new ListDataModel(puDao.usersByProvaUsu(prova.getIdaval()));
        }
        return model;
    }

Meu Bean que verifica a se a data está vencida ou nao.

public String getVerificaDataFim() {
        System.out.println("verificaDATAFIM");
        Date dataAtual = new Date();

        String vencida = "Vencida";
        String vigor = "Em vigor";
        String semData = "Sem Data de Termino";

        List<ProvaUsu> pru = puDao.usersByProvaUsu(prova.getIdaval());
        for (ProvaUsu us : pru) {
            List<ProvaUsu> dataFim = puDao.userByDataFim(prova.getIdaval(), us.getUsuario().getIdusu());
            System.out.println(" us.getUsuario().getIdusu() Primeiro ---> " + us.getUsuario().getUsuario());

            for (ProvaUsu pus : dataFim) {
                if (pus.getDataf() != null) {
                    if (pus.getDataf().after(dataAtual)) {
                        System.out.println("if Em Vigor");
                        return vigor;
                    }
                    if (pus.getDataf().before(dataAtual)) {
                        System.out.println("if Vencida");
                        return vencida;
                    }
                }
                if (pus.getDataf() == null) {
                    System.out.println("if sem data de Termino");
                    return semData;
                }
            }
        }
        return "OK";
    }

Se alguem puder me ajudar eu agradeceria mto.

4 Respostas

Hebert_Coelho

O método getVerificaDataFim() está retornando o valor correto?

cherador

sim ele retorna somente o valor do primeiro dado que no caso está vencido.

Hebert_Coelho

Esse método aqui está retornando todos os valores? puDao.usersByProvaUsu(prova.getIdaval());

cherador

Olá jakefrog, ele retorna sim todos os valores. quando eu retiro os return de cada if.

Quando eu coloco o return nos respectivos IF’s, ele retorna ao for e faz tudo de novo, porem sempre retorna a verificação da data do primeiro dado da lista.

Criado 7 de novembro de 2011
Ultima resposta 7 de nov. de 2011
Respostas 4
Participantes 2