List of usage examples for org.jfree.chart.renderer.xy XYItemRenderer getPassCount
public int getPassCount();
From source file:org.openfaces.component.chart.impl.plots.XYPlotAdapter.java
@Override public boolean render(Graphics2D g2, Rectangle2D dataArea, int index, PlotRenderingInfo info, CrosshairState crosshairState) { final XYItemRenderer renderer = getRenderer(); final boolean customRenderingModeEnabled = renderer instanceof AreaFillRenderer; if (!customRenderingModeEnabled) { return super.render(g2, dataArea, index, info, crosshairState); }/*from ww w . j av a 2s . c om*/ XYDataset xyDataset = getDataset(index); final boolean isDataSetNotEmpty = !DatasetUtilities.isEmptyOrNull(xyDataset); if (!isDataSetNotEmpty) { return false; } ValueAxis xValueAxis = getDomainAxisForDataset(index); ValueAxis yValueAxis = getRangeAxisForDataset(index); XYItemRenderer xyItemRenderer = findRenderer(index); if (xValueAxis == null || yValueAxis == null || xyItemRenderer == null) { return false; } XYItemRendererState state = xyItemRenderer.initialise(g2, dataArea, this, xyDataset, info); boolean isReverseSeriesRenderingOrder = getSeriesRenderingOrder() == SeriesRenderingOrder.REVERSE; int totalRendererPasses = xyItemRenderer.getPassCount(); int totalSeries = xyDataset.getSeriesCount(); if (isReverseSeriesRenderingOrder) { for (int seriesIndex = totalSeries - 1; seriesIndex >= 0; seriesIndex--) { renderItems(g2, dataArea, info, crosshairState, xyDataset, xValueAxis, yValueAxis, xyItemRenderer, state, totalRendererPasses, seriesIndex); } } else { for (int seriesIndex = 0; seriesIndex < totalSeries; seriesIndex++) { renderItems(g2, dataArea, info, crosshairState, xyDataset, xValueAxis, yValueAxis, xyItemRenderer, state, totalRendererPasses, seriesIndex); } } return true; }
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 w ww. j a va2s . c o m * <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; }