Desafio com modalPanel + dataTable + RichFaces +

Pessoal, vamos ver se eu consigo passar meu problema…

Tenho um scrollableDataTable do rich exibido dentro de um modalPanel do rich tb.
Esse Modal é aberto com um a4j:commandButton…
Eu possuo um metodo que “pega” o objeto da linha selecionada dentro do dataTable.
Agora queria uma maneira de com apenas um botao dentro deste modal fazer o seguinte!

  1. executar meu metodo (preciso do objeto selecionado);
  2. atribuir este objeto a uma instancia ja existente no formulario que gerou o modal (por isso usei os a4j);
  3. e fechar o Modal…

Resumindo, estou cadastrando o documento… para selecionar o cliente, clico no botao que aber o modal com uma lista de clientes, seleciono o cliente marcando a linha, clico no botao selecionar e esse botao fecha o modal trazendo para a instancia do documento (possui um atributo cliente do tipo Pessoa que ira receber aquele objeto selecionado).

Alguem ja fez algo parecido?

Obrigado antecipadamente…

Vello,

O botão/link do richfaces (a4j) tem uma propriedade chamada oncomplete que executa uma determinada ação após a chamada da action no backing bean.
Se você tem um botão selecionar em cada linha da lista de clientes fica mais fácil, porque você pode:

  1. Executar o método que vocẽ quer já com o cliente selecionado enviado como parâmetro para o método, ex: #{action.selecionarCliente(cliente)}
  2. Fechar o modalPanel na propriedade oncomplete, ex: Richfaces.hideModalPanel(‘nomeDoModalPanel’, {});

Para que isso funcione somente com 1 botão selecionar, vai ser mais complicado porque você terá que fazer alguns controles no javascript para a “parada” funcionar corretamente.

Espero ter ajudado.