Search in sources :

Example 1 with PivotTableReportElement

use of org.activityinfo.legacy.shared.reports.model.PivotTableReportElement in project activityinfo by bedatadriven.

the class PivotTableBinder method generateElement.

private PivotContent generateElement() {
    PivotTableReportElement model = (PivotTableReportElement) getModel();
    PivotTableDataBuilder builder = new PivotTableDataBuilder();
    PivotTableData data = builder.build(model.getRowDimensions(), model.getColumnDimensions(), cachedResult.getBuckets());
    PivotContent content = new PivotContent();
    content.setEffectiveFilter(cachedFilter);
    content.setData(data);
    return content;
}
Also used : PivotTableData(org.activityinfo.legacy.shared.reports.content.PivotTableData) PivotContent(org.activityinfo.legacy.shared.reports.content.PivotContent) PivotTableReportElement(org.activityinfo.legacy.shared.reports.model.PivotTableReportElement) PivotTableDataBuilder(org.activityinfo.legacy.shared.impl.pivot.PivotTableDataBuilder)

Example 2 with PivotTableReportElement

use of org.activityinfo.legacy.shared.reports.model.PivotTableReportElement in project activityinfo by bedatadriven.

the class DimensionPrunerTest method testMergedAttributes.

@Test
public void testMergedAttributes() {
    PivotTableReportElement table = new PivotTableReportElement();
    DimensionPruner pruner = new DimensionPruner(eventBus, getDispatcher());
    pruner.bind(table);
    table.getFilter().addRestriction(DimensionType.Indicator, Arrays.asList(NB_MENAGES_INDICATOR_ID, VOUCHER_INDICATOR_ID));
    table.addColDimension(new Dimension(DimensionType.Indicator));
    eventBus.fireEvent(new ReportChangeEvent(this, table));
    AttributeGroupDimension groupDim = new AttributeGroupDimension(NFI_FUNDING_GROUP_ID);
    table.addColDimension(groupDim);
    eventBus.fireEvent(new ReportChangeEvent(this, table));
    // now remove the first indicator and verify that the attribute group
    // has NOT been removed, because it shares a name with the other attrib group
    table.getFilter().clearRestrictions(DimensionType.Indicator);
    table.getFilter().addRestriction(DimensionType.Indicator, VOUCHER_INDICATOR_ID);
    eventBus.fireEvent(new ReportChangeEvent(this, table));
    assertTrue(table.getColumnDimensions().contains(groupDim));
}
Also used : ReportChangeEvent(org.activityinfo.ui.client.page.report.ReportChangeEvent) Dimension(org.activityinfo.legacy.shared.reports.model.Dimension) AttributeGroupDimension(org.activityinfo.legacy.shared.reports.model.AttributeGroupDimension) PivotTableReportElement(org.activityinfo.legacy.shared.reports.model.PivotTableReportElement) AttributeGroupDimension(org.activityinfo.legacy.shared.reports.model.AttributeGroupDimension) Test(org.junit.Test)

Example 3 with PivotTableReportElement

use of org.activityinfo.legacy.shared.reports.model.PivotTableReportElement in project activityinfo by bedatadriven.

the class DimensionPrunerTest method test.

