From c1156e31046b084bf2a7d586fd30433d5a38ee8d Mon Sep 17 00:00:00 2001 From: haijian Date: Thu, 15 Nov 2018 22:20:08 +0200 Subject: [PATCH] fix inheritance for subclass/ lambda cell override + valueProvider use if any --- exporter-addon/pom.xml | 4 ++-- .../main/java/org/vaadin/haijian/CSVFileBuilder.java | 4 ++-- .../java/org/vaadin/haijian/ExcelFileBuilder.java | 4 ++-- .../src/main/java/org/vaadin/haijian/FileBuilder.java | 11 ++++++++--- 4 files changed, 14 insertions(+), 9 deletions(-) diff --git a/exporter-addon/pom.xml b/exporter-addon/pom.xml index a378147..94a589d 100644 --- a/exporter-addon/pom.xml +++ b/exporter-addon/pom.xml @@ -5,8 +5,8 @@ org.vaadin.haijian exporter jar - 2.0.0 - Exporter Add-on + 2.0.1 + Exporter 3 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 5cef1aa..72a6c9e 100644 --- a/exporter-addon/src/main/java/org/vaadin/haijian/CSVFileBuilder.java +++ b/exporter-addon/src/main/java/org/vaadin/haijian/CSVFileBuilder.java @@ -7,11 +7,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) { + protected CSVFileBuilder(Grid grid) { super(grid); } 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 a470444..4ea520d 100644 --- a/exporter-addon/src/main/java/org/vaadin/haijian/ExcelFileBuilder.java +++ b/exporter-addon/src/main/java/org/vaadin/haijian/ExcelFileBuilder.java @@ -16,10 +16,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) { + protected ExcelFileBuilder(Grid grid) { super(grid); } 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 c8b3870..2d8b498 100644 --- a/exporter-addon/src/main/java/org/vaadin/haijian/FileBuilder.java +++ b/exporter-addon/src/main/java/org/vaadin/haijian/FileBuilder.java @@ -28,7 +28,7 @@ public abstract class FileBuilder { private boolean headerRowBuilt = false; @SuppressWarnings("unchecked") - FileBuilder(Grid grid) { + protected FileBuilder(Grid grid) { this.grid = grid; columns = grid.getColumns().stream().filter(this::isExportable).collect(Collectors.toList()); if (columns.isEmpty()) { @@ -41,7 +41,7 @@ private boolean isExportable(Grid.Column column) { && (propertySet == null || propertySet.getProperty(column.getId()).isPresent()); } - InputStream build() { + protected InputStream build() { try { initTempFile(); resetContent(); @@ -121,7 +121,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 key: " + column.getId() + " is a property which cannot be found"); } @@ -167,4 +171,5 @@ private Stream getDataStream(Query newQuery) { } return stream; } + }