List of usage examples for org.jfree.chart.renderer RendererUtilities findLiveItems
public static int[] findLiveItems(XYDataset dataset, int series, double xLow, double xHigh)
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; }//from w w w .ja v a2s . c om 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); } }