Problema com Row Selection PrimeFaces

1 resposta
S

Pessoal, me ajudem a criar esta Dialog, estou com problemas ao carregar os valores, não há exception, porém os valores não são carregados:

Eis minha página:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:p="http://primefaces.org/ui">

<ui:composition template="../templates/template.xhtml">
	<ui:define name="content">

		<h:form id="form">
			<p:growl id="msgs" showDetail="true" />

			<p:dataTable id="eventos" var="evento" value="#{eventoBean.eventos}">

				<p:column headerText="Nome do Evento" style="width:100px">
					<h:outputText value="#{evento.evento}" />
				</p:column>

				<p:column headerText="Data do Evento" style="width:100px">
					<h:outputText value="#{evento.dataEvento}">
						<f:convertDateTime pattern="dd/MM/yyyy" />
					</h:outputText>
				</p:column>

				<p:column headerText="Operações" style="width:100px">

					<p:commandButton id="selectButton" update=":form:display"
						oncomplete="eventDialog.show()" icon="ui-icon-search"
						title="#{eventoBean.evento.evento}">
						<f:setPropertyActionListener value="#{evento}"
							target="#{eventoBean.evento }" />
					</p:commandButton>
				</p:column>
			</p:dataTable>
		</h:form>
		<!-- FORM SEPARADOS -->

		<p:dialog header="Visualizar eventos" widgetVar="eventDialog"
			showEffect="fade" hideEffect="explode" modal="false" closeble="false">
			<h:form id="display">
				<h:panelGrid columns="2" cellpadding="4" style="margin:0 auto;">
					<h:outputText value="Evento:" />
					<h:inputText value="#{eventoBean.evento.evento}" />
				</h:panelGrid>
			</h:form>
		</p:dialog>
	</ui:define>
</ui:composition>
</html>

Managed Bean

package br.com.estudo.managedbeans;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import javax.el.ELContext;
import javax.faces.bean.ManagedBean;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.persistence.EntityManager;
import javax.servlet.http.HttpServletRequest;

import br.com.estudo.modelo.Evento;
import br.com.estudo.repository.EventoRepository;

@ManagedBean
public class EventoBean {
	private Evento evento;
	private List<Evento> eventos;
	private List<Evento> eventocomplete;
	private Evento eventoSelecionado;

	public EventoBean() {
		evento = new Evento();
		eventos = new ArrayList<Evento>();
		eventocomplete = new ArrayList<Evento>();
	}

	public void adiciona() {
		EntityManager manager = this.getManager();
		EventoRepository repository = new EventoRepository(manager);
		if (this.evento.getId() == null) {
			repository.adiciona(this.evento);
		} else {
			repository.atualiza(this.evento);
		}
		this.evento = new Evento();
		this.evento = null;
	}

	public void preparaAlteracao() {
		Map<String, String> params = FacesContext.getCurrentInstance()
				.getExternalContext().getRequestParameterMap();
		Long id = Long.parseLong(params.get("id"));
		EntityManager manager = this.getManager();
		EventoRepository repository = new EventoRepository(manager);
		this.evento = repository.procura(id);
	}

	public void remove() {
		Map<String, String> params = FacesContext.getCurrentInstance()
				.getExternalContext().getRequestParameterMap();
		Long id = Long.parseLong(params.get("id"));
		EntityManager manager = this.getManager();
		EventoRepository repository = new EventoRepository(manager);
		repository.remove(id);
		this.evento = null;
	}

	public List<Evento> completeEvento(String query) {
		ELContext context = FacesContext.getCurrentInstance().getELContext();
		FacesContext.getCurrentInstance().getApplication().getELResolver()
				.getValue(context, null, "entityManager");
		EventoRepository repository = new EventoRepository(getManager());
		List<Evento> results = new ArrayList<Evento>();

		if (eventocomplete.isEmpty()) {
			this.eventocomplete = repository.complete();
		}
		for (Evento e : eventocomplete) {
			if (e.getEvento().startsWith(query)) {
				results.add(e);
			}
		}
		return results;
	}

	public List<Evento> getEventos() {
		ELContext context = FacesContext.getCurrentInstance().getELContext();
		FacesContext.getCurrentInstance().getApplication().getELResolver()
				.getValue(context, null, "entityManager");
		if (this.eventos.isEmpty()) {
			EventoRepository repository = new EventoRepository(getManager());
			this.eventos = repository.getLista();
		}
		return this.eventos;

	}

	private EntityManager getManager() {
		FacesContext fc = FacesContext.getCurrentInstance();
		ExternalContext ec = fc.getExternalContext();
		HttpServletRequest request = (HttpServletRequest) ec.getRequest();
		EntityManager manager = (EntityManager) request
				.getAttribute("EntityManager");
		return manager;

	}

	public Evento getEvento() {
		return evento;
	}

	public void setEvento(Evento evento) {
		this.evento = evento;
	}

	public List<Evento> getEventocomplete() {
		return eventocomplete;
	}

	public void setEventocomplete(List<Evento> eventocomplete) {
		this.eventocomplete = eventocomplete;
	}

	public Evento getEventoSelecionado() {
		return eventoSelecionado;
	}

	public void setEventoSelecionado(Evento eventoSelecionado) {
		this.eventoSelecionado = eventoSelecionado;
		setEvento(eventoSelecionado);
	}

	public void setEventos(List<Evento> eventos) {
		this.eventos = eventos;
	}
}

Meu repositório.

package br.com.estudo.repository;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.Query;

import br.com.estudo.modelo.Evento;

public class EventoRepository {
	private EntityManager manager;

	public EventoRepository(EntityManager manager) {
		this.manager = manager;
	}

	public void adiciona(Evento evento) {
		this.manager.persist(evento);
	}

	public void remove(long id) {
		Evento evento = this.procura(id);
		this.manager.remove(evento);
	}

	public Evento atualiza(Evento evento) {
		return this.manager.merge(evento);
	}

	public Evento procura(Long id) {
		return this.manager.find(Evento.class, id);
	}

	@SuppressWarnings("unchecked")
	public List<Evento> getLista() {
		Query query = this.manager.createQuery("SELECT e FROM Evento e");
		return query.getResultList();
	}

	@SuppressWarnings("unchecked")
	public List<Evento> complete() {
		Query query = this.manager.createQuery("Select e From Evento as e");

		return query.getResultList();

	}
}

1 Resposta

S

Será que ninguém pode me ajudar?!

Criado 18 de março de 2012
Ultima resposta 19 de mar. de 2012
Respostas 1
Participantes 1