Atualizar p:selectBooleanCheckbox

Quando o usuário clica no selectBooleanCheckbox, capturo a mudança de valor no Bean através do atributo valueChangeListener.
Dado uma condição, é possível que eu queira reverter a troca de valores, ou seja, se o usuário clicou para “checkar”, eu quero “descheckar”.
A parte do valueChangeListener está tranquila.
O problema é o fato de propagar esse valor para view.

Conforme o exemplo acima, eu quero “setar” o valor dele para false.
Faço isso no Bean (certeza, já debuguei para verificar se o valor estava sendo alterado de fato).

Consigo atualizar o growl que está em outro form, mas não consigo atualizar o próprio componente.
Já tentei as formas:

  • update="@this";
  • process="@this";
  • event="change" update="@this"

Nenhuma funcionou.

Seguem os códigos:

View:

<h:panelGrid columns="2" cellpadding="2" style="margin-left: -5px;">
    <p:selectBooleanCheckbox id="myValue"
	value="#{bean.myPropertyVO.myValue}"
	valueChangeListener="#{bean.changeListener}">
	<p:ajax update=":growlForm" />
    </p:selectBooleanCheckbox>
    <h:outputLabel value="#{msg.myMessage}" for="myValue" />
</h:panelGrid>

Bean:

public void changeListener(final ValueChangeEvent event) throws MyException {
    final MyType changedComponent = MyType
        .getByName(event.getComponent().getId());
    if((Boolean) event.getNewValue()) {
        if(isCondition()) {
            //na chamada do método myMethod eu seto o valor da propriedade para false
            this.business.myMethod(
                this.myPropertyVO, changedComponent, false);
            return;
        }
        this.myList.add(changedComponent);
    } else {
        this.myList.remove(changedComponent);
    }
}

Agradeço desde já! :slight_smile: