Ae galera só para registrar caso alguem necessite de usar o vraptor com o fusion charts segue o que eu fiz:
Gráfico gerado: PIE3D
Configs:
Vraptor blank project
Anotações xstream
na minha view apenas adicionei essa chamada:
<div id="chartContainer">FusionCharts will load here!</div>
<script type="text/javascript">
var myChart = new FusionCharts("<c:url value="/grafico/FCF_Pie3D.swf" />", "myChartId", "400", "300", "1", "0");
myChart.setDataURL("<c:url value="/chart.xml" />", "xml");
myChart.render("chartContainer");
</script>
No meu controller eu fiz assim:
@Get("/chart.xml")
public void getXML(){
logger.debug("** REQUISIÇÃO CONTROLLER XML **");
if(Validation.isValid(chartElements)){
this.result.use(Results.xml()).from(this.chartElements)
.include("labels").serialize();
}else{
this.result.include("message", "chartError");
this.result.redirectTo(PanelController.class).panel();
}
}
E as classes que geraram o gráfico:
@XStreamAlias(value = "graph")
public class PieChart implements ChartElements{
@XStreamAsAttribute
private String caption;
@XStreamImplicit
private List<PieChartSet> labels = new ArrayList<PieChartSet>();
public PieChart(String caption) {
this.caption = caption;
}
public void add(PieChartSet pieChartSet) {
labels.add(pieChartSet);
}
public String getCaption() {
return caption;
}
}
// classe que fica tageada pelo xstrem
@XStreamAlias(value = "set")
public class PieChartSet {
@XStreamAsAttribute
private String label;
@XStreamAsAttribute
private String name;
@XStreamAsAttribute
private String value;
public PieChartSet(String label, String name, String value) {
this.label = label;
this.name = name;
this.value = value;
}
public String getLabel() {
return label;
}
public String getValue() {
return value;
}
public String getName() {
return name;
}
Tomem cuidado no tipo de gráfico gerado, pois pode rolar um no data display por conta disso.
Essas classes ai geram esse xml (que é aceito pelo pie3D)
<graph caption="Not Started"><set label="Not Started" name="prod1" value="25"/><set label="Started" name="prod2" value="50"/><set label="In Between" name="prod3" value="25"/></graph>
valeu Lucas !!!