Rich:modalPanel em jsp separado a ser chamado por outra tela (usando facelets)

2 respostas
Grinvon

Estou com a seguinte dúvida. Preciso desabilitar botãos de ação em minha tela, porém sei fazer isso usando modalPanel do richfaces para exibir uma msg de "aguarde…" numa boa, mas o problema que tenho que criar todo panel para cada página, em suma, repetição de código.

Então estou tentando fazer esse processo usando facelets, mas minha página não está conseguindo achar o panel. Eu o declaro em outro arquivo de página (nesse caso jspx). Veja como ficou:

Código do arquivo aguardarModalPanel.jspx onde está o rich:modalPanel

<?xml version="1.0" encoding="ISO-8859-1"?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" 
          xmlns="http://www.w3.org/1999/xhtml"
          xmlns:ui="http://java.sun.com/jsf/facelets"
          xmlns:h="http://java.sun.com/jsf/html"
          xmlns:f="http://java.sun.com/jsf/core"
          xmlns:a4j="http://richfaces.org/a4j"
          xmlns:rich="http://richfaces.org/rich"
          version="2.0">
    <ui:composition xmlns="http://www.w3.org/1999/xhtml"
        xmlns:h="http://java.sun.com/jsf/html"
        xmlns:f="http://java.sun.com/jsf/core"
        xmlns:ui="http://java.sun.com/jsf/facelets">
        <h:form>
            <rich:modalPanel id="aguardarPanel" width="350" height="80">
                <f:facet name="header">
                    <h:panelGroup>
                        <h:outputText value="Aguarde...1234"></h:outputText>
                    </h:panelGroup>
                </f:facet>
                <h:outputText value="Aguarde por favor enquanto o sistema está processando..."/>
            </rich:modalPanel>
        </h:form>
    </ui:composition>
    
</jsp:root>

Agora meu intúito é chamá-lo em qualquer página que for necessário desabilitar botão e apresentar a msg de aguarde (contina nesse modal). Para isso estou tentando usar a tag ui:insert do facelets. Veja:

Tag:

<ui:insert name="aguardarModalPanel"/>

E no botão chamo:

<h:commandButton id="botao" action="#{meuBean.persistir}" value="Confirmar">
                    <rich:componentControl for="aguardarPanel" operation="show" attachTo="botao" event="onclick"/>
                </h:commandButton>

Quando o modalPanel ficava dentro da minha tela não tinha problema, o componentControl conseguia chamá-lo sem problema, mas agora não consigo devido ao facelets que não consegue inserí-lo à página.

O arquivo do modalPanel coloquei na mesma pasta onde se encontra a minha página de teste, mas não sei utilizar muito bem essas tags, portanto não sei qual a maneira correta de fazer isso funcionar, alguém teria alguma dica? Qualquer ajuda é sempre bem vinda, obrigado!

2 Respostas

Grinvon

Bom, eu consegue de uma forma que não é ideal, usando na verdade o ui:include no template do projeto, passando o src para o arquivo onde existe o modalPanel que quero renderizar.

Na verdade queria saber se há uma maneira de eu continuar declarando esse arquivo isolado e nas páginas que eu queira utilizar o componente chamar por um ui:insert.

P

abri um tópico e ainda nada.

poderia me ajudar.

abs

Criado 29 de setembro de 2008
Ultima resposta 14 de mar. de 2011
Respostas 2
Participantes 2