<rich:modalPanel> - tela de pesquisa - melhor maneira de fazer

Obas,

Tô precisando de ajuda para fazer uma tela tipo rich:modalPanel que abre para que o usuário possa pesquisar determinado cadastro.

Na tela teria um botão que quando o usuário clicasse, o sistema abriria uma tela para fazer pesquisa de qualquer cadastro.

Considerações:

  • O arquivo xhtml (tela de pesquisa) teria que ser a mesma para todos os cadastros, como uma tela padrão. Eu tenho um ManagedBean o qual passo os parâmetros informando qual cadastro acionar. Todas as telas (xhtml) que tem o botão de pesquisa acionam a mesma tela de pesquisa.

  • Nessa tela de pesquisa, quando o usuário selecionar o registro, o sistema devolve para o objeto pesquisa a informação selecionada.

Alguém poderia me dar algumas dicas de como fazer isso?

No aguardo,

Valeu!

Você tem que fazer o seguinte:

  1. Primeiro você compra um livro sobre JSF e o lê.
  2. Depois você começa a desenvolver a sua aplicação.
  3. Se tiver alguma dúvda, poste aqui, não vamos fazer seu trabalho de faculdade. :twisted:

Oba ateubh,

Valeu a resposta, (apesar dos pesares),

Na verdade eu já tenho o projeto (não sou universitário), é para um cliente que tá no pé. Queria q vc observasse o que ja tenho desenvolvido:

telaPedidos.xhtml


<script>

        function completePessoas() {

            if ( document.forms['formPedido']['formPedido:idPess'].value == "0" )
                Richfaces.showModalPanel('panelPesquisaPedido',{width:860, top:80, height:500});

        }

</script>

.
.
.


                              <td width="20">
                                    <a4j:commandButton image="/imagens/find.gif"
                                                       value="Procura cliente"
                                                       action="#{pedidoMB.procuraPessoas}"
                                                       style="cursor: pointer;"
                                                       oncomplete="javascript:completePessoas()">
                                        <a4j:support action="#{pesquisaCadastroMB.pesquisaCliente}" event="onclick"/>
                                    </a4j:commandButton>
                                </td>

.
.
.

      <rich:modalPanel id="panelPesquisaPedido" width="850" height="370"
                         left="50" top="80">

            <f:facet name="header">
                <h:panelGroup>
                    <h:outputText value="Pesquisa"></h:outputText>
                </h:panelGroup>
            </f:facet>

            <a4j:outputPanel  ajaxRendered="true" id="outputPanelPesquisaPedido" >
                <rich:panel>
                    <ui:include src="pesquisaCadastro.xhtml"/>
                </rich:panel>
            </a4j:outputPanel>

        </rich:modalPanel>

ManagedBean - PedidoMB.java


.
.
.

    public void procuraPessoas() {

        String retorno = "";

        // -> Inicia pesquisa
        this.pedidos.setIdPessoa(0);
        this.pedidos.setNomePessoa("");

        if ( !"".equals(this.pedidos.getCodigoPessoa() ) ) {
            this.dadosPessoas =
                this.pesquisaMediator.pesquisaPessoas( 2,  // -> 2-CLIENTE
                                                       this.pedidos.getCodigoPessoa() );
            if ( this.dadosPessoas != null )
                setDadosPessoas(this.dadosPessoas);
            else
                retorno = "Código do cliente não encontrado!";
        } else
            retorno = "Código do cliente é obrigatório!";

        this.mensaTela = retorno;

    }

.
.
.

ManagedBean - PesquisaCadastroMB.java


   public void pesquisaCliente() {

        this.opcaoCorrente = "cliente";
        this.tituloOpcao = "Clientes";
        this.idTipoPessoa = 2;
        this.resultadoBusca = new ArrayList();
        this.conteudoBusca = "";
        this.dadosPessoas = new Pessoas(this.idTipoPessoa);

    }

   public void pesquisaFornecedor() {
.
.
.
   }

Bem, quando vc clica no botão telaPedidos.xhtml ele aciona o <pesquisaCadastro.xhtml> atraves do modalPanel. Quando aparece a tela, os parametros ja estao definidos, atraves do a4j:support/, que está dentro do a4j:commandButton/

<a4j:support action="#{pesquisaCadastroMB.pesquisaCliente}" event="onclick"/>

Cara, isso funciona. Apenas gostaria de tornar esse procedimento padrão em todo o sistema. Por exemplo, essa tela pesquisaCadastro.xhtml +
a managedBean PesquisaCadastroMB.java configurada para que em qquer cadastro eu passe os parâmetros e ela funcione.

PERGUNTA: Existe outra maneira melhor de fazer isso?

Valeu;.