Tenho uma situação que tenho uma lista de motoristas para ser selecionado.
Porém, caso seja selecionado e em outro
<p:selectOneMenu id="campoMotorista"
value="#{ctrcBean.ctrc.motorista}" effect="fade" filter="true"
filterMatchMode="startsWith" styleClass="full-width"
valueChangeListener="#{ctrcBean.motoristaChangeListener}"
label="#{msg['label.cte.motorista']}">
<f:selectItem itemLabel="Selecione" itemValue="" />
<f:selectItems value="#{ctrcBean.motoristas}" />
<!-- Acredito que o problema esteja aqui -->
<p:ajax event="change" process="@this" render="@this"
update="@this,panelInfoCarga,:formCtrc:growlCte" />
<f:converter binding="#{motoristaConverter}" />
</p:selectOneMenu>
public void motoristaChangeListener(ValueChangeEvent event) {
if (event.getNewValue() instanceof Motorista) {
if (this.ctrc.getRemetente().getId() != null && this.ctrc.getDestinatario().getId() != null) {
Motorista motorista = (Motorista) event.getNewValue();
this.ctrc.setMotorista(motorista);
if (motorista.getVeiculos().size() > 0) {
Veiculo veiculo = motorista.getVeiculos().get(0);
this.ctrc.setVeiculo(veiculo);
}
} else {
this.ctrc.setMotorista(new Motorista());
this.ctrc.setVeiculo(new Veiculo());
// aviso para escolher remetente e destinatário
Util.addError("Aviso",
Util.getMessageBundle("label.cte.msg.erro.remetente.dest"));
}
} else {
// Deselecionou o motorista
}
}