<a:form> <a:growl id="growl" showDetail="true" /> <h:panelGrid columns="2" columnClasses="left,right" style="width:100%"> <a:chart type="pie" model="#{chartView.pieModel1}" style="width:400px;height:300px"> <a:ajax event="itemSelect" listener="#{chartView.itemSelect}" update="growl" /> </a:chart> <a:chart type="bar" model="#{chartView.barModel}" style="width:400px;height:300px"> <a:ajax event="itemSelect" listener="#{chartView.itemSelect}" update="growl" /> </a:chart> </h:panelGrid> </a:form>
package org.primefaces.examples; import javax.annotation.PostConstruct; import java.io.Serializable; import javax.faces.application.FacesMessage; import javax.faces.bean.ManagedBean; import javax.faces.context.FacesContext; import org.primefaces.event.ItemSelectEvent; import org.primefaces.model.chart.Axis; import org.primefaces.model.chart.AxisType; import org.primefaces.model.chart.BarChartModel; import org.primefaces.model.chart.ChartSeries; import org.primefaces.model.chart.PieChartModel; @ManagedBean public class ChartView implements Serializable { private BarChartModel barModel; private PieChartModel pieModel1; @PostConstruct public void init() { createBarModels(); createPieModels(); } public BarChartModel getBarModel() { return barModel; } public PieChartModel getPieModel1() { return pieModel1; } private void createBarModels() { createBarModel(); } private void createBarModel() { barModel = initBarModel(); barModel.setTitle("Bar Chart"); barModel.setLegendPosition("ne"); Axis xAxis = barModel.getAxis(AxisType.X); xAxis.setLabel("Gender"); Axis yAxis = barModel.getAxis(AxisType.Y); yAxis.setLabel("Births"); yAxis.setMin(0); yAxis.setMax(200); } private BarChartModel initBarModel() { BarChartModel model = new BarChartModel(); ChartSeries boys = new ChartSeries(); boys.setLabel("Boys"); boys.set("2004", 120); boys.set("2005", 100); boys.set("2006", 44); boys.set("2007", 150); boys.set("2008", 25); ChartSeries girls = new ChartSeries(); girls.setLabel("Girls"); girls.set("2004", 52); girls.set("2005", 60); girls.set("2006", 110); girls.set("2007", 135); girls.set("2008", 120); model.addSeries(boys); model.addSeries(girls); return model; } private void createPieModels() { createPieModel1(); } private void createPieModel1() { pieModel1 = new PieChartModel(); pieModel1.set("Brand 1", 540); pieModel1.set("Brand 2", 325); pieModel1.set("Brand 3", 702); pieModel1.set("Brand 4", 421); pieModel1.setTitle("Simple Pie"); pieModel1.setLegendPosition("w"); } public void itemSelect(ItemSelectEvent event) { FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Item selected", "Item Index: " + event.getItemIndex() + ", Series Index:" + event.getSeriesIndex()); FacesContext.getCurrentInstance().addMessage(null, msg); } }