[Primefaces e JSF]Igualar valores do carousel com os do dataTable

1 resposta
F

Galera, é o seguinte: No meu projeto eu preciso mostrar alguns dados de respectivo estado brasileiro em uma tabela. O que eu quero fazer, é escolher certo estado através de um carousel e carregar esses dados em uma dataTable, mas não sei como eu faço pra passar o estado escolhido para o dataTable.

Outra dúvida também é como eu posso mudar aquele combobox do carousel que mostra os índices (1, 2, 3, 4...) e mostrar os estados(AC, AM, AP...)

Modelo:
import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
public class Planoconveniencia {
	
	@Id
	private int ordem;
	private String UF;
	private String tipo;
	private double a2011;
	private double a2012;
	private double a2013;
	private double a2014;
	private double a2015;
	
	public String getUF() {
		return UF;
	}
	public void setUF(String uF) {
		UF = uF;
	}
	public int getOrdem() {
		return ordem;
	}
	public void setOrdem(int ordem) {
		this.ordem = ordem;
	}
	public String getTipo() {
		return tipo;
	}
	public void setTipo(String tipo) {
		this.tipo = tipo;
	}
	public double getA2011() {
		return a2011;
	}
	public void setA2011(double a2011) {
		this.a2011 = a2011;
	}
	public double getA2012() {
		return a2012;
	}
	public void setA2012(double a2012) {
		this.a2012 = a2012;
	}
	public double getA2013() {
		return a2013;
	}
	public void setA2013(double a2013) {
		this.a2013 = a2013;
	}
	public double getA2014() {
		return a2014;
	}
	public void setA2014(double a2014) {
		this.a2014 = a2014;
	}
	public double getA2015() {
		return a2015;
	}
	public void setA2015(double a2015) {
		this.a2015 = a2015;
	}
}
Bean:
public class ConvenienciaBean implements Serializable {
	private static final long serialVersionUID = 1L;

	private List<String> estados;
	private List<Object[]> dados;
	private String UF;

	public ConvenienciaBean(){
		dados = new ArrayList<Object[]>();
		UF = "AM";
	}
	
	public List<Object[]> getDados(){
		dados = new convenienciaDAO<Planoconveniencia>(Planoconveniencia.class).listaTodosConveniencia(UF);
		return dados;
	}

	public List<String> getEstados(){
		
		List<String> estados = new ArrayList<String>();  

		  for (EstadosBrasilEnum e : EstadosBrasilEnum.values()) {
		   estados.add(e.toString());
			  System.out.println();
		  }
		  return estados;
		 }
}
xhtml:
<?xml version="1.0" encoding="UTF-8" ?>
<!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:f="http://java.sun.com/jsf/core"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:p="http://primefaces.org/ui">

<ui:composition template="/_template.xhtml">
	<ui:define name="corpo">
		<p:carousel id="carEstados" value="#{convenienciaBean.estados}" var="est" rows="1" >
			
			<p:graphicImage onclick="DF" value="resources/imagens/#{est}.png"/>
			
			<h:panelGrid columns="2" style="width:100%" cellpadding="32">
				<h:outputText value="#{est}" />
			</h:panelGrid>
			
		</p:carousel>

		<p:dataTable value="#{convenienciaBean.dados}" var="tabelas" paginator="true" rows="15">
			<p:column headerText="Tipo">
				#{tabelas[1]}
				<f:facet name="footer">
                TOTAL: 
           		</f:facet> 
			</p:column>
			<p:column headerText="2011">
				#{tabelas[2]}
			</p:column>
			<p:column headerText="2012">
				#{tabelas[3]}
			</p:column>
			<p:column headerText="2013">
				#{tabelas[4]}
			</p:column>			
		</p:dataTable>
	</ui:define>
</ui:composition>
</html>

1 Resposta

ErickRAR

Para fazer esse tipo de atualização, você pode usar um Listener no carousel e acrescentar colocar update=“dataTableQueDesejaAtualizar”.

Dê uma olhada no ShowCase do Primefaces que vai te ajudar bastante.

Criado 30 de maio de 2012
Ultima resposta 30 de mai. de 2012
Respostas 1
Participantes 2