use of org.hisp.dhis.system.grid.ListGrid in project dhis2-core by dhis2.
the class ReportTableTest method testGetGrid.
@Test
public void testGetGrid() {
ReportTable reportTable = new ReportTable("Grid table", dataElements, new ArrayList<>(), new ArrayList<>(), periods, Lists.newArrayList(unitB, unitC), true, true, false, null, null, null);
reportTable.init(null, null, null, null, null, i18nFormat);
List<String> columnDims = reportTable.getColumnDimensions();
List<String> rowDims = reportTable.getRowDimensions();
assertEquals(2, columnDims.size());
assertEquals(1, rowDims.size());
assertTrue(columnDims.contains(DimensionalObject.DATA_X_DIM_ID));
assertTrue(columnDims.contains(DimensionalObject.PERIOD_DIM_ID));
assertTrue(rowDims.contains(DimensionalObject.ORGUNIT_DIM_ID));
Map<String, Object> valueMap = new HashMap<>();
valueMap.put(dataElementA.getDimensionItem() + DIMENSION_SEP + periodA.getDimensionItem() + DIMENSION_SEP + unitB.getDimensionItem(), 11);
valueMap.put(dataElementA.getDimensionItem() + DIMENSION_SEP + periodA.getDimensionItem() + DIMENSION_SEP + unitC.getDimensionItem(), 21);
valueMap.put(dataElementA.getDimensionItem() + DIMENSION_SEP + periodB.getDimensionItem() + DIMENSION_SEP + unitB.getDimensionItem(), 12);
valueMap.put(dataElementA.getDimensionItem() + DIMENSION_SEP + periodB.getDimensionItem() + DIMENSION_SEP + unitC.getDimensionItem(), 22);
valueMap.put(dataElementB.getDimensionItem() + DIMENSION_SEP + periodA.getDimensionItem() + DIMENSION_SEP + unitB.getDimensionItem(), 13);
valueMap.put(dataElementB.getDimensionItem() + DIMENSION_SEP + periodA.getDimensionItem() + DIMENSION_SEP + unitC.getDimensionItem(), 23);
valueMap.put(dataElementB.getDimensionItem() + DIMENSION_SEP + periodB.getDimensionItem() + DIMENSION_SEP + unitB.getDimensionItem(), 14);
valueMap.put(dataElementB.getDimensionItem() + DIMENSION_SEP + periodB.getDimensionItem() + DIMENSION_SEP + unitC.getDimensionItem(), 24);
DisplayProperty property = DisplayProperty.NAME;
Grid grid = reportTable.getGrid(new ListGrid(), valueMap, property, false);
assertEquals(8, grid.getWidth());
assertEquals(8, grid.getHeaders().size());
assertEquals(2, grid.getHeight());
assertEquals(unitB.getUid(), grid.getValue(0, 0));
assertEquals(unitB.getDisplayProperty(property), grid.getValue(0, 1));
assertEquals(unitB.getCode(), grid.getValue(0, 2));
assertEquals(unitB.getDescription(), grid.getValue(0, 3));
assertEquals(11, grid.getValue(0, 4));
assertEquals(12, grid.getValue(0, 5));
assertEquals(13, grid.getValue(0, 6));
assertEquals(14, grid.getValue(0, 7));
assertEquals(unitC.getUid(), grid.getValue(1, 0));
assertEquals(unitC.getDisplayProperty(property), grid.getValue(1, 1));
assertEquals(unitC.getCode(), grid.getValue(1, 2));
assertEquals(unitC.getDescription(), grid.getValue(1, 3));
assertEquals(21, grid.getValue(1, 4));
assertEquals(22, grid.getValue(1, 5));
assertEquals(23, grid.getValue(1, 6));
assertEquals(24, grid.getValue(1, 7));
}
use of org.hisp.dhis.system.grid.ListGrid in project dhis2-core by dhis2.
the class ReportTableTest method testGetGridHideEmptyColumns.
@Test
public void testGetGridHideEmptyColumns() {
ReportTable reportTable = new ReportTable("Grid table", dataElements, new ArrayList<>(), new ArrayList<>(), periods, Lists.newArrayList(unitA, unitB), true, true, false, null, null, null);
Map<String, Object> valueMap = new HashMap<>();
valueMap.put(dataElementA.getDimensionItem() + DIMENSION_SEP + periodA.getDimensionItem() + DIMENSION_SEP + unitA.getDimensionItem(), 11);
valueMap.put(dataElementA.getDimensionItem() + DIMENSION_SEP + periodA.getDimensionItem() + DIMENSION_SEP + unitB.getDimensionItem(), 21);
valueMap.put(dataElementB.getDimensionItem() + DIMENSION_SEP + periodA.getDimensionItem() + DIMENSION_SEP + unitA.getDimensionItem(), 13);
valueMap.put(dataElementB.getDimensionItem() + DIMENSION_SEP + periodA.getDimensionItem() + DIMENSION_SEP + unitB.getDimensionItem(), 23);
reportTable.init(null, null, null, null, null, i18nFormat);
Grid grid = reportTable.getGrid(new ListGrid(), valueMap, DisplayProperty.NAME, false);
assertEquals(8, grid.getWidth());
reportTable.setHideEmptyColumns(true);
grid = reportTable.getGrid(new ListGrid(), valueMap, DisplayProperty.NAME, false);
// Removed description column and two data columns
assertEquals(5, grid.getWidth());
}
use of org.hisp.dhis.system.grid.ListGrid in project dhis2-core by dhis2.
the class AnalyticsUtilsTest method testHandleGridForDataValueSet.
@Test
public void testHandleGridForDataValueSet() {
IndicatorType itA = new IndicatorType();
DataElementCategoryOptionCombo ocA = createCategoryOptionCombo('A');
ocA.setUid("ceabcdefghA");
DataElement dxA = createDataElement('A');
dxA.setUid("deabcdefghA");
dxA.setValueType(ValueType.INTEGER);
DataElement dxB = createDataElement('B');
dxB.setUid("deabcdefghB");
dxB.setValueType(ValueType.NUMBER);
Indicator dxC = createIndicator('C', itA);
dxC.setUid("deabcdefghC");
dxC.setDecimals(0);
dxC.setAggregateExportAttributeOptionCombo("ceabcdefghA");
Indicator dxD = createIndicator('D', itA);
dxD.setUid("deabcdefghD");
dxD.setDecimals(2);
dxD.setAggregateExportCategoryOptionCombo("ceabcdefghB");
DataElementOperand dxE = new DataElementOperand(dxA, ocA);
DataElementOperand dxF = new DataElementOperand(dxB, ocA);
DataQueryParams params = DataQueryParams.newBuilder().addDimension(new BaseDimensionalObject(DATA_X_DIM_ID, DimensionType.DATA_X, Lists.newArrayList(dxA, dxB, dxC, dxD, dxE, dxF))).build();
Grid grid = new ListGrid();
grid.addHeader(new GridHeader(DimensionalObject.DATA_X_DIM_ID));
grid.addHeader(new GridHeader(DimensionalObject.ORGUNIT_DIM_ID));
grid.addHeader(new GridHeader(DimensionalObject.PERIOD_DIM_ID));
grid.addHeader(new GridHeader(VALUE_ID, VALUE_HEADER_NAME, ValueType.NUMBER, Double.class.getName(), false, false));
grid.addRow().addValuesAsList(Lists.newArrayList("deabcdefghA", "ouA", "peA", 1d));
grid.addRow().addValuesAsList(Lists.newArrayList("deabcdefghB", "ouA", "peA", 2d));
grid.addRow().addValuesAsList(Lists.newArrayList("deabcdefghC", "ouA", "peA", 3d));
grid.addRow().addValuesAsList(Lists.newArrayList("deabcdefghD", "ouA", "peA", 4d));
grid.addRow().addValuesAsList(Lists.newArrayList("deabcdefghA.ceabcdefghA", "ouA", "peA", 5d));
grid.addRow().addValuesAsList(Lists.newArrayList("deabcdefghB.ceabcdefghA", "ouA", "peA", 6d));
assertEquals(4, grid.getWidth());
assertEquals(6, grid.getHeight());
AnalyticsUtils.handleGridForDataValueSet(params, grid);
assertEquals(6, grid.getWidth());
assertEquals(6, grid.getHeight());
assertEquals("deabcdefghA", grid.getRow(0).get(0));
assertNull(grid.getRow(0).get(3));
assertNull(grid.getRow(0).get(4));
assertEquals(1, grid.getRow(0).get(5));
assertEquals("deabcdefghB", grid.getRow(1).get(0));
assertNull(grid.getRow(1).get(3));
assertNull(grid.getRow(1).get(4));
assertEquals(2d, (Double) grid.getRow(1).get(5), 0.01);
assertEquals("deabcdefghC", grid.getRow(2).get(0));
assertNull(grid.getRow(2).get(3));
assertEquals("ceabcdefghA", grid.getRow(2).get(4));
assertEquals(3, grid.getRow(2).get(5));
assertEquals("deabcdefghD", grid.getRow(3).get(0));
assertEquals("ceabcdefghB", grid.getRow(3).get(3));
assertNull(grid.getRow(3).get(4));
assertEquals(4d, (Double) grid.getRow(3).get(5), 0.01);
assertEquals("deabcdefghA", grid.getRow(4).get(0));
assertEquals("ceabcdefghA", grid.getRow(4).get(3));
assertNull(grid.getRow(4).get(4));
assertEquals(5, grid.getRow(4).get(5));
assertEquals("deabcdefghB", grid.getRow(5).get(0));
assertEquals("ceabcdefghA", grid.getRow(5).get(3));
assertNull(grid.getRow(5).get(4));
assertEquals(6d, (Double) grid.getRow(5).get(5), 0.01);
}
use of org.hisp.dhis.system.grid.ListGrid in project dhis2-core by dhis2.
the class AnalyticsUtilsTest method testGetAggregatedDataValueMapping.
@Test
public void testGetAggregatedDataValueMapping() {
Grid grid = new ListGrid();
grid.addRow();
grid.addValue("de1");
grid.addValue("ou2");
grid.addValue("pe1");
grid.addValue(3);
grid.addRow();
grid.addValue("de2");
grid.addValue("ou3");
grid.addValue("pe2");
grid.addValue(5);
Map<String, Object> map = AnalyticsUtils.getAggregatedDataValueMapping(grid);
assertEquals(3, map.get("de1" + DIMENSION_SEP + "ou2" + DIMENSION_SEP + "pe1"));
assertEquals(5, map.get("de2" + DIMENSION_SEP + "ou3" + DIMENSION_SEP + "pe2"));
}
use of org.hisp.dhis.system.grid.ListGrid in project dhis2-core by dhis2.
the class ExportAnalysisResultAction method generateGrid.
@SuppressWarnings("unchecked")
private Grid generateGrid() {
List<DeflatedDataValue> results = (List<DeflatedDataValue>) SessionUtils.getSessionVar(GetAnalysisAction.KEY_ANALYSIS_DATA_VALUES);
Grid grid = new ListGrid();
grid.setTitle(i18n.getString("data_analysis_report"));
grid.addHeader(new GridHeader(i18n.getString("dataelement"), false, true));
grid.addHeader(new GridHeader(i18n.getString("source"), false, true));
grid.addHeader(new GridHeader(i18n.getString("period"), false, true));
grid.addHeader(new GridHeader(i18n.getString("min"), false, false));
grid.addHeader(new GridHeader(i18n.getString("value"), false, false));
grid.addHeader(new GridHeader(i18n.getString("max"), false, false));
for (DeflatedDataValue dataValue : results) {
Period period = dataValue.getPeriod();
grid.addRow();
grid.addValue(dataValue.getDataElementName());
grid.addValue(dataValue.getSourceName());
grid.addValue(format.formatPeriod(period));
grid.addValue(dataValue.getMin());
grid.addValue(dataValue.getValue());
grid.addValue(dataValue.getMax());
}
return grid;
}
Aggregations