diff --git a/exporter-addon/src/main/java/org/vaadin/haijian/CSVFileBuilder.java b/exporter-addon/src/main/java/org/vaadin/haijian/CSVFileBuilder.java index d9b39e5..2c70794 100644 --- a/exporter-addon/src/main/java/org/vaadin/haijian/CSVFileBuilder.java +++ b/exporter-addon/src/main/java/org/vaadin/haijian/CSVFileBuilder.java @@ -8,11 +8,11 @@ import java.io.IOException; public class CSVFileBuilder extends FileBuilder { - private FileWriter writer; + protected FileWriter writer; private int rowNr; private int colNr; - CSVFileBuilder(Grid grid, ExporterOption option) { + protected CSVFileBuilder(Grid grid, ExporterOption option) { super(grid, option); } diff --git a/exporter-addon/src/main/java/org/vaadin/haijian/ExcelFileBuilder.java b/exporter-addon/src/main/java/org/vaadin/haijian/ExcelFileBuilder.java index 263726e..ee30be1 100644 --- a/exporter-addon/src/main/java/org/vaadin/haijian/ExcelFileBuilder.java +++ b/exporter-addon/src/main/java/org/vaadin/haijian/ExcelFileBuilder.java @@ -18,10 +18,10 @@ public class ExcelFileBuilder extends FileBuilder { private int rowNr; private int colNr; private Row row; - private Cell cell; + protected Cell cell; private CellStyle boldStyle; - - ExcelFileBuilder(Grid grid, ExporterOption option) { + + protected ExcelFileBuilder(Grid grid, ExporterOption option) { super(grid, option); } diff --git a/exporter-addon/src/main/java/org/vaadin/haijian/FileBuilder.java b/exporter-addon/src/main/java/org/vaadin/haijian/FileBuilder.java index 46c763a..8500b79 100644 --- a/exporter-addon/src/main/java/org/vaadin/haijian/FileBuilder.java +++ b/exporter-addon/src/main/java/org/vaadin/haijian/FileBuilder.java @@ -30,7 +30,7 @@ public abstract class FileBuilder { private boolean headerRowBuilt = false; private ExporterOption option; - FileBuilder(Grid grid, ExporterOption option) { + protected FileBuilder(Grid grid, ExporterOption option) { this.grid = grid; columns = grid.getColumns().stream().filter(this::isExportable).collect(Collectors.toList()); if (columns.isEmpty()) { @@ -44,7 +44,7 @@ private boolean isExportable(Grid.Column column) { && (propertySet == null || propertySet.getProperty(column.getId()).isPresent()); } - InputStream build() { + protected InputStream build() { try { initTempFile(); resetContent(); @@ -136,7 +136,11 @@ private void buildRow(T item) { Optional> propertyDefinition = propertySet.getProperty(column.getId()); if (propertyDefinition.isPresent()) { onNewCell(); - buildCell(propertyDefinition.get().getGetter().apply(item)); + if(column.getValueProvider() != null) { + buildCell( column.getValueProvider().apply(item) ); + } else { + buildCell(propertyDefinition.get().getGetter().apply(item)); + } } else { throw new ExporterException("Column id: " + column.getId() + " is a property which cannot be found"); } @@ -182,4 +186,5 @@ private Stream getDataStream(Query newQuery) { } return stream; } + }