List of usage examples for org.jfree.chart.renderer.xy XYItemRenderer drawItem
public void drawItem(Graphics2D g2, XYItemRendererState state, Rectangle2D dataArea, PlotRenderingInfo info, XYPlot plot, ValueAxis domainAxis, ValueAxis rangeAxis, XYDataset dataset, int series, int item, CrosshairState crosshairState, int pass);
From source file:org.openfaces.component.chart.impl.plots.XYPlotAdapter.java
private void renderItems(Graphics2D g2, Rectangle2D dataArea, PlotRenderingInfo info, CrosshairState crosshairState, XYDataset xyDataset, ValueAxis xValueAxis, ValueAxis yValueAxis, XYItemRenderer xyItemRenderer, XYItemRendererState state, int totalRendererPasses, int seriesIndex) { for (int currentPassIndex = 0; currentPassIndex < totalRendererPasses; currentPassIndex++) { if (xyDataset.getItemCount(seriesIndex) == 0) { return; }// w w w.j a v a2 s.c o m int firstItemIndex = 0; int lastItemIndex = xyDataset.getItemCount(seriesIndex) - 1; if (state.getProcessVisibleItemsOnly()) { final double xLowerBound = xValueAxis.getLowerBound(); final double xUpperBound = xValueAxis.getUpperBound(); int[] itemBounds = RendererUtilities.findLiveItems(xyDataset, seriesIndex, xLowerBound, xUpperBound); firstItemIndex = itemBounds[0] - 1; if (firstItemIndex < 0) { firstItemIndex = 0; } final int lastBoundaryIndex = itemBounds[1] + 1; if (lastBoundaryIndex < lastItemIndex) { lastItemIndex = lastBoundaryIndex; } } state.startSeriesPass(xyDataset, seriesIndex, firstItemIndex, lastItemIndex, currentPassIndex, totalRendererPasses); for (int item = firstItemIndex; item <= lastItemIndex; item++) { xyItemRenderer.drawItem(g2, state, dataArea, info, this, xValueAxis, yValueAxis, xyDataset, seriesIndex, item, crosshairState, currentPassIndex); } state.endSeriesPass(xyDataset, seriesIndex, firstItemIndex, lastItemIndex, currentPassIndex, totalRendererPasses); } }
From source file:ucar.unidata.idv.control.chart.MyXYPlot.java
/** * Draws a representation of the data within the dataArea region, using the * current renderer.//from www . j av a 2 s .com * <P> * The <code>info</code> and <code>crosshairState</code> arguments may be * <code>null</code>. * * @param g2 the graphics device. * @param dataArea the region in which the data is to be drawn. * @param index the dataset index. * @param info an optional object for collection dimension information. * @param crosshairState collects crosshair information * (<code>null</code> permitted). * * @return A flag that indicates whether any data was actually rendered. */ public boolean render(Graphics2D g2, Rectangle2D dataArea, int index, PlotRenderingInfo info, CrosshairState crosshairState) { boolean foundData = false; XYDataset dataset = getDataset(index); if (!DatasetUtilities.isEmptyOrNull(dataset)) { foundData = true; ValueAxis xAxis = getDomainAxisForDataset(index); ValueAxis yAxis = getRangeAxisForDataset(index); XYItemRenderer renderer = getRenderer(index); if (renderer == null) { renderer = getRenderer(); } XYItemRendererState state = renderer.initialise(g2, dataArea, this, dataset, info); int passCount = renderer.getPassCount(); SeriesRenderingOrder seriesOrder = getSeriesRenderingOrder(); ucar.unidata.util.Trace.call1("render", " pass:" + passCount); if (seriesOrder == SeriesRenderingOrder.REVERSE) { //render series in reverse order for (int pass = 0; pass < passCount; pass++) { int seriesCount = dataset.getSeriesCount(); for (int series = seriesCount - 1; series >= 0; series--) { int itemCount = dataset.getItemCount(series); ucar.unidata.util.Trace.call1("series loop", " items=" + itemCount + " renderer:" + renderer.getClass().getName()); for (int item = 0; item < itemCount; item++) { renderer.drawItem(g2, state, dataArea, info, this, xAxis, yAxis, dataset, series, item, crosshairState, pass); } ucar.unidata.util.Trace.call2("series loop"); } } } else { //render series in forward order for (int pass = 0; pass < passCount; pass++) { int seriesCount = dataset.getSeriesCount(); for (int series = 0; series < seriesCount; series++) { int itemCount = dataset.getItemCount(series); for (int item = 0; item < itemCount; item++) { renderer.drawItem(g2, state, dataArea, info, this, xAxis, yAxis, dataset, series, item, crosshairState, pass); } } } } ucar.unidata.util.Trace.call2("render"); } return foundData; }