Duvida - ConfirmDialgo primeFaces

12 respostas
java
Dayson_Rodrigues

Alguem tem algum tutorial utilizando o ConfirmDialog do Primefaces?

12 Respostas

J

Opa blz, então no próprio site do primefaces (showcase) tem exemplos.
Porém segue exemplo abaixo:

  1. confirmDialog.xhtml

    <h:form>
    <p:growl id=“message” showDetail=“true” />
    <p:commandButton value=“Destroy the World” actionListener="#{dialogView.destroyWorld}" update=“message”>
    <p:confirm header=“Confirmation” message=“Are you sure?” icon=“ui-icon-alert” />
    </p:commandButton>

    <p:confirmDialog global="true" showEffect="fade" hideEffect="fade">
         <p:commandButton value="Yes" type="button" styleClass="ui-confirmdialog-yes" icon="ui-icon-check" />
         <p:commandButton value="No" type="button" styleClass="ui-confirmdialog-no" icon="ui-icon-close" />
     </p:confirmDialog>
    

    </h:form>


  1. DialogView.java

    package org.primefaces.showcase.view.overlay;

    import javax.faces.application.FacesMessage;
    
    import javax.faces.bean.ManagedBean;
    
    import javax.faces.context.FacesContext;
    

    import org.primefaces.event.CloseEvent;

    @ManagedBean
    public class DialogView {

    public void destroyWorld() {
         addMessage("System Error", "Please try again later.");
     }
      
     public void addMessage(String summary, String detail) {
         FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, summary, detail);
         FacesContext.getCurrentInstance().addMessage(null, message);
     }
    

    }

Para mais informações segue documentação Primefaces em http://www.primefaces.org/docs/guide/primefaces_user_guide_5_3.pdf.

Dayson_Rodrigues

Consegui tranquilo fazer o exemplo no site, mais quando estou usando no meu código não está dando certo.

*Estou querendo usar nesta coluna Excluir, mais não consigo

<ui:composition template="/template/layoutpadrao.xhtml"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:componentedataHora=“http://java.sun.com/jsf/composite/componetesStudio”>

<h:outputStylesheet library="css" name="sistema.css" />

<ui:define name="titulo"> controle de agendamento</ui:define>

<ui:define name="Botao">
	<h:form>
		<ui:include src="/template/layoutCabecalho.xhtml" />
	</h:form>
</ui:define>

<ui:define name="corpo">
	<h:form>
		<p:growl  />
		
		<br />	<br />	<br />
		
		<p:dataTable value="#{consultaAgenda.listAgendamento}"
					 var="obj" width="100%" styleClass="cabecalho" 
					 rows="30" paginator="true" paginatorAlwaysVisible="false"
					 emptyMessage="Não existe agendamentos." id="tableagenda">

			<f:facet name="header">Lista de Agendamentos</f:facet>
			
			<p:column headerText="Nome" sortBy="#{obj.nome}">
				<div style="text-align: center;">
					<p:outputLabel value="#{obj.nome}" styleClass="centro" />
				</div>
			</p:column>

			<p:column headerText="Tel. Celular" >
				<div style="text-align: center;">
					<p:outputLabel value="#{obj.telefoneCelular}" styleClass="centro" />
				</div>
			</p:column>

			<p:column headerText="Tel. Residencial">
				<div style="text-align: center;">
					<p:outputLabel value="#{obj.telefoneResidencial}" styleClass="centro" />
				</div>
			</p:column>

			<p:column headerText="Funcionario" width="10%" sortBy="#{obj.funcionario.funcNome}">
				<div style="text-align: center;">
					<p:outputLabel value="#{obj.funcionario.funcNome}" styleClass="centro" />
				</div>
			</p:column>

			<p:column headerText="Descrição do Serviço" width="30%">
				<div style="text-align: center;">
					<h:outputLabel value="#{obj.descricaoServ}"  />
				</div>
			</p:column>

			<p:column headerText="Agendado" width="95" sortBy="#{obj.data}">
				<div style="text-align: center">
					<componentedataHora:outputData valor="#{obj.data}" styleClass="centro" />
				</div>
			</p:column>

			<p:column headerText="Hora" width="55" sortBy="#{obj.hora}">
				<componentedataHora:outputhora hora="#{obj.hora}" styleClass="centro" />
			</p:column>

			<p:column headerText="Editar" width="50">
				<div style="text-align: center;">
					<p:button outcome="cadastroagendamento" icon="ui-icon-pencil">	
						<f:param name="codigo" value="#{obj.id}" />
					</p:button>
				</div>
			</p:column> 

			<p:column headerText="Excluir" width="50">
				<div style="text-align: center;">
					<p:commandButton 	icon="ui-icon-trash" style="text-align:center;">
						<p:confirm header="Excluir agendamento" message="Deseja excluir este agendamento?" icon="ui-icon-alert" >
							<f:setPropertyActionListener value="#{obj}" target="#{consultaAgenda.agendamentoSelecionado}" /> <!-- Pega Objeto selecionado -->
						</p:confirm>
					</p:commandButton>
				</div>
			</p:column>				
		</p:dataTable>
		
		 <p:confirmDialog global="true" showEffect="explode" hideEffect="fade">
		        <p:commandButton value="Sim"  styleClass="ui-confirmdialog-yes" icon="ui-icon-check" oncomplete="confirm.hide();" actionListener="#{consultaAgenda.excluir()}" />
		        <p:commandButton value="Não"  styleClass="ui-confirmdialog-no" icon="ui-icon-close" onclick="confirm.hide(); return false;" />
	    </p:confirmDialog>
					
	</h:form>
