Bom dia galera, estou aqui precisando da ajuda de vcs. Estou com um problema em renderizar a minha tabela. Tenho um form que insere a data de início de uma série de etapas. A função atualizar no banco funciona perfeitamente. Não gera nenhum erro, os 2 únicos problemas são: renderizar a msg de confirmação que funcionou (ou não) a operação, e renderizar a table.
segue o código que uso pra atualizar os campos
meu bean
public String salvarDataInicioPrev(ActionEvent ae) throws IOException {
System.out.println("salvarDataInicioPrev");
HtmlCalendar componentDataInicialPrev = (HtmlCalendar) ae.getComponent().findComponent("dataIniPrev");
Date datai = (Date) componentDataInicialPrev.getValue();
List<Etapa> etapaList = etapaDao.todosEtapasByClasseAndProvaAndEtapaPadrao(classe.getIdclasse(), prova.getIdaval());
Integer idEtapa = 1;
for (Etapa etap : etapaList) {
System.out.println("------------------------------COMEÇO Data Inicio Previsto ----------------------------------");
idEtapa = etap.getId().getIdetapa();
etapaPK.setIdetapa(idEtapa);
etapaPK.setIdaval(prova.getIdaval());
etapa.setProva(prova);
etapaPK.setIdclasse(classe.getIdclasse());
etapaPadrao.setClasse(classe);
etapa.setId(etapaPK);
if (etapa.getFeriadoprevisao() == null) {
short a = (short) 0;
etapa.setFeriadoprevisao(a);
}
System.out.println("retardo -> " + etap.getEtapapadrao().getRetardo());
etapa.setDtinicioprevisao(DataUtil.getCalcularDataPrevisao2(datai, etap.getEtapapadrao().getRetardo()));
System.out.println("resultado getCalcularDataPrevisao2 -> " + DataUtil.getCalcularDataPrevisao2(etapa.getDtinicioprevisao(), etap.getEtapapadrao().getRetardo()));
System.out.println("Salvando Data Ini Prev ->" + dateFormat.format(etapa.getDtinicioprevisao()));
int qtdeDias = etap.getEtapapadrao().getTempoestimado() + etapa.getFeriadoprevisao();
System.out.println("feriado -> " + etapa.getFeriadoprevisao());
System.out.println("duraçao -> " + etap.getEtapapadrao().getTempoestimado());
System.out.println("duração+feriado = " + qtdeDias);
etapa.setDtterminoprevisto(DataUtil.getCalcularDataTerminoPrevisto(etapa.getDtinicioprevisao(), qtdeDias));
System.out.println("Salvando Data Termino Previsto ->" + dateFormat.format(etapa.getDtterminoprevisto()));
etapaDao.atualizar(etapa);
System.out.println("-----------------Fim Data Inicio Previsto ----------------------");
}
addMessage("Datas de Início Previsto salvas com sucesso!!"); // essa msg nao aparece de jeito nenhum!!!
return "OK";
}
minha jsf parte da table que quero q seja renderizada
<rich:tab label="Etapas">
<a4j:region id="regiaoEtapas">
<rich:panel bodyClass="info">
<f:facet name="header">
<h:outputText value="Etapa" />
</f:facet>
<a4j:outputPanel id="msgConfirmEtapas">
<h:messages styleClass="msgOK"/>
</a4j:outputPanel>
<a4j:outputPanel id="saidaEtapaPrev">
<h:form id="formEtapaPrev">
<h:outputText value="Data de Início: " styleClass="campo"/>
<rich:calendar popup="true" id="dataIniPrev" datePattern="dd/MM/yyyy"
value="#{provaController.etapa.dtinicioprevisao}" readonly="#{provaController.disable}"
required="true">
</rich:calendar>
<br />
<a4j:commandButton value="Salvar Previsão" id="btSalvarEtapa"
actionListener="#{provaController.salvarDataInicioPrev}"
reRender="msgConfirmEtapas, saidaEtapaList, tbListaEtapas, saidaEtapaPrev"
disabled="#{provaController.disable}"/>
</h:form>
</a4j:outputPanel>
<a4j:status>
<f:facet name="start">
<h:graphicImage value="#{pageContext.servletContext.contextPath}/imagens/loading.gif" width="30px"/>
</f:facet>
</a4j:status>
<%-- ------------------------------- Início da Tabela Etapas ------------------------------------------ --%>
<a4j:outputPanel id="saidaEtapaList">
<rich:dataTable value="#{provaController.todasEtapasByClasseAndProvaAndEtapaPadrao}"
onRowMouseOver="this.style.backgroundColor='#BEBEBE'" rendered="true"
onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'"
var="etapas" rows="20" rowKeyVar="row" id="tbListaEtapas"
ajaxKeys="#{dataTableScrollerBean.keys}"
onRowContextMenu="if (row) row.style.backgroundColor='#{a4jSkin.tableBackgroundColor}';
this.style.backgroundColor='#F1F1F1'; row=this;
#{rich:component('menu')}.show(event,{etapaID:'#{etapaController.etapa.id.idetapa}', currentRow:'#{row}'});
return false;">
<f:facet name="header">
<rich:columnGroup>
<rich:column colspan="20">
<h:outputText value="Etapas " styleClass="campo"/>
</rich:column>
<rich:column rowspan="2" breakBefore="true">
<h:outputText value="Etapa" styleClass="campo" />
</rich:column>
<rich:column colspan="4" breakBefore="true">
<h:outputText value="Previsão" styleClass="campo" />
</rich:column>
<rich:column colspan="4">
<h:outputText value="Execução" styleClass="campo" />
</rich:column>
<rich:column rowspan="2">
<h:outputText value="Ajuste" styleClass="campo" />
</rich:column>
<rich:column rowspan="2">
<h:outputText value="Observação" styleClass="campo" />
</rich:column>
<rich:column rowspan="2">
<h:outputText value="Ações" styleClass="campo" />
</rich:column>
<rich:column rowspan="2" breakBefore="true">
<rich:spacer />
</rich:column>
<rich:column breakBefore="true">
<h:outputText value="Início" styleClass="campo" />
</rich:column>
<rich:column>
<h:outputText value="Término" styleClass="campo" />
</rich:column>
<rich:column>
<h:outputText value="Feriado" styleClass="campo" />
</rich:column>
<rich:column>
<h:outputText value="Duração" styleClass="campo" />
</rich:column>
<rich:column>
<h:outputText value="Início" styleClass="campo" />
</rich:column>
<rich:column>
<h:outputText value="Termino" styleClass="campo" />
</rich:column>
<rich:column>
<h:outputText value="Feriado" styleClass="campo" />
</rich:column>
<rich:column>
<h:outputText value="Duração" styleClass="campo" />
</rich:column>
<rich:column rowspan="2">
<rich:spacer />
</rich:column>
<rich:column rowspan="2">
<rich:spacer />
</rich:column>
<rich:column rowspan="2">
<rich:spacer />
</rich:column>
</rich:columnGroup>
</f:facet>
<rich:column>
<!-- Nome das Etapas padrões --!>
<h:outputText value="#{etapas.etapapadrao.id.idetapa}" id="idetapaPadr"/>
<rich:spacer width="4px"/>
<h:outputText value="#{etapas.etapapadrao.etapa}" id="etapaNome"/>
</rich:column>
<rich:column>
<!-- Data de Início Previsto --!>
<h:outputText value="#{etapas.dtinicioprevisao}" id="dataIniPrevTable">
<f:convertDateTime pattern="dd/MM/yyyy"/>
</h:outputText>
</rich:column>
<rich:column>
<!-- Data de Termino Previsto --!>
<h:outputText value="#{etapas.dtterminoprevisto}" id="dataFimPrevTable">
<f:convertDateTime pattern="dd/MM/yyyy"/>
</h:outputText>
</rich:column>
<rich:column>
<!-- Feriado Previsto --!>
<a4j:region id="regionFeriadoPrev">
<h:outputText value="#{etapas.feriadoprevisao}" id="feriadoPrev"/>
<rich:spacer width="5px"/>
<a4j:commandLink ajaxSingle="true" id="feriadoLink" action="#{provaController.prepararAddFeriado}"
disabled="#{provaController.disable}" immediate="true"
reRender="feriadoPrev, dataFimPrevTable">
<h:graphicImage value="imagens/icone_mais.jpg" style="border:0" width="27px"/>
<f:setPropertyActionListener value="#{row}"
target="#{dataTableScrollerBean.currentRow}" />
</a4j:commandLink>
<rich:toolTip for="feriadoLink" value="Clique aqui para adicionar 1 dia" />
<rich:spacer width="5px"/>
<a4j:commandLink ajaxSingle="true" id="apagarFeriadoPrevlink"
action="#{provaController.prepararDiminuirFeriado}"
reRender="feriadoPrev, dataFimPrevTable">
<h:graphicImage value="imagens/sinalMenos.jpg" style="border:0" width="27px"/>
<f:setPropertyActionListener value="#{row}"
target="#{dataTableScrollerBean.currentRow}" />
</a4j:commandLink>
<rich:toolTip for="apagarFeriadoPrevlink" value="Clique aqui para diminuir 1 dia" />
</a4j:region>
</rich:column>
<rich:column>
<!-- Duração Previsto --!>
<h:outputText value="#{etapas.etapapadrao.tempoestimado}" id="tempEstimado"/>
</rich:column>
<rich:column>
<!-- Data de Início da Execução --!>
<h:outputText value="#{etapas.dtinicio}" id="dataIniExec">
<f:convertDateTime pattern="dd/MM/yyyy"/>
</h:outputText>
</rich:column>
<rich:column>
<!-- Data de Término da Execuçao --!>
<h:outputText value="#{etapas.dtfim}" id="dataFimExec">
<f:convertDateTime pattern="dd/MM/yyyy"/>
</h:outputText>
</rich:column>
<rich:column>
<!-- Feriado Efetivo --!>
<a4j:region id="regionFeriadoEfetivo">
<h:outputText value="#{etapas.feriadoefetivo}" id="feriadoEfetivo"/>
<rich:spacer width="5px"/>
<a4j:commandLink ajaxSingle="true" id="feriadoExecLink"
action="#{provaController.prepararAddFeriadoExec}"
disabled="#{provaController.disable}"
immediate="true" reRender="feriadoEfetivo, dataFimExec, duracaoefetiva">
<h:graphicImage value="imagens/icone_mais.jpg" style="border:0" width="27px"/>
<f:setPropertyActionListener value="#{row}"
target="#{dataTableScrollerBean.currentRow}" />
</a4j:commandLink>
<rich:toolTip for="feriadoExecLink" value="Clique aqui para adicionar 1 dia" />
<rich:spacer width="5px"/>
<a4j:commandLink ajaxSingle="true" id="apagarFeriadoExeclink"
action="#{provaController.prepararDiminuirFeriadoExec}"
reRender="feriadoEfetivo, dataFimExec, duracaoefetiva">
<h:graphicImage value="imagens/sinalMenos.jpg" style="border:0" width="27px"/>
<f:setPropertyActionListener value="#{row}"
target="#{dataTableScrollerBean.currentRow}" />
</a4j:commandLink>
<rich:toolTip for="apagarFeriadoExeclink" value="Clique aqui para diminuir 1 dia" />
</a4j:region>
</rich:column>
<rich:column>
<!-- Duração Efetiva --!>
<h:outputText value="#{etapas.duracaoefetiva}" id="duracaoefetiva"/>
</rich:column>
<rich:column>
<!-- Ajuste --!>
</rich:column>
<rich:column>
<!-- Campo Obs --!>
<h:outputText value="#{etapas.obs}" id="obs"/>
</rich:column>
<rich:column>
<!-- Ações --!>
<a4j:commandLink ajaxSingle="true" id="etapaExecLink" action="#{provaController.prepararEtapasExec}"
oncomplete="#{rich:component('etapaExecPanel')}.show();"
reRender="etapaSelec"
disabled="#{provaController.disable}">
<h:graphicImage value="imagens/editar.jpg" style="border:0" width="20px"/>
<f:setPropertyActionListener value="#{row}"
target="#{dataTableScrollerBean.currentRow}" />
</a4j:commandLink>
<rich:toolTip for="etapaExecLink" value="Clique aqui para inserir Etapa Efetiva" />
<rich:spacer width="8px"/>
<a4j:commandLink ajaxSingle="true" id="limparDataIniFimLink" action="#{provaController.limparDataIniDataFimEfetivo}"
reRender="duracaoefetiva, obs, dataIniExec, dataFimExec"
disabled="#{provaController.disable}">
<h:graphicImage value="imagens/bt_limpar.gif" style="border:0" width="20px"/>
<f:setPropertyActionListener value="#{row}"
target="#{dataTableScrollerBean.currentRow}" />
</a4j:commandLink>
<rich:toolTip for="limparDataIniFimLink" value="Clique aqui para limpar os dados da execução." />
</rich:column>
</rich:dataTable>
</a4j:outputPanel>
<%-- ---------------------------------- Fim da Tabela Etapas ------------------------------------------ --%>
</rich:panel>
</a4j:region>
</rich:tab>
<rich:spacer height="10"/>
<%-- *********************************************************************************************************************************************** --%>
<%-- ************************************************ FIM DO ETAPAS ******************************************************************************** --%>
<%-- *********************************************************************************************************************************************** --%>
</rich:tabPanel>
O mais estranho é que somente essa table que nao faz a renderização. Tenho outras que funcionam perfeitamente.
alguem já passou por isso???