PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum Problemas na manipulação do bean para gerar um gráfico usando Primefaces 3.4 com JSF #429000

19/11/2012

0

Pessoal estou com problemas ao utilizar o gráfico do primefaces versão 3.4 com dados do banco de dados.
O problema mesmo é no bean pois não estou sabendo informar para o componente que gerar os gráficos.
Na versão 2.2 do primefaces eu codificava assim:

Entidade
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name = "tb_apf1")
public class Apf {

	@Id
	@GeneratedValue
	private int id;
	private double Transx; 
	private double Transy;
	private double Valorx;
	private double Valory;
	private double Acessox;
	private double Acessoy;
	private double Usuariosx;
	private double Usuariosy;

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public double getTransx() {
		
		return Transx;
	}

	public void setTransx(double transx) {
		Transx = transx;
	}

	public double getTransy() {
		
		return Transy;
	}

	public void setTransy(double transy) {
		Transy = transy;
	}

	public double getValorx() {
		return Valorx;
	}

	public void setValorx(double valorx) {
		Valorx = valorx;
	}

	public double getValory() {
		return Valory;
	}

	public void setValory(double valory) {
		Valory = valory;
	}

	public double getAcessox() {
		return Acessox;
	}

	public void setAcessox(double acessox) {
		Acessox = acessox;
	}

	public double getAcessoy() {
		return Acessoy;
	}

	public void setAcessoy(double acessoy) {
		Acessoy = acessoy;
	}

	public double getUsuariosx() {
		return Usuariosx;
	}

	public void setUsuariosx(double usuariosx) {
		Usuariosx = usuariosx;
	}

	public double getUsuariosy() {
		return Usuariosy;
	}

	public void setUsuariosy(double usuariosy) {
		Usuariosy = usuariosy;
	}

}




DAO
	@SuppressWarnings("unchecked")
	public List<Object[]> BuscarTranscao() {
		EntityManager em = new JPAUtil().getEntityManager();
		Query query = em.createNativeQuery("SELECT tb_apf1.`Data`, tb_apf1.Transx, tb_apf1.Transy FROM tb_apf1");
		List<Object[]> dados = query.getResultList();
		// System.out.println(dados.toString());
		// System.out.println(dados.get(0)[0]);
		// System.out.println(dados.get(1)[1]);
		em.close();
		return dados;
	}


Bean
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import br.com.bb.bbcanais.Dao.ApfDAO;
import br.com.bb.bbcanais.Model.Apf;
import br.com.bb.bbcanais.Model.ApfCap;
import br.com.bb.bbcanais.Model.ApfCred;
import br.com.bb.bbcanais.Model.ApfInvest;
import br.com.bb.bbcanais.Model.ApfPrev;
import br.com.bb.bbcanais.Model.ApfSeg;

@SessionScoped
@ManagedBean
public class ApfBean {

	private Apf apf = new Apf(); //criando um novo atributo do tipo apf 
	
	private List<Object[]> dados; // atributo que guarda a lista de Object

	public Apf getApf() {
		return apf;
	}

	public void setApf(Apf apf) {
		this.apf = apf;
	}

	public List<Object[]> getDados() {
		if (dados == null) {
			dados = new ApfDAO<Apf>(Apf.class).BuscarTranscao();
		}
		return dados;

	}

	public void setDados(List<Object[]> dados) {
		this.dados = dados;
	}
}



Minha pagina .xhtml
<p:lineChart value="#{apfBean.dados}" var="dados" height="300px" width="500px" style="lineStyle"
labelFunctionY="formatCurrencyAxisLabel" dataTipFunction="getDataTipText" xfield="#{dados[0]}"
enhancedLegend="true">
	<p:chartSeries label="2011" value="#{dados[1]}" style="line" />
	<p:chartSeries label="2012" value="#{dados[2]}" />
</p:lineChart>


Até aqui a página redeniza o gráfico mais apenas com a versão 2.2. Ao substituir a versão do primefaces 3.4 o jeito de criar o gráfico também muda.

Toda a estrutura é feita no bean, porém não sei como utilizar-lá dentro do bean para usar a nova versão.

<p:lineChart id="linear" value="#{apfBean.linearModel}" legendPosition="e"  
     title="Linear Chart" minY="0" maxY="10" style="height:300px"/> 

Joelson Costa

Joelson Costa

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar