Pessoal tenho a seguinte situação:
Tenho a data final e data inicial, só que a data final é formada pela soma do prazo com a data inicial e se você notar que dentro do selectOneMenu tem um <p:ajax> que faz um update no componente datafinal, mas o resultado não mostra, porém ao apertar em algum botão no terminal mostra o valor da datafinal mas não aparece o valor apra o usuário.
<h:form id="form">
<p:panelGrid id="pnlcomplementares" columns="2">
<p:outputLabel for="datainicial" value="Data inicial: "/>
<p:calendar id="datainicial" value="#{processoFaces.selectProcesso.datainicial}" pattern="dd/MM/yyyy" size="18"/>
<p:outputLabel for="prazo" value="Prazo: "/>
<p:selectOneMenu id="prazo" value="#{processoFaces.selectProcesso.prazo}">
<f:selectItem itemLabel="- Selecione o Prazo - " />
<f:selectItem itemLabel="5 Dias" itemValue="5" />
<f:selectItem itemLabel="10 Dias" itemValue="10" />
<f:selectItem itemLabel="15 Dias" itemValue="15" />
<f:selectItem itemLabel="20 Dias" itemValue="20" />
<f:selectItem itemLabel="30 Dias" itemValue="30" />
<f:selectItem itemLabel="45 Dias" itemValue="45" />
<f:selectItem itemLabel="60 Dias" itemValue="60" />
<f:selectItem itemLabel="90 Dias" itemValue="90" />
<f:selectItem itemLabel="120 Dias" itemValue="120" />
<f:selectItem itemLabel="180 Dias" itemValue="180" />
<f:selectItem itemLabel="240 Dias" itemValue="240" />
<f:selectItem itemLabel="365 Dias" itemValue="365" />
<p:ajax event="blur" listener="#{processoFaces.onChange}" update=":form:datafinal, :form:pnlcomplementares, :form:msg" />
</p:selectOneMenu>
<p:outputLabel for="datafinal" value="Data Final: "/>
<p:calendar id="datafinal" value="#{processoFaces.selectProcesso.datafinal}" pattern="dd/MM/yyyy" />
<p:outputLabel for="descricao" value="Descricão do Processo: "/>
<p:inputTextarea id="descricao" value="#{processoFaces.selectProcesso.descricao_processo}" style=" width: 780px; height: 299px"/>
</p:panelGrid>
<h:form/>
Método onChange
public void onChange(SelectEvent event){
System.out.println("Selecionando o evento");
System.out.println("==="+event.getObject().toString()+"===");
Calendar cal = Calendar.getInstance();
cal.setTime(selectProcesso.getDatainicial());
cal.add(Calendar.DATE, selectProcesso.getPrazo());
selectProcesso.setDatafinal(cal.getTime());
msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Data Final é igual"+ event.getObject().toString(), null);
FacesContext.getCurrentInstance().addMessage("add", msg);
}
O método de acesso(SET)
public void setPrazo(Integer prazo) {
System.out.println("Set Prazo");
this.prazo = prazo;
Calendar cal = Calendar.getInstance();
cal.setTime(datainicial);
cal.add(Calendar.DATE, prazo);
datafinal = cal.getTime();
setDatafinal(datafinal);
System.out.println("Data Final: "+getDatafinal());
}
//este é o caso da soma da data de hoje mais 10 dias
Set Prazo
Data Final: Sun Dec 02 00:00:00 BRST 2012
Desde já agradeço pela ajuda.
