Example usage for org.jfree.chart.renderer.category CategoryItemRenderer getItemLabelGenerator

List of usage examples for org.jfree.chart.renderer.category CategoryItemRenderer getItemLabelGenerator

Introduction

In this page you can find the example usage for org.jfree.chart.renderer.category CategoryItemRenderer getItemLabelGenerator.

Prototype

public CategoryItemLabelGenerator getItemLabelGenerator(int series, int item);

Source Link

Document

Returns the item label generator for the specified data item.

Usage

From source file:org.jfree.eastwood.ChartEngine.java

/**
 * Adds a marker to the chart.//from www  .j  av  a  2  s  . c o  m
 *
 * @param markerStr  the string encoding of the marker.
 * @param chart  the chart to apply the marker to.
 */
private static void addMarker(String markerStr, JFreeChart chart) {
    String[] args = breakString(markerStr, ',');
    Plot p = chart.getPlot();
    Color c = parseColor(args[1]);
    if (args[0].startsWith("t")) {
        String text = args[0].substring(1);
        int dataset = Integer.parseInt(args[2]);
        int datapoint = Integer.parseInt(args[3]);
        float fontsize = Float.parseFloat(args[4]);
        if (p instanceof CategoryPlot) {
            CategoryPlot cp = (CategoryPlot) p;

            CategoryItemRenderer r = cp.getRenderer();
            GCategoryPlot.LabelGenerator label = (GCategoryPlot.LabelGenerator) r.getItemLabelGenerator(dataset,
                    datapoint);
            label.setLabel(dataset, datapoint, text);
        } else if (p instanceof XYPlot) {
            XYPlot xyp = (XYPlot) p;
            XYItemRenderer r = xyp.getRenderer();
            ((GXYPlot.LabelGenerator) r.getItemLabelGenerator(dataset, datapoint)).setLabel(dataset, datapoint,
                    text);
            //XYDataset d = xyp.getDataset();
            //XYPointerAnnotation a = new XYPointerAnnotation(text, d.getXValue(dataset, datapoint), d.getYValue(dataset, datapoint), Math.random()-2);
            //xyp.addAnnotation(a);
        }
    } else if ("r".equals(args[0])) {
        // add a range marker
        float f0 = Float.parseFloat(args[3]);
        float f1 = Float.parseFloat(args[4]);
        if (p instanceof CategoryPlot) {
            CategoryPlot cp = (CategoryPlot) p;
            Range yRange = cp.getRangeAxis().getRange();
            double r0 = yRange.getLowerBound();
            double rl = yRange.getLength();
            IntervalMarker m = new IntervalMarker(r0 + Math.min(f0, f1) * rl, r0 + Math.max(f0, f1) * rl);
            m.setPaint(c);
            cp.addRangeMarker(m, Layer.BACKGROUND);
        } else if (p instanceof XYPlot) {
            XYPlot cp = (XYPlot) p;
            Range yRange = cp.getRangeAxis().getRange();
            double r0 = yRange.getLowerBound();
            double rl = yRange.getLength();
            IntervalMarker m = new IntervalMarker(r0 + Math.min(f0, f1) * rl, r0 + Math.max(f0, f1) * rl);
            m.setPaint(c);
            cp.addRangeMarker(m, Layer.BACKGROUND);
        }

    } else if ("R".equals(args[0])) {
        // add a domain marker
        float f0 = Float.parseFloat(args[3]);
        float f1 = Float.parseFloat(args[4]);
        if (p instanceof XYPlot) {
            XYPlot xyp = (XYPlot) p;
            Range yRange = xyp.getRangeAxis().getRange();
            double r0 = yRange.getLowerBound();
            double rl = yRange.getLength();
            IntervalMarker m = new IntervalMarker(r0 + Math.min(f0, f1) * rl, r0 + Math.max(f0, f1) * rl);
            m.setPaint(c);
            xyp.addDomainMarker(m, Layer.BACKGROUND);
        }
    }
}