/** * Receives notification that report generation initializes the current run. * * <p>The event carries a ReportState.Started state. Use this to initialize the report. * * @param event The event. */ public void reportInitialized(final ReportEvent event) { if (event.isDeepTraversing()) { return; } if (initialized == false) { initialized = true; model.addColumn("item-data", Object.class); model.addColumn("item-pages", String.class); model.addColumn("item-pages-array", Integer[].class); model.addColumn("item-key", String.class); } pageFunction.reportInitialized(event); }
public TableModel produce(final DataRow parameters, final DataFactoryContext dataFactoryContext) throws ReportDataFactoryException { final int limit = getTypedParameter("limit", Integer.class, 100); final long seed = getTypedParameter("seed", Long.class, System.currentTimeMillis()); final TypedTableModel model = new TypedTableModel(); model.addColumn("rowcount", Integer.class); model.addColumn("integer", Integer.class); model.addColumn("double", Double.class); model.addColumn("text", String.class); model.addColumn("text2", String.class); model.addColumn("date", Date.class); final Random random = new Random(); random.setSeed(seed); final Calendar baseDate = new GregorianCalendar(2000, 1, 1); baseDate.setTimeZone(TimeZone.getTimeZone("UTC")); final long millis = baseDate.getTimeInMillis(); for (int i = 0; i < limit; i++) { model.addRow( i, (int) (random.nextDouble() * Integer.MAX_VALUE) - (Integer.MAX_VALUE / 2), random.nextDouble() * Integer.MAX_VALUE, "Some Text with breaks " + i, "SomeTextWithoutBreaks" + i, new Date(millis + (long) (200 * random.nextDouble() * Integer.MAX_VALUE))); } return model; }