Dúvida atributo valueChangeListener no componente <h:selectOneMenu/>

0 respostas
MauNunes

O que preciso fazer é que quando eu seleciono alguma opção na combo tipoGrupo, o valor da padrao deve ser selecionado para sim e desabilitado. Todo esse processo faço conforme abaixo.
O problema é que os campos são desabilitados mas o valor da combo padrao não é atualizado. Dando uma pesquisada na net percebi que o atributo valueChangeListener possui algumas particularidades onde os metodos gets e set do meu DTO não são atualizados.
Existe uma forma de se fazer isso?

<ice:selectOneMenu id="tipoGrupo" styleClass="combo_agrupamento" style="width: 180px;" onchange="submit();" 
	              value="#{grupoBBean.grupoDTO.codigoTipoGrupo}" valueChangeListener="#{grupoBBean.selecionaTipoGrupo}"
	              required="false" disabled="false" converter="javax.faces.Integer">
  <f:selectItems value="#{grupoBBean.comboTipoGrupo}" />	
</ice:selectOneMenu>

 <ice:selectOneMenu id="padrao" styleClass="combo_agrupamento" onchange="submit();" style="width: 180px;" disabled="#grupoBBean.disabledObrigatorio}"  value="#{grupoBBean.grupoDTO.padrao}">
  <f:selectItem id="tipoPadraoItemVazio" itemLabel="#{msg['label.selecione.opcao']}" itemValue=""/>
  <f:selectItem id="tipoPadraoItemAtivo" itemLabel="#{msg['label.sim']}" itemValue="1"/>
  <f:selectItem id="tipoPadraoItemInativo" itemLabel="#{msg['label.nao']}" itemValue="0"/>
</ice:selectOneMenu>
public void selecionaTipoGrupo(ValueChangeEvent valueChangeEvent) {
  Integer codigoTipoGrupo = (Integer)valueChangeEvent.getNewValue();
  if(codigoTipoGrupo == 2) {
    setDisabledEmiteParecer(true);
    setDisabledObrigatorio(true);
  } else {
    if(codigoTipoGrupo == 3) {
    setDisabledEmiteParecer(false);
    setDisabledObrigatorio(false);
  }
}
Criado 4 de agosto de 2010
Respostas 0
Participantes 1