Hola muy buenas,
Ando desesperado porque no se por qué no me funciona el RENDERED en JSF que cambio por AJAX.
En la JSF tengo:
Código:
<f:view>
<h:form>
<p:panel header="#{msgs.createTitlePage}" styleClass="cajamediana">
<h:panelGrid columns="2" cellpadding="10">
<p:outputLabel value="#{msgs.typeOfObject}"/>
<p:selectOneMenu value="#{drdObjectMB.typeOfObjectSelected}">
<f:selectItem itemValue="#{msgs.selectOriginal}" itemLabel="#{msgs.selectOriginal}"/>
<f:selectItem itemValue="#{msgs.selectAdapted}" itemLabel="#{msgs.selectAdapted}"/>
<p:ajax event="change" update="fileNameOr,descriptionFile,hasAdaptationText,hasAdaptation"
listener="#{drdObjectMB.updateOutputLabels}"/>
</p:selectOneMenu>
<p:outputLabel id="fileNameOr" value="#{drdObjectMB.createNameFileText}"/>
<p:inputText value="#{drdObjectMB.fileName}" size="25">
</p:inputText>
<p:outputLabel id="descriptionFile" value="#{drdObjectMB.descriptionFileText}"/>
<p:inputTextarea value="#{drdObjectMB.description}"
rows="2" cols="25" />
<p:outputLabel id="hasAdaptationText" value="#{msgs.createHasAdaptation}" rendered="#{drdObjectMB.hideFields}"/>
<p:inputText id="hasAdaptation" value="#{drdObjectMB.hasAdaptation}" rendered="#{drdObjectMB.hideFields}" size="25">
</p:inputText>
Con el selectOneMenu consigo cambiar los outputLabel pero no consigo ocultar los outpulabel (id="hasAdaptationText") y inputText (id="hasAdaptation").
La clase java drdObjectMB con la función updateOutputLabels cambia los textos de los outputlabel y el campo boolean hideFields a TRUE y FALSE dependiendo del valos del selectOneMenu.
Código:
public void updateOutputLabels(){
if (this.typeOfObjectSelected.equals("Objeto original") || this.typeOfObjectSelected.equals("Original Object") ){
this.typeOfObjectSelected = constantes.Constantes.obTypeOr;
this.createNameFileText=utilities.Utility.readPropertiesByKey("createNameFileOr");
this.descriptionFileText=utilities.Utility.readPropertiesByKey("createDescriptionFileOr");
this.hideFields = true;
}else if (this.typeOfObjectSelected.equals("Objeto adaptado") || this.typeOfObjectSelected.equals("Adapted Object") ){
this.typeOfObjectSelected = constantes.Constantes.obTypeAd;
this.createNameFileText= utilities.Utility.readPropertiesByKey("createNameFileAd");
this.descriptionFileText=utilities.Utility.readPropertiesByKey("createDescriptionFileAd");
this.hideFields = false;
}
}
Pero no se ocultan los campos.
Por qué puede ser?!?!