From fc7f8d427831048051fe2845f05d77cf2d46f973 Mon Sep 17 00:00:00 2001 From: George Kalampokis Date: Thu, 3 Sep 2020 10:46:11 +0300 Subject: [PATCH] When exporting to World and PDF with world list field return it's label instead of it's value (ref #287) --- .../utilities/documents/word/WordBuilder.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/word/WordBuilder.java b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/word/WordBuilder.java index 26c98b530..fcad5a7e4 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/word/WordBuilder.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/word/WordBuilder.java @@ -7,6 +7,7 @@ import eu.eudat.logic.utilities.documents.types.ParagraphStyle; import eu.eudat.logic.utilities.interfaces.ApplierWithValue; import eu.eudat.models.data.components.commons.datafield.CheckBoxData; import eu.eudat.models.data.components.commons.datafield.ComboBoxData; +import eu.eudat.models.data.components.commons.datafield.WordListData; import eu.eudat.models.data.user.components.datasetprofile.Field; import eu.eudat.models.data.user.components.datasetprofile.FieldSet; import eu.eudat.models.data.user.components.datasetprofile.Section; @@ -284,7 +285,20 @@ public class WordBuilder { } return sb.toString(); } else if (comboboxType.equals("wordlist")) { - return field.getValue() != null ? field.getValue().toString() : ""; + WordListData wordListData = (WordListData) field.getData(); + if (wordListData.getOptions().isEmpty() && field.getValue() != null) { + logger.warn("World List has no values but the field has"); + return field.getValue().toString(); + } else if (field.getValue() != null){ + ComboBoxData.Option selectedOption = null; + for (ComboBoxData.Option option: wordListData.getOptions()) { + if (option.getValue().equals(field.getValue())) { + selectedOption = option; + } + } + return selectedOption != null ? selectedOption.getLabel() : field.getValue().toString(); + } + return ""; } } case "booleanDecision":