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ã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.