// 
// @Before
// public void setupData() {
// 
// ActivityFormDTO dist = new ActivityFormDTO(1, "Distribution");
// IndicatorDTO nbMenages = new IndicatorDTO();
// nbMenages.setId(NB_MENAGES_INDICATOR_ID);
// nbMenages.setName("Nb Menages");
// dist.getIndicators().add(nbMenages);
// 
// AttributeGroupDTO distFunding = new AttributeGroupDTO(NFI_FUNDING_GROUP_ID);
// distFunding.setName("Funding Source");
// dist.getAttributeGroups().add(distFunding);
// 
// 
// ActivityFormDTO fairs = new ActivityFormDTO(2, "Faire");
// 
// AttributeGroupDTO fairFunding = new AttributeGroupDTO(FAIR_FUNDING_GROUP_ID);
// fairFunding.setName("Funding Source");
// fairs.getAttributeGroups().add(fairFunding);
// 
// IndicatorDTO voucherValue = new IndicatorDTO();
// voucherValue.setId(VOUCHER_INDICATOR_ID);
// voucherValue.setName("Voucher Value");
// fairs.getIndicators().add(voucherValue);
// 
// UserDatabaseDTO nfi = new UserDatabaseDTO(1, "NFI");
// nfi.addActivity(dist);
// nfi.addActivity(fairs);
// 
// this.schema = new SchemaDTO();
// schema.getDatabases().add(nfi);
// 
// dispatcher.setResult(GetSchema.class, schema);
// }
@Test
public void test() {
    PivotTableReportElement table = new PivotTableReportElement();
    DimensionPruner pruner = new DimensionPruner(eventBus, getDispatcher());
    pruner.bind(table);
    table.getFilter().addRestriction(DimensionType.Indicator, NB_MENAGES_INDICATOR_ID);
    table.addColDimension(new Dimension(DimensionType.Indicator));
    eventBus.fireEvent(new ReportChangeEvent(this, table));
    AttributeGroupDimension groupDim = new AttributeGroupDimension(NFI_FUNDING_GROUP_ID);
    table.addColDimension(groupDim);
    eventBus.fireEvent(new ReportChangeEvent(this, table));
    assertTrue(table.getColumnDimensions().contains(groupDim));
    // now remove the indicator and verify that the attribute group has been
    // removed
    table.getFilter().clearRestrictions(DimensionType.Indicator);
    eventBus.fireEvent(new ReportChangeEvent(this, table));
    assertFalse(table.getColumnDimensions().contains(groupDim));
}
Also used : ReportChangeEvent(org.activityinfo.ui.client.page.report.ReportChangeEvent) Dimension(org.activityinfo.legacy.shared.reports.model.Dimension) AttributeGroupDimension(org.activityinfo.legacy.shared.reports.model.AttributeGroupDimension) PivotTableReportElement(org.activityinfo.legacy.shared.reports.model.PivotTableReportElement) AttributeGroupDimension(org.activityinfo.legacy.shared.reports.model.AttributeGroupDimension) Test(org.junit.Test)

Example 4 with PivotTableReportElement

use of org.activityinfo.legacy.shared.reports.model.PivotTableReportElement in project activityinfo by bedatadriven.

the class PivotTableRendererTest method test.

