/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package reportbuilder;
import java.awt.Font;
import java.text.NumberFormat;
import net.sf.jasperreports.engine.JRChart;
import net.sf.jasperreports.engine.JRChartCustomizer;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.labels.AbstractCategoryItemLabelGenerator;
import org.jfree.chart.labels.CategoryItemLabelGenerator;
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.renderer.category.LineAndShapeRenderer;
import org.jfree.data.category.CategoryDataset;
/**
*
* @author Administrator
*/
public class CustomizeLineChart implements JRChartCustomizer {
@Override
public void customize(JFreeChart chart, JRChart jasperChart)
{
CategoryPlot categoryPlot;
LineAndShapeRenderer lineAndShapeRenderer;
categoryPlot = (CategoryPlot) chart.getPlot();
lineAndShapeRenderer= (LineAndShapeRenderer) categoryPlot.getRenderer();
lineAndShapeRenderer.setBaseItemLabelsVisible(Boolean.TRUE);
lineAndShapeRenderer.setItemLabelFont(new Font("SansSerif", Font.BOLD, 8));
lineAndShapeRenderer.setBaseItemLabelGenerator(new CustomLabelGenerator());
//lineAndShapeRenderer.setBaseItemLabelGenerator((CategoryItemLabelGenerator) new StandardCategoryItemLabelGenerator());
}
// Clase customizada, para implementar la visibilidad de los valores del grafico
static class CustomLabelGenerator extends AbstractCategoryItemLabelGenerator implements CategoryItemLabelGenerator {
/**
* Creates a new generator that only displays labels that are greater
* than or equal to the threshold value.
*
* @param threshold the threshold value.
*/
public CustomLabelGenerator() {
super("", NumberFormat.getInstance());
}
/**
* Generates a label for the specified item. The label is typically a
* formatted version of the data value, but any text can be used.
*
* @param dataset the dataset (null not permitted).
* @param series the series index (zero-based).
* @param category the category index (zero-based).
*
* @return the label (possibly null).
*/
public String generateLabel(CategoryDataset dataset, int series,int category) {
String result = null;
Number value = dataset.getValue(series, category);
result = new java.text.DecimalFormat("#,##0.0000").format(value); // could apply formatting here
return result;
}
/* (non Javadoc)
* @see org.jfree.chart.labels.CategoryItemLabelGenerator#generateRowLabel(org.jfree.data.category.CategoryDataset, int)
*/
public String generateRowLabel(CategoryDataset arg0, int arg1) {
// TODO Stub del metodo generado automaticamente
return null;
}
/* (non Javadoc)
* @see org.jfree.chart.labels.CategoryItemLabelGenerator#generateColumnLabel(org.jfree.data.category.CategoryDataset, int)
*/
public String generateColumnLabel(CategoryDataset arg0, int arg1) {
// TODO Stub del metodo generado automaticamente
return null;
}
}
}