Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

14
respostas

Dialog Framework do primefaces

No site da primefaces, vi este exemplo: https://www.primefaces.org/showcase/ui/df/basic.xhtml, mas no meu caso não funciona. o que pode ser ?

Meu commandButton:

<p:commandButton id="cmdBtnAuditoria" icon="ui-icon-circle-zoomout" title="Visualizar auditoria" actionListener="#{auditoriaBean.visualizarAuditoria}"/>

Metodo no java

public void visualizarAuditoria() {
            Map<String, Object> options = new HashMap<String, Object>();
                    options.put("modal", true);
                    options.put("width", 640);
                    options.put("height", 340);
                    options.put("contentWidth", "100%");
                    options.put("contentHeight", "100%");
                    options.put("headerElement", "customheader");
                    RequestContext.getCurrentInstance().openDialog("auditoriaInformacaoResolucaoPopUp", options,
                            null);
        }
14 respostas

Ola Guilherme

você criou o auditoriaInformacaoResolucaoPopUp.xhtml ??

No commandbutton você precisa colocar o value, ok??

Respondendo:

você criou o auditoriaInformacaoResolucaoPopUp.xhtml ?? Sim

No commandbutton você precisa colocar o value, ok?? Mas o value não é para aparacer uma mensagem no botão ? Se sim, o botão só deve ter imagem.

Colocando um breakpoint no método visualizarAuditoria(), ele entra e sai do método sem apontar erro no console.

O commandButton esta dentro de uma tag ??

Tem uma , depois

<p:column style="max-width: 5px; min-width: 5px; overflow: hidden; white-space: normal;">
    <f:facet name="header">
        <h:outputText value="Ação" />
    </f:facet>
    <p:commandButton id="cmdBtnAuditoria" icon="ui-icon-circle-zoomout" title="Visualizar auditoria" />
</p:column>

Guilherme,

no post anterior esqueci de perguntar:

O commandButton esta dentro de uma tag h:form ??

Tem algum h:form no seu xhtml que envolve a tag h:commandButton, pode ser no inicio do arquivo desde que a h:commandButton esteja dentro dela??

Creio que sim.

Está assim:

<h:form id="frmAuditoriaTab">
            <p:tabView>
                <p:tab title="Trâmite da Resolução">
                    <ui:include src="auditoriaAbaTramiteResolucao.xhtml" />
                </p:tab>
                <p:tab title="Informações da Resolução">
                    <ui:include src="auditoriaAbaInformacaoResolucao.xhtml" />
                </p:tab>
                <p:tab title="Dotações Orçamentárias">
                    <ui:include src="auditoriaAbaDotacaoOrcamentaria.xhtml" />
                </p:tab>
                <p:tab title="Beneficiários">
                    <ui:include src="auditoriaAbaBenficiario.xhtml" />
                </p:tab>
                <p:tab title="Autorização">
                    <ui:include src="auditoriaAbaAutorizacao.xhtml" />
                </p:tab>
            </p:tabView>
        </h:form>

Guilherme

o commandButton não esta dentro desse h:form . Envolva o commandbutton num novo h:form pra ver se da certo

Ele está dentro desta tabview

<p:tab title="Trâmite da Resolução">
<ui:include src="auditoriaAbaTramiteResolucao.xhtml" />
</p:tab>

Fiz o que disse, mas não funcionou.

Alguma ajuda ?

Guilherme

no seu xhtml, aonde esta o commandButton você precisa colocar

<h:head>
        <h:outputScript name="jquery/jquery-plugins.js" library="primefaces"/>
    <h:outputScript name="jquery/jquery.js" library="primefaces"/>
</h:head>

Além disso, no faces-config.xml, você precisa incluir o seguinte código

<application>
    <action-listener>org.primefaces.application.DialogActionListener</action-listener>
    <navigation-handler>org.primefaces.application.DialogNavigationHandler</navigation-handler>
    <view-handler>org.primefaces.application.DialogViewHandler</view-handler>
</application>

Este código ele já baixa automático os js ?

<h:head>
        <h:outputScript name="jquery/jquery-plugins.js" library="primefaces"/>
    <h:outputScript name="jquery/jquery.js" library="primefaces"/>
</h:head>

Guilherme

eu não parei para ver isso. Eu criei um xhtml para testar o dialog e tbm não estava funcionando tbm. Estava entrando dentro do método direitinho mas o pop-up não abria. Procurei na internet e verifiquei que tinha que incluir essas duas mundanças. Além disso, atualizei a lib do Primefaces. Me preocupei com a existência desses arquivos .js mas primeiro fiz o teste pra ver se dava certo e se não desse certo, eu iria incluir esses arquivos na mão, no meu projeto. Verifiquei nas ferramentas do desenvolvedor do Chrome que o xhtml estava carregando os js sem nenhum problema, e passou a funcionar. Esses arquivos js podem estar dentro da lib do primefaces, eu não sei, tem que procurar.

Veja o link aonde achei a solução

https://stackoverflow.com/questions/32456951/primefaces-dialog-framework-dialog-not-opening

Entendi. Vou fazer o teste e coloco a solução aqui.