| Free tutorials for Java, Eclipse and Web programming |
The following shows how to use the graphs provided by Trinidad. It is based on the previous example.
Create in the package de.vogella.jsf.trinidad.first the class "MyChartModel".
package de.vogella.jsf.trinidad.first;
import java.util.ArrayList;
import java.util.List;
import org.apache.myfaces.trinidad.model.ChartModel;
public class MyChartModel extends ChartModel {
// How many charts are you going to have
@Override
public List<String> getGroupLabels() {
List<String> groupLabels = new ArrayList<String>();
groupLabels.add("Java");
groupLabels.add("Linux");
groupLabels.add(".NET");
return groupLabels;
}
// How many parts (data areas) per chart
@Override
public List<String> getSeriesLabels() {
List<String> seriesLabels = new ArrayList<String>();
seriesLabels.add("Love it");
seriesLabels.add("Hate it");
return seriesLabels;
}
@Override
public List<List<Double>> getYValues() {
List<List<Double>> chartValues = new ArrayList<List<Double>>();
// Fill the groups
for (int i = 0; i < getGroupLabels().size(); i++) {
List<Double> numbers = new ArrayList<Double>();
// fill the series per group
for (int j = 0; j < getSeriesLabels().size(); j++) {
numbers.add(100* Math.random());
}
chartValues.add(numbers);
}
return chartValues;
}
}
Create the following JSP "GraphicPage.jsp".
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://myfaces.apache.org/trinidad" prefix="tr"%>
<%@ taglib uri="http://myfaces.apache.org/trinidad/html" prefix="trh"%>
<html>
<f:view>
<body>
<tr:document>
<tr:form>
<h:panelGrid columns="3">
<tr:chart value="#{myChartModel}" type="pie" />
<tr:chart value="#{myChartModel}" type="bar" />
<tr:chart value="#{myChartModel}" type="radar" />
<tr:chart value="#{myChartModel}" type="radarArea" />
<tr:chart value="#{myChartModel}" type="funnel" />
<tr:chart value="#{myChartModel}" type="circularGauge" />
<tr:chart value="#{myChartModel}" type="semiCircularGauge"
YMinorGridLineCount="1" />
</h:panelGrid>
</tr:form>
</tr:document>
</body>
</f:view>
</html>