1 13 48 package org.pentaho.plugin.jfreereport.helper; 49 50 import org.jfree.report.event.RepaginationListener; 51 import org.jfree.report.event.RepaginationState; 52 53 58 public class YieldReportListener implements RepaginationListener { 59 private int rate; 60 61 private transient int lastCall; 62 63 private transient int lastPage; 64 65 public YieldReportListener() { 66 rate = 50; 67 } 68 69 public YieldReportListener(final int rate) { 70 this.rate = rate; 71 } 72 73 public int getRate() { 74 return rate; 75 } 76 77 public void setRate(final int rate) { 78 this.rate = rate; 79 } 80 81 public void repaginationUpdate(RepaginationState repaginationState) { 82 final int currentRow = repaginationState.getCurrentRow(); 83 final int thisCall = currentRow % rate; 84 final int page = repaginationState.getPage(); 85 86 if (page != lastPage) { 87 Thread.yield(); 88 } else if (thisCall != lastCall) { 89 Thread.yield(); 90 } 91 lastCall = thisCall; 92 lastPage = page; 93 } 94 } 95 | Popular Tags |