Skip to content

Commit e1265ca

Browse files
committed
refactor: refactor getGridHeaders return type
Close #155
1 parent e0362ab commit e1265ca

File tree

5 files changed

+32
-17
lines changed

5 files changed

+32
-17
lines changed

src/main/java/com/flowingcode/vaadin/addons/gridexporter/BaseStreamResourceWriter.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -95,13 +95,13 @@ protected Stream<T> getDataStream(Query newQuery) {
9595
return stream;
9696
}
9797

98-
protected List<Pair<List<String>, Column<T>>> getGridHeaders(Grid<T> grid) {
98+
protected List<GridHeader<T>> getGridHeaders(Grid<T> grid) {
9999
return exporter.getColumnsOrdered().stream()
100-
.map(column -> ImmutablePair.of(getHeaderTexts(grid, column), column))
100+
.map(column -> getGridHeader(grid, column))
101101
.collect(Collectors.toList());
102102
}
103-
104-
private List<String> getHeaderTexts(Grid<T> grid, Column<T> column) {
103+
104+
private GridHeader<T> getGridHeader(Grid<T> grid, Column<T> column) {
105105
List<String> headerTexts = new ArrayList<>();
106106
List<HeaderRow> headerRows = grid.getHeaderRows();
107107
for (HeaderRow headerRow : headerRows) {
@@ -117,7 +117,7 @@ private List<String> getHeaderTexts(Grid<T> grid, Column<T> column) {
117117
});
118118
headerTexts.add(headerText);
119119
}
120-
return headerTexts;
120+
return new GridHeader<>(headerTexts, column);
121121
}
122122

123123
protected List<Pair<String, Column<T>>> getGridFooters(Grid<T> grid) {

src/main/java/com/flowingcode/vaadin/addons/gridexporter/CsvStreamResourceWriter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ public void accept(OutputStream out, VaadinSession session) throws IOException {
6161
.filter(this::isExportable)
6262
.collect(Collectors.toList()));
6363

64-
headers = getGridHeaders(grid).stream().map(Pair::getLeft).toArray(String[]::new);
64+
headers = getGridHeaders(grid).stream().map(GridHeader::getHeaderTexts).toArray(String[]::new);
6565
data = obtainDataStream(grid.getDataProvider())
6666
.map(this::buildRow)
6767
.collect(Collectors.toList());

src/main/java/com/flowingcode/vaadin/addons/gridexporter/DocxStreamResourceWriter.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,8 +129,8 @@ private XWPFDocument createDoc() throws IOException {
129129
});
130130

131131
List<Pair<String, Column<T>>> headers = getGridHeaders(grid).stream()
132-
.map(pair ->
133-
Pair.of(pair.getLeft().get(0), pair.getRight())
132+
.map(header -> Pair.of(header.getHeaderTexts().get(0),
133+
header.getColumn())
134134
).collect(Collectors.toList());
135135
XWPFTableCell cell = findCellWithPlaceHolder(table, exporter.headersPlaceHolder);
136136
if (cell != null) {

src/main/java/com/flowingcode/vaadin/addons/gridexporter/ExcelStreamResourceWriter.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ private Workbook createWorkbook(VaadinSession session) {
9595
}
9696

9797
Cell cell = findCellWithPlaceHolder(sheet, exporter.headersPlaceHolder);
98-
List<Pair<List<String>, Column<T>>> headers = getGridHeaders(grid);
98+
List<GridHeader<T>> headers = getGridHeaders(grid);
9999

100100
fillHeaderOrFooter(sheet, cell, headers, true);
101101
if (exporter.autoMergeTitle && titleCell != null && exporter.getColumns().size()>1) {
@@ -346,7 +346,7 @@ private void buildCell(Object value, Cell cell, Column<T> column, T item) {
346346
String excelFormat = getExcelFormat(column, item, provider);
347347
if (value == null) {
348348
PoiHelper.setBlank(cell);
349-
if(excelFormat != null) {
349+
if(excelFormat != null) {
350350
applyExcelFormat(cell, excelFormat, cellStyles);
351351
}
352352
} else if (value instanceof Number) {
@@ -426,20 +426,20 @@ private Cell findCellWithPlaceHolder(Sheet sheet, String placeholder) {
426426

427427
private void fillFooter(Sheet sheet, Cell headersOrFootersCell,
428428
List<Pair<String, Column<T>>> headersOrFooters, boolean isHeader) {
429-
List<Pair<List<String>, Column<T>>> headersOrFootersCellSingleRow = headersOrFooters.stream()
430-
.map(pair -> Pair.of(List.of(pair.getLeft()), pair.getRight())).collect(Collectors.toList());
429+
List<GridHeader<T>> headersOrFootersCellSingleRow = headersOrFooters.stream()
430+
.map(pair -> new GridHeader<>(List.of(pair.getLeft()), pair.getRight())).collect(Collectors.toList());
431431
fillHeaderOrFooter(sheet, headersOrFootersCell, headersOrFootersCellSingleRow, isHeader);
432432
}
433433
private void fillHeaderOrFooter(Sheet sheet, Cell headersOrFootersCell,
434-
List<Pair<List<String>, Column<T>>> headersOrFooters, boolean isHeader) {
434+
List<GridHeader<T>> headersOrFooters, boolean isHeader) {
435435
CellStyle style = headersOrFootersCell.getCellStyle();
436-
436+
437437
int startRow = headersOrFootersCell.getRowIndex();
438438
int currentColumn = headersOrFootersCell.getColumnIndex();
439439
boolean shiftFirstTime = true;
440-
for (Pair<List<String>, Column<T>> headerOrFooter : headersOrFooters) {
441-
List<String> headerOrFooterTexts = headerOrFooter.getLeft();
442-
Column<T> column = headerOrFooter.getRight();
440+
for (GridHeader<T> headerOrFooter : headersOrFooters) {
441+
List<String> headerOrFooterTexts = headerOrFooter.getHeaderTexts();
442+
Column<T> column = headerOrFooter.getColumn();
443443
if (!isHeader) {
444444
ComponentUtil.setData(column, COLUMN_CELLSTYLE_MAP, null);
445445
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.flowingcode.vaadin.addons.gridexporter;
2+
3+
import com.vaadin.flow.component.grid.Grid.Column;
4+
import java.util.List;
5+
import lombok.Getter;
6+
import lombok.RequiredArgsConstructor;
7+
8+
@Getter
9+
@RequiredArgsConstructor
10+
final class GridHeader<T> {
11+
12+
private final List<String> headerTexts;
13+
private final Column<T> column;
14+
15+
}

0 commit comments

Comments
 (0)