use of org.activityinfo.legacy.shared.reports.content.PivotTableData in project activityinfo by bedatadriven.
the class ChartRendererJC method createAxisChart.
protected Chart createAxisChart(PivotChartReportElement element, boolean includeTitle, int width, int height, int dpi) throws IOException, ChartDataException, PropertyException {
PivotTableData table = element.getContent().getData();
// find our categories and series leaves
List<PivotTableData.Axis> categories = table.getRootRow().getLeaves();
List<PivotTableData.Axis> series = table.getRootColumn().getLeaves();
IAxisDataSeries dataSeries = new DataSeries(toLabelArray(element.getContent(), categories), element.getContent().getXAxisTitle(), element.getContent().getYAxisTitle(), includeTitle ? element.getTitle() : null);
dataSeries.addIAxisPlotDataSet(new AxisChartDataSet(toDataArray(categories, series), toLabelArray(element.getContent(), series), computePaints(series), computeChartType(element), computeAxisChartProperties(dpi, element)));
return new AxisChart(dataSeries, computeChartProperties(dpi), computeAxisProperties(dpi, element.getContent()), computeLegendProperties(element, dpi, series), width, height);
}
use of org.activityinfo.legacy.shared.reports.content.PivotTableData in project activityinfo by bedatadriven.
the class ExcelPivotTableRenderer method render.
@Override
public void render(Workbook book, PivotTableReportElement element) {
/* Generate the actual pivot table data */
final PivotTableData table = element.getContent().getData();
/* Generate the excel sheet */
new BaseExcelTableRenderer<PivotTableReportElement, PivotTableData.Axis>(book, element) {
@Override
public List<FilterDescription> generateFilterDescriptions() {
return element.getContent().getFilterDescriptions();
}
private CellStyle[] rowHeaderStyles;
@Override
public void generate() {
/* Initialize Cell Styles */
initColHeaderStyles(table.getRootColumn());
initRowHeaderStyles();
/* Generate the column headers */
generateColumnHeaders(1, table.getRootColumn());
int headerHeight = rowIndex;
/* Create the rows */
// row headers are in column 1
sheet.setColumnWidth(0, 40 * 256);
generateRows(table.getRootRow().getChildList(), 0);
/* Finalize the sheet */
sheet.setRowSumsBelow(false);
sheet.createFreezePane(1, headerHeight);
}
protected void initRowHeaderStyles() {
int depth = table.getRootRow().getDepth();
rowHeaderStyles = new CellStyle[depth];
for (int i = 0; i != depth; ++i) {
CellStyle style = book.createCellStyle();
style.setIndention((short) i);
style.setWrapText(true);
Font font = createBaseFont();
if (i + 1 != depth) {
/* Has sub headers */
font.setBoldweight(Font.BOLDWEIGHT_BOLD);
} else {
font.setBoldweight(Font.BOLDWEIGHT_NORMAL);
}
style.setFont(font);
rowHeaderStyles[i] = style;
}
}
protected void generateRows(List<PivotTableData.Axis> rows, int indent) {
for (PivotTableData.Axis pivotRow : rows) {
Row row = sheet.createRow(rowIndex++);
Cell headerCell = row.createCell(0);
headerCell.setCellValue(factory.createRichTextString(pivotRow.getLabel()));
headerCell.setCellStyle(rowHeaderStyles[indent]);
if (pivotRow.isLeaf()) {
for (Entry<PivotTableData.Axis, Integer> entry : colIndexMap.entrySet()) {
PivotTableData.Cell pivotCell = pivotRow.getCell(entry.getKey());
if (pivotCell != null) {
Cell cell = row.createCell(entry.getValue());
cell.setCellValue(pivotCell.getValue());
}
}
} else {
int groupStart = rowIndex;
generateRows(pivotRow.getChildList(), indent + 1);
int groupEnd = rowIndex;
sheet.groupRow(groupStart, groupEnd);
}
}
}
};
}
Aggregations