@Test
public void test() {
    // input test data : element + content
    DummyPivotTableData testData = new DummyPivotTableData();
    PivotTableReportElement element = testData.Foobar1612Element();
    // Destination book
    HSSFWorkbook book = new HSSFWorkbook();
    // CLASS under test
    ExcelPivotTableRenderer renderer = new ExcelPivotTableRenderer();
    renderer.render(book, element);
    // VERIFY output
    Sheet sheet = book.getSheetAt(0);
    Assert.assertEquals("title cell", element.getTitle(), sheet.getRow(0).getCell(0).getRichStringCellValue().getString());
    Assert.assertEquals("last column header", "Abri", sheet.getRow(4).getCell(5).getRichStringCellValue().getString());
    Assert.assertEquals("columns headers indentation", (short) 0, sheet.getRow(4).getCell(3).getCellStyle().getIndention());
    // Write output to disk
    try {
        File outputFile = new File("build/report-tests");
        outputFile.mkdirs();
        OutputStream out = new FileOutputStream(new File(outputFile, "PivotTableRendererTest.xls"));
        book.write(out);
        out.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
}
Also used : OutputStream(java.io.OutputStream) FileOutputStream(java.io.FileOutputStream) FileOutputStream(java.io.FileOutputStream) DummyPivotTableData(org.activityinfo.server.report.DummyPivotTableData) IOException(java.io.IOException) PivotTableReportElement(org.activityinfo.legacy.shared.reports.model.PivotTableReportElement) Sheet(org.apache.poi.ss.usermodel.Sheet) File(java.io.File) HSSFWorkbook(org.apache.poi.hssf.usermodel.HSSFWorkbook) Test(org.junit.Test)

Example 5 with PivotTableReportElement

use of org.activityinfo.legacy.shared.reports.model.PivotTableReportElement in project activityinfo by bedatadriven.

the class PivotTableGeneratorTest method test2x2.

@Test
public void test2x2() {
    // test input data: user
    User user = new User();
    user.setLocale("fr");
    // test input data: PivotTableElement
    PivotTableReportElement element = new PivotTableReportElement();
    AdminDimension provinceDim = new AdminDimension(1);
    element.addRowDimension(provinceDim);
    Dimension partnerDim = new Dimension(DimensionType.Partner);
    element.addColDimension(partnerDim);
    // test input data: aggregated results
    List<Bucket> buckets = new ArrayList<Bucket>();
    buckets.add(newBucket(433, category(provinceDim, 2, "Sud Kivu"), category(partnerDim, 1, "IRC")));
    buckets.add(newBucket(1032, category(provinceDim, 1, "Nord Kivu"), category(partnerDim, 2, "Solidarites")));
    buckets.add(newBucket(310, category(provinceDim, 1, "Nord Kivu"), category(partnerDim, 1, "IRC")));
    buckets.add(newBucket(926, category(provinceDim, 1, "Nord Kivu"), category(partnerDim, 3, "AVSI")));
    // collaborator : PivotDAO
    DispatcherSync dispatcher = createMock(DispatcherSync.class);
    expect(dispatcher.execute(isA(PivotSites.class))).andReturn(new PivotSites.PivotResult(buckets));
    replay(dispatcher);
    // CLASS UNDER TEST!!
    PivotTableGenerator generator = new PivotTableGenerator(dispatcher);
    generator.generate(user, element, dummyFilter(), null);
    Assert.assertNotNull("element content", element.getContent());
    PivotTableData data = element.getContent().getData();
    Assert.assertEquals("rows", 2, data.getRootRow().getChildCount());
    Assert.assertEquals("rows sorted", "Nord Kivu", data.getRootRow().getChildren().get(0).getLabel());
    Assert.assertEquals("cols", 3, data.getRootColumn().getChildCount());
}
Also used : PivotSites(org.activityinfo.legacy.shared.command.PivotSites) User(org.activityinfo.server.database.hibernate.entity.User) Bucket(org.activityinfo.legacy.shared.command.result.Bucket) PivotTableData(org.activityinfo.legacy.shared.reports.content.PivotTableData) ArrayList(java.util.ArrayList) Dimension(org.activityinfo.legacy.shared.reports.model.Dimension) AdminDimension(org.activityinfo.legacy.shared.reports.model.AdminDimension) PivotTableReportElement(org.activityinfo.legacy.shared.reports.model.PivotTableReportElement) AdminDimension(org.activityinfo.legacy.shared.reports.model.AdminDimension) DispatcherSync(org.activityinfo.server.command.DispatcherSync) Test(org.junit.Test)

Aggregations

PivotTableReportElement (org.activityinfo.legacy.shared.reports.model.PivotTableReportElement)12 Test (org.junit.Test)8 Dimension (org.activityinfo.legacy.shared.reports.model.Dimension)5 ArrayList (java.util.ArrayList)4 HSSFWorkbook (org.apache.poi.hssf.usermodel.HSSFWorkbook)4 DummyPivotTableData2 (org.activityinfo.server.report.DummyPivotTableData2)3 File (java.io.File)2 FileOutputStream (java.io.FileOutputStream)2 IOException (java.io.IOException)2 OutputStream (java.io.OutputStream)2 PivotSites (org.activityinfo.legacy.shared.command.PivotSites)2 Bucket (org.activityinfo.legacy.shared.command.result.Bucket)2 PivotContent (org.activityinfo.legacy.shared.reports.content.PivotContent)2 PivotTableData (org.activityinfo.legacy.shared.reports.content.PivotTableData)2 AdminDimension (org.activityinfo.legacy.shared.reports.model.AdminDimension)2 AttributeGroupDimension (org.activityinfo.legacy.shared.reports.model.AttributeGroupDimension)2 DispatcherSync (org.activityinfo.server.command.DispatcherSync)2 User (org.activityinfo.server.database.hibernate.entity.User)2 ReportChangeEvent (org.activityinfo.ui.client.page.report.ReportChangeEvent)2 Sheet (org.apache.poi.ss.usermodel.Sheet)2