List of usage examples for org.jfree.chart.renderer.category CategoryItemRenderer getItemLabelGenerator
public CategoryItemLabelGenerator getItemLabelGenerator(int series, int item);
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); } } }