Abrir dialog modal dentro de template + redefinido a posição

1 resposta
J

Pessoal,

Não estou conseguindo fazer meus dialogs abrirem com modal true. Já pesquisei na internet e vi que isso é um bug da tag layout, colocando os dialogs fora do layout, funciona direitinho. O problema é que criei um xhtml de template, utilizando layout e layoutUnits, não sei como resolver esse problema, de declarar dialog fora do layout com a criação de um template pré-definido.

Meu arquivo de template é esse:

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:p="http://primefaces.org/ui"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:ui="http://java.sun.com/jsf/facelets">
    <h:head>        
        <title>Sistema de Gest&atilde;o de Materiais</title>       
        <link rel="stylesheet" href="#{facesContext.externalContext.request.contextPath}/template/css/sgm.css" type="text/css" />                
    </h:head>
    <h:body>                

        <p:layout fullPage="true">

            <p:layoutUnit id="topo" position="north" size="40" style="text-align: center;">               
                <ui:insert name="topo">  
                    <ui:include src="topo.xhtml"/>  
                </ui:insert>                               
            </p:layoutUnit>

            <p:layoutUnit id="menu" position="west" size="218" header="Menu">                          
                <ui:insert name="menu">  
                    <ui:include src="menu.xhtml"/>  
                </ui:insert>                
            </p:layoutUnit>           

            <p:layoutUnit id="conteudo" position="center">               
                <ui:insert name="conteudo" /> 
            </p:layoutUnit>                      

            <p:layoutUnit id="rodape" position="south" size="21">
                <h:outputText value="SGM | Desenvolvido pelo Setor de Desenvolvimento de Sistemas e Web"/>
            </p:layoutUnit>   

        </p:layout>

    </h:body>
</html>

Utilizo o template dessa maneira:

<ui:composition template="../template/template.xhtml"
                xmlns:p="http://primefaces.org/ui"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:c="http://java.sun.com/jsp/jstl/core">   

<ui:define name="conteudo">
</ui:define>
</ui:composition>

Se eu coloco o dialog fora da tag ui:define dá erro, pois eu chamo os dialogs dentro dessa tag e uso forms separados para não dá outros tipos de erros.
Por exemplo:

<!-- Esse botao está definido dentro de ui:define e ui:composition-->
<p:commandButton value="Incluir Novo" image="ui-icon-disk"
                                     alt="Incluir um novo fornecedor" 
                                     title="Incluir um novo fornecedor"
                                     actionListener="#{fornecedorController.prepararParaIncluir}"
                                     oncomplete="manterFornecedorDialog.show()"
                                     update=":formManterFornecedor"/>

Colocando esse botão acima dentro do ui:define e o dialog respectivo fora. dá esse erro:

Eu tenho vários forms com ids diferentes dentro do ui:define, como posso resolver isso e fazer com que os meus dialogs abram com modal true.

Outra dúvida que eu tenho é como fazer que o dialog abra na posição X e Y. Já tentei colocar valores para X e para Y dentro da propriedade position do dialog, mas não funciona.

1 Resposta

J

Alguem pode me ajudar? Se estiver confuso o post eu tento explicar de novo

Criado 28 de março de 2012
Ultima resposta 29 de mar. de 2012
Respostas 1
Participantes 1