/** * Updates the mapping between header columns and grid indexes. This method * should be invoked whenever the columns are manipulated. */ private void updateColumnIndexMap() { columnIndexMap.clear(); for ( int i = 0; i < headers.size(); i++ ) { columnIndexMap.put( headers.get( i ).getColumn(), i ); } }
/** * 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 Grid addCumulativeColumn( int columnIndex, boolean addHeader ) { verifyGridState(); List<Object> column = getColumn( columnIndex ); List<Object> cumulativeColumn = new ArrayList<>(); double sum = 0d; for ( Object value : column ) { double number = value != null ? Double.parseDouble( String.valueOf( value ) ) : 0d; sum += number; cumulativeColumn.add( sum ); } addColumn( cumulativeColumn ); if ( addHeader && columnIndex < headers.size() ) { GridHeader header = headers.get( columnIndex ); if ( header != null ) { GridHeader regressionHeader = new GridHeader( header.getName() + CUMULATIVE_SUFFIX, header.getColumn() + CUMULATIVE_SUFFIX, header.getValueType(), header.getType(), header.isHidden(), header.isMeta() ); addHeader( regressionHeader ); } } return this; }
header.getColumn() + REGRESSION_SUFFIX, header.getValueType(), header.getType(), header.isHidden(), header.isMeta() );
sheet.addCell( new Label( columnIndex++, rowNumber, header.getColumn(), XLS_FORMAT_LABEL ) );
/** * 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(); }
table.addCell( getItalicCell( header.getColumn() ) );