gente, eu tenho uma página de pesquisa que possui dois períodos de data pra pesquisar: o de vencimento e o de data de inserção.
junto no form, eu tenho uma dropdown de lançamento. pra cada tipo de lançamento, aparece o período de data pra pesquisar correspondente.
a cada vez que troca o lançamento e troca o período de data, eu gostaria de colocar a data de hoje nos values dos calendars do período de data selecionado.
estou fazendo isso no valueChangeListener da minha dropdown, porém o value do calendar não é atualizado na tela.
já tentei por reRender e inserindo uma navigation rule pra redirecionar pra mesma página após o processamento da valueChangeListener.
alguém tem alguma dica?
códigos:
form:
<a4j:form>
(...)
<h:outputText value="Lançamento" />
<h:selectOneMenu id="tipoLancamento"
value="${TituloChequeController.searchTipoLancamento}"
valueChangeListener="${TituloChequeController.selectTipoLancamento}">
<f:selectItems
value="${TituloChequeController.tipoLancamentoOptions}" />
<a4j:support reRender="searchPanel,resultsPanel" event="onchange" />
</h:selectOneMenu>
<rich:spacer />
<rich:spacer />
<h:outputText value="Período" />
<rich:calendar value="#{TituloChequeController.searchPeriodoInicio}"
popup="true" datePattern="dd/MM/yyyy" enableManualInput="true"
id="selectDataInicio" showApplyButton="false" style="width:200px"
reRender="searchPanel,resultsPanel">
</rich:calendar>
<h:outputText value="a" />
<rich:calendar value="#{TituloChequeController.searchPeriodoFinal}"
popup="true" datePattern="dd/MM/yyyy" enableManualInput="true"
id="searchDataFinal" showApplyButton="false" style="width:200px"
reRender="searchPanel,resultsPanel">
</rich:calendar>
<h:outputText value="Vencimento" id="vencimentoTag1"
rendered="#{TituloChequeController.searchTipoLancamento == 'A'}" />
<rich:calendar
value="#{TituloChequeController.searchVencimentoInicio}"
popup="true" datePattern="dd/MM/yyyy" enableManualInput="true"
id="searchVencimentoInicio" showApplyButton="false" style="width:200px"
rendered="#{TituloChequeController.searchTipoLancamento == 'A'}">
<a4j:support event="onchanged" ajaxSingle="true" />
</rich:calendar>
<h:outputText value="a" id="vencimentoTag2"
rendered="#{TituloChequeController.searchTipoLancamento == 'A'}" />
<rich:calendar
value="#{TituloChequeController.searchVencimentoFinal}"
id="searchVencimentoFinal" popup="true" datePattern="dd/MM/yyyy"
enableManualInput="true" showApplyButton="false" style="width:200px"
rendered="#{TituloChequeController.searchTipoLancamento == 'A'}">
</rich:calendar>
(...)
</a4j:form>
backing bean do valueChangeListener:
public String selectTipoLancamento(ValueChangeEvent e) {
searchTipoLancamento = (Character) e.getNewValue();
switch (searchTipoLancamento) {
case 'E':
case 'L':
searchVencimentoFinal = null;
searchVencimentoInicio = null;
searchPeriodoInicio = new Date();
searchPeriodoFinal = new Date();
break;
case 'A':
searchVencimentoFinal = new Date();
searchVencimentoInicio = new Date();
searchPeriodoInicio = null;
searchPeriodoFinal = null;
break;
}
this.clearResults();
logger.debug("public void selectTipoLancamento(ValueChangeEvent e)");
logger.debug(String.format("searchVencimentoFinal: %s", searchVencimentoFinal));
logger.debug(String.format("searchVencimentoInicio: %s", searchVencimentoInicio));
logger.debug(String.format("searchDataInicio: %s", searchPeriodoInicio));
logger.debug(String.format("searchDataFinal: %s", searchPeriodoFinal));
logger.debug(String.format("results: %s", results));
return "back:localizaDocumentos";
}