From 353bc0726684b767a4a0475984f127e89e258f59 Mon Sep 17 00:00:00 2001 From: Marius Heine Date: Fri, 26 Jun 2026 12:46:05 +0200 Subject: [PATCH] fix excel export of compare plannings --- .../export/xlsx/ExcelExportBuilder.java | 22 ++++++++++++++----- .../extensions/CellContentExtensions.xtend | 9 ++++++-- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/java/bundles/org.eclipse.set.feature.export/src/org/eclipse/set/feature/export/xlsx/ExcelExportBuilder.java b/java/bundles/org.eclipse.set.feature.export/src/org/eclipse/set/feature/export/xlsx/ExcelExportBuilder.java index 3229bc03a..b86fb5f8f 100644 --- a/java/bundles/org.eclipse.set.feature.export/src/org/eclipse/set/feature/export/xlsx/ExcelExportBuilder.java +++ b/java/bundles/org.eclipse.set.feature.export/src/org/eclipse/set/feature/export/xlsx/ExcelExportBuilder.java @@ -17,6 +17,7 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Objects; @@ -42,6 +43,7 @@ import org.eclipse.set.basis.exceptions.FileExportException; import org.eclipse.set.feature.export.pdf.TableToTableDocument; import org.eclipse.set.model.tablemodel.CompareFootnoteContainer; +import org.eclipse.set.model.tablemodel.CompareTableFootnoteContainer; import org.eclipse.set.model.tablemodel.Footnote; import org.eclipse.set.model.tablemodel.FootnoteContainer; import org.eclipse.set.model.tablemodel.SimpleFootnoteContainer; @@ -245,17 +247,27 @@ private static void fillSheet(final Sheet sheet, final List rows, } } - private static void fillFootnoteCell(final Cell cell, - final String cellContent, final List allFootnotes, - final FootnoteContainer fnContainer, final boolean inlineFootnote) { - final List footnotes = switch (fnContainer) { + private static List getFootnotes( + final FootnoteContainer fnContainer) { + if (fnContainer == null) { + return Collections.emptyList(); + } + return switch (fnContainer) { case final SimpleFootnoteContainer simpleContainer -> simpleContainer .getFootnotes(); case final CompareFootnoteContainer compareContainer -> compareContainer .getUnchangedFootnotes() .getFootnotes(); - default -> throw new IllegalArgumentException(); + case final CompareTableFootnoteContainer compareContainer -> getFootnotes( + compareContainer.getMainPlanFootnoteContainer()); + default -> Collections.emptyList(); }; + } + + private static void fillFootnoteCell(final Cell cell, + final String cellContent, final List allFootnotes, + final FootnoteContainer fnContainer, final boolean inlineFootnote) { + final List footnotes = getFootnotes(fnContainer); final List fnInfo = footnotes.stream() .map(fn -> TableExtensions.getFootnoteInfo(allFootnotes, fn)) .filter(Objects::nonNull) diff --git a/java/bundles/org.eclipse.set.model.tablemodel.extensions/src/org/eclipse/set/model/tablemodel/extensions/CellContentExtensions.xtend b/java/bundles/org.eclipse.set.model.tablemodel.extensions/src/org/eclipse/set/model/tablemodel/extensions/CellContentExtensions.xtend index 0bce51d45..39e735454 100644 --- a/java/bundles/org.eclipse.set.model.tablemodel.extensions/src/org/eclipse/set/model/tablemodel/extensions/CellContentExtensions.xtend +++ b/java/bundles/org.eclipse.set.model.tablemodel.extensions/src/org/eclipse/set/model/tablemodel/extensions/CellContentExtensions.xtend @@ -216,8 +216,13 @@ class CellContentExtensions { if (content.mainPlanCellContent === null) { return content.mainPlanCellContent.plainStringValue } - - return '''«content.mainPlanCellContent.plainStringValue»/«content.comparePlanCellContent.plainStringValue»''' + + val mainContent = content.mainPlanCellContent.plainStringValue + val compareContent = content.comparePlanCellContent.plainStringValue + if (mainContent.isNullOrEmpty && compareContent.nullOrEmpty) { + return "" + } + return '''«mainContent»/«compareContent»''' } static def dispatch Iterable getStringValueIterable(Void content) {