Pessoal,
Não consegui com javascript, tampouco com binding. Seguinte:
Ao pressionar o p:commandButton abaixo, ele deve ser renomeado para “pesquisando” e ficar desabilitado enquanto não retornar o resultado do método chamado no action.
Pesquisei pra caramba e nada. Se alguém tiver um simples exemplo mostrando que é possível no Primefaces realizar isto, agradeço muito poder disponibilizá-lo.
<p:commandButton id="btnPesquisa" value="#{pedidoVendaBean.btnPesquisa.value}" action="#{pedidoVendaBean.carregaListaClientes()}" update="clientes" binding="#
{pedidoVendaBean.btnPesquisa}"/>
<p:commandButton id="btnPesquisa" value="#{pedidoVendaBean.btnPesquisa.value}" action="#{pedidoVendaBean.carregaListaClientes()}" update="btnPesquisa, clientes" binding="#{pedidoVendaBean.btnPesquisa}"/>
<p:commandButton id="btnPesquisa" value="#{pedidoVendaBean.btnPesquisa.value}" action="#{pedidoVendaBean.carregaListaClientes()}" update="btnPesquisa clientes" binding="#{pedidoVendaBean.btnPesquisa}"/>
No método está assim (escopo SessionScoped no managed bean):
@Named(value = "pedidoVendaBean")
@SessionScoped
public class PedidoVendaBean implements Serializable {
...
private CommandButton btnPesquisa = new CommandButton();
public CommandButton getBtnPesquisa() {
return btnPesquisa;
}
public void setBtnPesquisa(CommandButton btnPesquisa) {
this.btnPesquisa = btnPesquisa;
}
...
public PedidoVendaBean() {
this.btnPesquisa.setDisabled(false);
this.btnPesquisa.setValue("Pesquisar");
}
...
public void carregaListaClientes() {
this.btnPesquisa.setValue("Pesquisando...");
this.btnPesquisa.setDisabled(true);
this.btnPesquisa.setUpdate("clientes");
System.out.println("oi aqui");
this.clientela = this.pedido.getCliente().listagemClientes("N", this.pedido.getCliente().getNome_cliente(), "", "", "");
this.mediumClienteCgc = new ClienteDataCgc(this.clientela);
this.btnPesquisa.setDisabled(false);
this.btnPesquisa.setValue("Pesquisar");
}
...