/** * Writes a CSV representation of the given Grid to the given OutputStream. */ public static void toCsv( Grid grid, Writer writer ) throws IOException { if ( grid == null ) { return; } CsvWriter csvWriter = new CsvWriter( writer, CSV_DELIMITER ); Iterator<GridHeader> headers = grid.getHeaders().iterator(); if ( !grid.getHeaders().isEmpty() ) { while ( headers.hasNext() ) { csvWriter.write( headers.next().getColumn() ); } csvWriter.endRecord(); } for ( List<Object> row : grid.getRows() ) { for ( Object value : row ) { csvWriter.write( value != null ? String.valueOf( value ) : StringUtils.EMPTY ); } csvWriter.endRecord(); } }
@Override public JFreeChart getOrganisationUnitDistributionChart( OrganisationUnitGroupSet groupSet, OrganisationUnit organisationUnit ) { Map<String, Double> categoryValues = new HashMap<>(); Grid grid = getOrganisationUnitDistribution( groupSet, organisationUnit, true ); if ( grid == null || grid.getHeight() != 1 ) { return null; } for ( int i = 1; i < grid.getWidth() - 2; i++ ) // Skip name, none and total column { categoryValues.put( grid.getHeaders().get( i ).getName(), Double.valueOf( String.valueOf( grid.getRow( 0 ).get( i ) ) ) ); } String title = groupSet.getName() + TITLE_SEP + organisationUnit.getName(); JFreeChart chart = chartService.getJFreeChart( title, PlotOrientation.VERTICAL, CategoryLabelPositions.DOWN_45, categoryValues ); return chart; }
private void substituteData( EventQueryParams params, Grid grid ) { for ( int i = 0; i < grid.getHeaders().size(); i++ ) { GridHeader header = grid.getHeaders().get( i ); if ( header.hasOptionSet() ) { Map<String, String> optionMap = header.getOptionSetObject().getOptionCodePropertyMap( IdScheme.NAME ); grid.substituteMetaData( i, i, optionMap ); } else if ( header.hasLegendSet() ) { Map<String, String> legendMap = header.getLegendSetObject().getLegendUidPropertyMap( IdScheme.NAME ); grid.substituteMetaData( i, i, legendMap ); } } }
private void getEvents( EventQueryParams params, Grid grid, String sql ) { log.debug( String.format( "Analytics event query SQL: %s", sql ) ); SqlRowSet rowSet = jdbcTemplate.queryForRowSet( sql ); while ( rowSet.next() ) { grid.addRow(); int index = 1; for ( GridHeader header : grid.getHeaders() ) { if ( ITEM_LONGITUDE.equals( header.getName() ) || ITEM_LATITUDE.equals( header.getName() ) ) { double val = rowSet.getDouble( index ); grid.addValue( Precision.round( val, COORD_DEC ) ); } else if ( Double.class.getName().equals( header.getType() ) && !header.hasLegendSet() ) { double val = rowSet.getDouble( index ); grid.addValue( params.isSkipRounding() ? val : MathUtils.getRounded( val ) ); } else { grid.addValue( rowSet.getString( index ) ); } index++; } } }
/** * Writes an XML representation of the given Grid to the given OutputStream. */ public static void toXml( Grid grid, OutputStream out ) { XMLWriter writer = XMLFactory.getXMLWriter( out ); writer.openDocument(); writer.openElement( ATTR_GRID, ATTR_TITLE, grid.getTitle(), ATTR_SUBTITLE, grid.getSubtitle(), ATTR_WIDTH, String.valueOf( grid.getWidth() ), ATTR_HEIGHT, String.valueOf( grid.getHeight() ) ); writer.openElement( ATTR_HEADERS ); for ( GridHeader header : grid.getHeaders() ) { writer.writeElement( ATTR_HEADER, null, ATTR_NAME, header.getName(), ATTR_COLUMN, header.getColumn(), ATTR_TYPE, header.getType(), ATTR_HIDDEN, String.valueOf( header.isHidden() ), ATTR_META, String.valueOf( header.isMeta() ) ); } writer.closeElement(); writer.openElement( ATTR_ROWS ); for ( List<Object> row : grid.getRows() ) { writer.openElement( ATTR_ROW ); for ( Object field : row ) { writer.writeElement( ATTR_FIELD, field != null ? String.valueOf( field ) : EMPTY ); } writer.closeElement(); } writer.closeElement(); writer.closeElement(); writer.closeDocument(); }
final int startColumnIndex = grid.getHeaders().size(); final int numberOfColumns = getGridColumns().size();