@Override public HtmlFragment render(final CrosstabResult result) { return render(result.getCrosstab()); }
@Override protected CrosstabResult buildResult(final Crosstab<?> crosstab, final Collection<? extends CrosstabResult> results) { return new CrosstabResult(crosstab); }
@Override public String render(final CrosstabResult result) { return render(result.getCrosstab()); }
public JComponent renderCrosstab(final Crosstab<?> crosstab) { final CrosstabResult crosstabResult = new CrosstabResult(crosstab); return delegateRenderer.render(crosstabResult); }
protected void decorate(final R result, final DCTable table, final DisplayChartCallback displayChartCallback) { if (result.getCrosstab().getDimensionCount() == 2 && table.getColumnCount() > 2) { addDefaultBarCharts(table, displayChartCallback); } }
@Override protected JComponent fetch() { logger.info("Rendering group result '{}'", groupName); final JComponent renderedResult = delegateRenderer.render(new CrosstabResult(crosstab)); return createDecoration(renderedResult); } };
/** * Builds the master crosstab, including all dimensions and categories that * will be included in the final result. * * By default this method will use the first result's crosstab dimensions * and categories, assuming that they are all the same. * * Subclasses can override this method to build the other dimensions. * * @param results * @return */ protected Crosstab<Serializable> createMasterCrosstab(final Collection<? extends R> results) { final R firstResult = results.iterator().next(); final Crosstab<?> firstCrosstab = firstResult.getCrosstab(); final Class<?> valueClass = firstCrosstab.getValueClass(); final CrosstabDimension dimension1 = firstCrosstab.getDimension(0); final CrosstabDimension dimension2 = firstCrosstab.getDimension(1); @SuppressWarnings({ "unchecked", "rawtypes" }) final Crosstab<Serializable> masterCrosstab = new Crosstab(valueClass, dimension1, dimension2); return masterCrosstab; }
@Override public CrosstabResult getResult() { final CrosstabDimension columnDimension = new CrosstabDimension("Column"); final CrosstabDimension yearDimension = new CrosstabDimension("Year"); final SortedSet<Integer> years = new TreeSet<>(); for (final InputColumn<Date> col : dateColumns) { final Map<Integer, AtomicInteger> countMap = distributionMap.get(col); final Set<Integer> yearsOfColumn = countMap.keySet(); years.addAll(yearsOfColumn); } for (final Integer year : years) { yearDimension.addCategory(year + ""); } final Crosstab<Integer> crosstab = new Crosstab<>(Integer.class, columnDimension, yearDimension); for (final InputColumn<Date> col : dateColumns) { columnDimension.addCategory(col.getName()); final CrosstabNavigator<Integer> nav = crosstab.where(columnDimension, col.getName()); final Map<Integer, AtomicInteger> countMap = distributionMap.get(col); for (final Entry<Integer, AtomicInteger> entry : countMap.entrySet()) { final Integer year = entry.getKey(); final AtomicInteger count = entry.getValue(); nav.where(yearDimension, year + "").put(count.intValue()); } } return new CrosstabResult(crosstab); }
@Override protected Crosstab<Serializable> createMasterCrosstab(final Collection<? extends CrosstabResult> results) { final CrosstabResult firstResult = results.iterator().next(); final Class<?> valueClass = firstResult.getCrosstab().getValueClass(); final Set<String> categories1 = createColumnDimensionCategorySet(); final Set<String> categories2 = createMeasureDimensionCategorySet(); for (final CrosstabResult crosstabResult : results) { final Crosstab<?> crosstab = crosstabResult.getCrosstab(); categories1.addAll(crosstab.getDimension(0).getCategories()); categories2.addAll(crosstab.getDimension(1).getCategories()); } final CrosstabDimension dimension1 = new CrosstabDimension(firstResult.getCrosstab().getDimension(0).getName()); dimension1.addCategories(categories1); final CrosstabDimension dimension2 = new CrosstabDimension(firstResult.getCrosstab().getDimension(1).getName()); dimension2.addCategories(categories2); @SuppressWarnings({ "unchecked", "rawtypes" }) final Crosstab<Serializable> crosstab = new Crosstab(valueClass, dimension1, dimension2); return crosstab; }
@Override public CrosstabResult getResult() { final CrosstabDimension columnDimension = new CrosstabDimension("Column"); final CrosstabDimension weekNumberDimension = new CrosstabDimension("Week number"); final SortedSet<Integer> weekNumbers = new TreeSet<>(); for (final InputColumn<Date> col : dateColumns) { final Map<Integer, AtomicInteger> countMap = distributionMap.get(col); final Set<Integer> weekNumbersOfColumn = countMap.keySet(); weekNumbers.addAll(weekNumbersOfColumn); } for (final Integer weekNumber : weekNumbers) { weekNumberDimension.addCategory(weekNumber + ""); } final Crosstab<Integer> crosstab = new Crosstab<>(Integer.class, columnDimension, weekNumberDimension); for (final InputColumn<Date> col : dateColumns) { columnDimension.addCategory(col.getName()); final CrosstabNavigator<Integer> nav = crosstab.where(columnDimension, col.getName()); final Map<Integer, AtomicInteger> countMap = distributionMap.get(col); for (final Entry<Integer, AtomicInteger> entry : countMap.entrySet()) { final Integer weekNumber = entry.getKey(); final AtomicInteger count = entry.getValue(); nav.where(weekNumberDimension, weekNumber + "").put(count.intValue()); } } return new CrosstabResult(crosstab); }
final List<Object> slaveValues = new ArrayList<>(results.size()); for (final R result : results) { final Crosstab<?> slaveCrosstab = result.getCrosstab(); try { final Object slaveValue = slaveCrosstab.getValue(categories);
@Override public CrosstabResult getResult() { final CrosstabDimension columnDimension = new CrosstabDimension("Column"); final CrosstabDimension weekdayDimension = new CrosstabDimension("Weekday"); weekdayDimension.addCategory("Sunday").addCategory("Monday").addCategory("Tuesday").addCategory("Wednesday") .addCategory("Thursday").addCategory("Friday").addCategory("Saturday"); final Crosstab<Integer> crosstab = new Crosstab<>(Integer.class, columnDimension, weekdayDimension); for (final InputColumn<Date> col : dateColumns) { columnDimension.addCategory(col.getName()); final CrosstabNavigator<Integer> nav = crosstab.where(columnDimension, col.getName()); final Map<Integer, AtomicInteger> countMap = distributionMap.get(col); nav.where(weekdayDimension, "Sunday").put(countMap.get(Calendar.SUNDAY).get()); nav.where(weekdayDimension, "Monday").put(countMap.get(Calendar.MONDAY).get()); nav.where(weekdayDimension, "Tuesday").put(countMap.get(Calendar.TUESDAY).get()); nav.where(weekdayDimension, "Wednesday").put(countMap.get(Calendar.WEDNESDAY).get()); nav.where(weekdayDimension, "Thursday").put(countMap.get(Calendar.THURSDAY).get()); nav.where(weekdayDimension, "Friday").put(countMap.get(Calendar.FRIDAY).get()); nav.where(weekdayDimension, "Saturday").put(countMap.get(Calendar.SATURDAY).get()); } return new CrosstabResult(crosstab); }
/** * Alternative render method, provided to have a more precise return type * (while still allowing this class to be extended and only have a * {@link JComponent} return type. * * @param result * @return */ protected CrosstabPanel renderInternal(final R result) { _drillToDetailsCallback = new DrillToDetailsCallbackImpl(_windowContext, getRendererFactory()); final DCTable table = renderTable(result.getCrosstab()); final CrosstabPanel crosstabPanel = new CrosstabPanel(table); decorate(result, table, crosstabPanel.getDisplayChartCallback()); // make the first column packed to fit it's size. table.packColumn(0, 2); return crosstabPanel; }
crosstabResultSwingRenderer.renderInternal(new CrosstabResult(columnStatisticsCrosstab)); if (valueCombinationCrosstab == null) { return columnStatisticsPanel; crosstabResultSwingRenderer.renderInternal(new CrosstabResult(valueCombinationCrosstab));
@Override public CrosstabResult getResult() { final CrosstabDimension columnDimension = new CrosstabDimension("Column"); final CrosstabDimension monthDimension = new CrosstabDimension("Month"); for (final Month month : Month.values()) { final String monthName = toMonthName(month); monthDimension.addCategory(monthName); } final Crosstab<Integer> crosstab = new Crosstab<>(Integer.class, columnDimension, monthDimension); for (final InputColumn<Date> col : dateColumns) { columnDimension.addCategory(col.getName()); final CrosstabNavigator<Integer> nav = crosstab.where(columnDimension, col.getName()); final Map<Integer, AtomicInteger> countMap = distributionMap.get(col); for (final Entry<Integer, AtomicInteger> entry : countMap.entrySet()) { final Integer monthConstant = entry.getKey(); final Month month = Month.getByCalendarConstant(monthConstant); final AtomicInteger count = entry.getValue(); final String monthName = toMonthName(month); nav.where(monthDimension, monthName).put(count.intValue()); } } return new CrosstabResult(crosstab); }
protected JComponent fetch() { logger.info("Rendering group result '{}'", groupName); final JComponent renderedResult = delegateRenderer.render(new CrosstabResult(crosstab)); return createDecoration(renderedResult);