</ui:define>

</ui:composition>`

`

J

Então tenta o seguinte:

<p:commandButton icon="ui-icon-trash" style="text-align:center;" oncomplete="confirmacao.show()">
	<p:confirm header="Excluir agendamento" message="Deseja excluir este agendamento?" icon="ui-icon-alert" >
	     <f:setPropertyActionListener value="#{obj}" target="#{consultaAgenda.agendamentoSelecionado}" /> <!-- Pega Objeto selecionado -->
	</p:confirm>
</p:commandButton>

E na confirmDialog acresenta o widgetVar conforme abaixo:

<p:confirmDialog global="true" showEffect="explode" hideEffect="fade" widgetVar="confirmacao">
      <p:commandButton value="Sim"  styleClass="ui-confirmdialog-yes" icon="ui-icon-check" oncomplete="confirm.hide();" actionListener="#{consultaAgenda.excluir()}" />
      <p:commandButton value="Não"  styleClass="ui-confirmdialog-no" icon="ui-icon-close" onclick="confirm.hide(); return false;" />
</p:confirmDialog>

Vê o que acontece aí.
Falow.

Dayson_Rodrigues

Tentei desta forma que você mostrou o exemplo, abre a caixa de dialogo e quando clico no SIM ele não executa a action. não sei o que esta Pegando.

OBS: Creio que meu BEAN está normal, estava antes usando imagens.png e excluía normal, quando e tentei usar o ConfirmDialog ele não esta dando certo.

J

Tenta fazer o seguinte:
No seu confirmDialog trocando de actionListener para action.

<p:confirmDialog global="true" showEffect="explode" hideEffect="fade" widgetVar="confirmacao">
      <p:commandButton value="Sim"  styleClass="ui-confirmdialog-yes" icon="ui-icon-check" oncomplete="confirm.hide();" action="#{consultaAgenda.excluir()}" />
      <p:commandButton value="Não"  styleClass="ui-confirmdialog-no" icon="ui-icon-close" onclick="confirm.hide(); return false;" />
</p:confirmDialog>

Vê se agora acontece alguma coisa.

Dayson_Rodrigues

HA SIM, eu acabei de trocar do actionListener para action, estou tentando de outra forma para ver se consigo se der certo mostro o codigo.

valeu obrigado pela ajuda parçeiro.

J

Falow :slight_smile:

Dayson_Rodrigues

é não deu certo, vou tentar aqui. assim que conseguir te mando o codigo.

J

Acontece algum erro ?

Dayson_Rodrigues

Pior que não, abre a caixa de Dialogo até ai tudo bem. Quando clico no Sim ele não executa a ActionListener, mudei para action e nada. Antes eu usava imagens.png para excluir e não tinha caixa de Dialogo, decidi mudar e estou quebrando cabeça.

J

Debug o método excluir, para vê se esta chamando no momento da ação.

Dayson_Rodrigues

vou aprender como faz, porque não lembro como faz. Sou novo no desenvolvimento.

Criado 28 de janeiro de 2016
Ultima resposta 2 de fev. de 2016
Respostas 12
Participantes 2