Pessoal,
Estou montando uma aplicação e surgiu uma necessidade de mostrar diversos Dialogs(Apenas mostrar dados e não editar)
Quero algo parecido com o exemplo http://www.primefaces.org/showcase/ui/datagrid.jsf
porém que o Dialog não seja modal e seja possível abrir quantos dialogs fossem necessários (Comparação de dados, sem alteração).
Tb muito parecido com esse: http://www.primefaces.org/showcase/ui/datatableRowSelectionInstant.jsf
nao fechando os dialogs.
Todos os exemplos que vi utilizam apenas 1 Dialog.
Se puderem me ajudar, ficarei muito grato.
Leandro Santinho
Cara talvez voce possa usar algo assim como eu fiz em um projeto meu
<p:outputPanel id="panelDomingo" >
<p:outputPanel rendered="#{rotaController.rota.domingo.temRotaNesseDia}">
<f:repeat var="hor" value="#{rotaController.rota.domingo.listaHorarios}" >
<div class="control-group">
<h:outputLabel styleClass="control-label" value="#{hor.label}" />
<div class="controls">
<p:calendar timeOnly="true" pattern="HH:mm" value="#{hor.horario}" required="true" requiredMessage="Campo #{hor.label} deve ser preenchido." />
</div>
</div>
</f:repeat>
<div class="control-group controls">
<p:commandButton value="Adicionar" immediate="true"
actionListener="#{rotaController.rota.domingo.adicionarHorario}"
update="panelDomingo" />
<p:commandButton value="Remover" immediate="true"
rendered="#{rotaController.rota.domingo.listaHorarios.size() > 1}"
actionListener="#{rotaController.rota.domingo.removerHorario}"
style="margin-left: 10px;"
update="panelDomingo" />
</div>
</p:outputPanel>
</p:outputPanel>
Tenho uma lista no meu managedbean quando o usuario clica em um botao na tela adiciona mais um cara na lista e mando renderizar o primeiro output panel ai no meu casso é adicionado mais um label e um inputText na tela, acho que com isso voce resolve sue problema
Cristian,
Você me ajudou muito!
A minha geração dos Dialogs estava dentro de um DataGrid ou DataList, aí quando eu dava dialog001.show(); ele abria TODOS os Dialogs gerados dentro do DataGrid.
Olhado pelo Firebug percebi que os ID’s eram todos iguais.
Mesmo o widgetVar resolvendo corretamente ao utilizar o show() mostrava todas as janelas.
Utilizando o <f:repeat> os Id’s são diferentes e funciona!
Funciona:
<f:repeat value="#{principal.posts}" var="numeroPost">
<p:graphicImage id="image" value="/images/post/#{numeroPost}.jpg" ondblclick="janela#{numeroPost}.show()"/>
<p:dialog widgetVar="janela#{numeroPost}" showEffect="explode" hideEffect="explode" maximizable="true" minimizable="true">
<h:outputText value="#{numeroPost}" />
</p:dialog>
</f:repeat>
Não Funciona(DataList ou DataGrid):
<p:dataList value="#{principal.posts}" var="numeroPost">
<p:graphicImage id="image" value="/images/post/#{numeroPost}.jpg" ondblclick="janela#{numeroPost}.show()"/>
<p:dialog widgetVar="janela#{numeroPost}" showEffect="explode" hideEffect="explode" maximizable="true" minimizable="true">
<h:outputText value="#{numeroPost}" />
</p:dialog>
</p:dataList>
Obrigado pela ajuda!
Abraço!
Leandro Santinho.