Compare commits

...

2 Commits

3 changed files with 135 additions and 130 deletions

View File

@ -18,7 +18,7 @@
<maven.compiler.target>21</maven.compiler.target> <maven.compiler.target>21</maven.compiler.target>
<maven.compiler.release>21</maven.compiler.release> <maven.compiler.release>21</maven.compiler.release>
<revision>1.0.0-SNAPSHOT</revision> <revision>1.0.0-SNAPSHOT</revision>
<transformer-base.version>0.0.3</transformer-base.version> <transformer-base.version>1.0.0-SNAPSHOT</transformer-base.version>
</properties> </properties>
<dependencies> <dependencies>

View File

@ -222,128 +222,128 @@ public class WordFileTransformer implements FileTransformerClient {
runSectionDescriptionText.setColor("116a78"); runSectionDescriptionText.setColor("116a78");
wordBuilder.addParagraphContent("Section Fields", document, ParagraphStyle.HEADER2, BigInteger.ZERO, 0); wordBuilder.addParagraphContent("Section Fields", document, ParagraphStyle.HEADER2, BigInteger.ZERO, 0);
sectionFileTransformerModel.getFields().sort(Comparator.comparingInt(FieldFileTransformerModel::getOrdinal)); if (sectionFileTransformerModel.getFields() != null) {
for(FieldFileTransformerModel fieldFileTransformerModel : sectionFileTransformerModel.getFields()){ sectionFileTransformerModel.getFields().sort(Comparator.comparingInt(FieldFileTransformerModel::getOrdinal));
if(fieldFileTransformerModel.getCategory() == DmpBlueprintFieldCategory.System){ for (FieldFileTransformerModel fieldFileTransformerModel : sectionFileTransformerModel.getFields()) {
SystemFieldFileTransformerModel systemField = (SystemFieldFileTransformerModel) fieldFileTransformerModel; if (fieldFileTransformerModel.getCategory() == DmpBlueprintFieldCategory.System) {
XWPFParagraph systemFieldParagraph = document.createParagraph(); SystemFieldFileTransformerModel systemField = (SystemFieldFileTransformerModel) fieldFileTransformerModel;
systemFieldParagraph.setSpacingBetween(1.0); XWPFParagraph systemFieldParagraph = document.createParagraph();
XWPFRun runSyStemFieldTitle = systemFieldParagraph.createRun(); systemFieldParagraph.setSpacingBetween(1.0);
runSyStemFieldTitle.setText("Title: "); XWPFRun runSyStemFieldTitle = systemFieldParagraph.createRun();
runSyStemFieldTitle.setColor("000000"); runSyStemFieldTitle.setText("Title: ");
XWPFRun runSystemFieldTitleText = systemFieldParagraph.createRun(); runSyStemFieldTitle.setColor("000000");
runSystemFieldTitleText.setText(systemField.getLabel()); XWPFRun runSystemFieldTitleText = systemFieldParagraph.createRun();
runSystemFieldTitleText.setColor("116a78"); runSystemFieldTitleText.setText(systemField.getLabel());
if(systemField.getDescription() != null && !systemField.getDescription().isEmpty()){ runSystemFieldTitleText.setColor("116a78");
XWPFParagraph systemFieldDescription = document.createParagraph(); if (systemField.getDescription() != null && !systemField.getDescription().isEmpty()) {
systemFieldDescription.setSpacingBetween(1.0); XWPFParagraph systemFieldDescription = document.createParagraph();
XWPFRun runSyStemFieldDescription = systemFieldDescription.createRun(); systemFieldDescription.setSpacingBetween(1.0);
runSyStemFieldDescription.setText("Description: "); XWPFRun runSyStemFieldDescription = systemFieldDescription.createRun();
runSyStemFieldDescription.setColor("000000"); runSyStemFieldDescription.setText("Description: ");
XWPFRun runSystemFieldDescriptionText = systemFieldDescription.createRun(); runSyStemFieldDescription.setColor("000000");
runSystemFieldDescriptionText.setText(systemField.getDescription()); XWPFRun runSystemFieldDescriptionText = systemFieldDescription.createRun();
runSystemFieldDescriptionText.setColor("116a78"); runSystemFieldDescriptionText.setText(systemField.getDescription());
} runSystemFieldDescriptionText.setColor("116a78");
XWPFParagraph systemFieldInput = document.createParagraph(); }
systemFieldInput.setSpacingBetween(1.0); XWPFParagraph systemFieldInput = document.createParagraph();
XWPFRun runInput = systemFieldInput.createRun(); systemFieldInput.setSpacingBetween(1.0);
runInput.setText("Input: "); XWPFRun runInput = systemFieldInput.createRun();
runInput.setColor("000000"); runInput.setText("Input: ");
Map<String, Object> dmpProperties = objectMapper.readValue(dmpEntity.getProperties(), HashMap.class); runInput.setColor("000000");
switch (systemField.getSystemFieldType()) { Map<String, Object> dmpProperties = objectMapper.readValue(dmpEntity.getProperties(), HashMap.class);
case Text: switch (systemField.getSystemFieldType()) {
XWPFRun runTitle = systemFieldInput.createRun(); case Text:
runTitle.setText(dmpEntity.getLabel()); XWPFRun runTitle = systemFieldInput.createRun();
runTitle.setColor("116a78"); runTitle.setText(dmpEntity.getLabel());
break; runTitle.setColor("116a78");
case HtmlText: break;
XWPFRun runDescription = systemFieldInput.createRun(); case HtmlText:
runDescription.setText(dmpEntity.getDescription()); XWPFRun runDescription = systemFieldInput.createRun();
runDescription.setColor("116a78"); runDescription.setText(dmpEntity.getDescription());
break; runDescription.setColor("116a78");
case Researchers: break;
for(ReferenceFileTransformerModel researcher: researchers){ case Researchers:
XWPFRun runResearcher = systemFieldInput.createRun(); for (ReferenceFileTransformerModel researcher : researchers) {
runResearcher.setText("" + researcher.getLabel()); XWPFRun runResearcher = systemFieldInput.createRun();
runResearcher.setColor("116a78"); runResearcher.setText("" + researcher.getLabel());
} runResearcher.setColor("116a78");
break; }
case Organizations: break;
for(ReferenceFileTransformerModel organisation: organizations){ case Organizations:
XWPFRun runOrganisation = systemFieldInput.createRun(); for (ReferenceFileTransformerModel organisation : organizations) {
runOrganisation.setText("" + organisation.getLabel()); XWPFRun runOrganisation = systemFieldInput.createRun();
runOrganisation.setColor("116a78"); runOrganisation.setText("" + organisation.getLabel());
} runOrganisation.setColor("116a78");
break; }
break;
/* case Language: /* case Language:
XWPFRun runLanguage = systemFieldInput.createRun(); XWPFRun runLanguage = systemFieldInput.createRun();
runLanguage.setText(dmpProperties.get("language").toString()); runLanguage.setText(dmpProperties.get("language").toString());
runLanguage.setColor("116a78"); runLanguage.setColor("116a78");
break;*/ break;*/
case Contact: case Contact:
XWPFRun runContact = systemFieldInput.createRun(); XWPFRun runContact = systemFieldInput.createRun();
runContact.setText(dmpEntity.getCreator().getName()); runContact.setText(dmpEntity.getCreator().getName());
runContact.setColor("116a78"); runContact.setColor("116a78");
break; break;
case Funder: case Funder:
if (!funders.isEmpty()) { if (!funders.isEmpty()) {
XWPFRun runFunder = systemFieldInput.createRun(); XWPFRun runFunder = systemFieldInput.createRun();
runFunder.setText(funders.get(0).getLabel()); runFunder.setText(funders.get(0).getLabel());
runFunder.setColor("116a78"); runFunder.setColor("116a78");
} }
break; break;
case Grant: case Grant:
if (!grants.isEmpty()) { if (!grants.isEmpty()) {
XWPFRun runGrant = systemFieldInput.createRun(); XWPFRun runGrant = systemFieldInput.createRun();
runGrant.setText(grants.get(0).getLabel()); runGrant.setText(grants.get(0).getLabel());
runGrant.setColor("116a78"); runGrant.setColor("116a78");
} }
break; break;
case Project: case Project:
if (!projects.isEmpty()) { if (!projects.isEmpty()) {
XWPFRun runProject = systemFieldInput.createRun(); XWPFRun runProject = systemFieldInput.createRun();
runProject.setText(projects.get(0).getLabel()); runProject.setText(projects.get(0).getLabel());
runProject.setColor("116a78"); runProject.setColor("116a78");
} }
break; break;
case License: case License:
if (dmpProperties.containsKey("license")) { if (dmpProperties.containsKey("license")) {
XWPFRun runLicense = systemFieldInput.createRun(); XWPFRun runLicense = systemFieldInput.createRun();
runLicense.setText(dmpProperties.get("license").toString()); runLicense.setText(dmpProperties.get("license").toString());
runLicense.setColor("116a78"); runLicense.setColor("116a78");
} }
break; break;
case AccessRights: case AccessRights:
if (dmpProperties.containsKey("visible")) { if (dmpProperties.containsKey("visible")) {
XWPFRun runAccessRights = systemFieldInput.createRun(); XWPFRun runAccessRights = systemFieldInput.createRun();
runAccessRights.setText(dmpProperties.get("visible").toString()); runAccessRights.setText(dmpProperties.get("visible").toString());
runAccessRights.setColor("116a78"); runAccessRights.setColor("116a78");
} }
break; break;
}
document.createParagraph();
} else if (fieldFileTransformerModel.getCategory() == DmpBlueprintFieldCategory.Extra) {
ExtraFieldFileTransformerModelFileTransformerModel extraFieldFileTransformerModel = (ExtraFieldFileTransformerModelFileTransformerModel) fieldFileTransformerModel;
XWPFParagraph extraFieldParagraph = document.createParagraph();
extraFieldParagraph.setSpacingBetween(1.0);
XWPFRun runExtraFieldLabel = extraFieldParagraph.createRun();
runExtraFieldLabel.setText(extraFieldFileTransformerModel.getLabel());
runExtraFieldLabel.setColor("116a78");
if (extraFieldFileTransformerModel.getDescription() != null && !extraFieldFileTransformerModel.getDescription().isEmpty()) {
XWPFRun runExtraFieldDescription = extraFieldParagraph.createRun();
runExtraFieldDescription.setText(extraFieldFileTransformerModel.getDescription());
runExtraFieldDescription.setColor("116a78");
}
XWPFRun runExtraFieldInput = extraFieldParagraph.createRun();
Map dmpProperties = objectMapper.readValue(dmpEntity.getProperties(), HashMap.class);
if (dmpProperties.containsKey(fieldFileTransformerModel.getId()) && dmpProperties.get(fieldFileTransformerModel.getId()) != null) {
runExtraFieldInput.setText((String) dmpProperties.get(fieldFileTransformerModel.getId()));
}
runExtraFieldInput.setColor("116a78");
} }
document.createParagraph();
}
else if(fieldFileTransformerModel.getCategory() == DmpBlueprintFieldCategory.Extra){
ExtraFieldFileTransformerModelFileTransformerModel extraFieldFileTransformerModel = (ExtraFieldFileTransformerModelFileTransformerModel) fieldFileTransformerModel;
XWPFParagraph extraFieldParagraph = document.createParagraph();
extraFieldParagraph.setSpacingBetween(1.0);
XWPFRun runExtraFieldLabel = extraFieldParagraph.createRun();
runExtraFieldLabel.setText(extraFieldFileTransformerModel.getLabel());
runExtraFieldLabel.setColor("116a78");
if(extraFieldFileTransformerModel.getDescription() != null && !extraFieldFileTransformerModel.getDescription().isEmpty()){
XWPFRun runExtraFieldDescription = extraFieldParagraph.createRun();
runExtraFieldDescription.setText(extraFieldFileTransformerModel.getDescription());
runExtraFieldDescription.setColor("116a78");
}
XWPFRun runExtraFieldInput = extraFieldParagraph.createRun();
Map dmpProperties = objectMapper.readValue(dmpEntity.getProperties(), HashMap.class);
if (dmpProperties.containsKey(fieldFileTransformerModel.getId()) && dmpProperties.get(fieldFileTransformerModel.getId()) != null) {
runExtraFieldInput.setText((String) dmpProperties.get(fieldFileTransformerModel.getId()));
}
runExtraFieldInput.setColor("116a78");
} }
} }
final Boolean isFinalized = dmpEntity.getStatus() == DmpStatus.Finalized; final Boolean isFinalized = dmpEntity.getStatus() == DmpStatus.Finalized;
final Boolean isPublic = dmpEntity.getPublicAfter() != null && dmpEntity.getPublicAfter().isAfter(Instant.now()); final Boolean isPublic = dmpEntity.getPublicAfter() != null && dmpEntity.getPublicAfter().isAfter(Instant.now());
List<DescriptionFileTransformerModel> descriptions = dmpEntity.getDescriptions().stream() List<DescriptionFileTransformerModel> descriptions = dmpEntity.getDescriptions().stream()

View File

@ -290,7 +290,7 @@ public class WordBuilder {
} }
private void createPages(List<PageFileTransformerModel> datasetProfilePages, XWPFDocument mainDocumentPart, Boolean createListing) { private void createPages(List<PageFileTransformerModel> datasetProfilePages, XWPFDocument mainDocumentPart, Boolean createListing) {
datasetProfilePages.forEach(item -> { datasetProfilePages.stream().filter(item -> item.getSections() != null).forEach(item -> {
try { try {
createSections(item.getSections(), mainDocumentPart, ParagraphStyle.HEADER5, 0, createListing, item.getOrdinal() + 1, null); createSections(item.getSections(), mainDocumentPart, ParagraphStyle.HEADER5, 0, createListing, item.getOrdinal() + 1, null);
} catch (Exception e) { } catch (Exception e) {
@ -302,6 +302,7 @@ public class WordBuilder {
private void createSections(List<SectionFileTransformerModel> sections, XWPFDocument mainDocumentPart, ParagraphStyle style, Integer indent, Boolean createListing, Integer page, String sectionString) { private void createSections(List<SectionFileTransformerModel> sections, XWPFDocument mainDocumentPart, ParagraphStyle style, Integer indent, Boolean createListing, Integer page, String sectionString) {
if (createListing) this.addListing(mainDocumentPart, indent, false, true); if (createListing) this.addListing(mainDocumentPart, indent, false, true);
boolean hasValue = false; boolean hasValue = false;
for (SectionFileTransformerModel section: sections) { for (SectionFileTransformerModel section: sections) {
int paragraphPos = -1; int paragraphPos = -1;
String tempSectionString = sectionString != null ? sectionString + "." + (section.getOrdinal() + 1) : "" + (section.getOrdinal() + 1); String tempSectionString = sectionString != null ? sectionString + "." + (section.getOrdinal() + 1) : "" + (section.getOrdinal() + 1);
@ -311,8 +312,12 @@ public class WordBuilder {
// number.setVal(BigInteger.valueOf(indent)); // number.setVal(BigInteger.valueOf(indent));
paragraphPos = mainDocumentPart.getPosOfParagraph(paragraph); paragraphPos = mainDocumentPart.getPosOfParagraph(paragraph);
} }
createSections(section.getSections(), mainDocumentPart, ParagraphStyle.HEADER5, indent + 1, createListing, page, tempSectionString); if (section.getSections() != null) {
hasValue = createCompositeFields(section.getFieldSets(), mainDocumentPart, indent + 1, createListing, page, tempSectionString); createSections(section.getSections(), mainDocumentPart, ParagraphStyle.HEADER5, indent + 1, createListing, page, tempSectionString);
}
if (section.getFieldSets() != null) {
hasValue = createCompositeFields(section.getFieldSets(), mainDocumentPart, indent + 1, createListing, page, tempSectionString);
}
if (!hasValue && paragraphPos > -1) { if (!hasValue && paragraphPos > -1) {
mainDocumentPart.removeBodyElement(paragraphPos); mainDocumentPart.removeBodyElement(paragraphPos);
@ -436,7 +441,7 @@ public class WordBuilder {
cell = row.createCell(); cell = row.createCell();
} }
cell.setVerticalAlignment(XWPFTableCell.XWPFVertAlign.valueOf("CENTER")); cell.setVerticalAlignment(XWPFTableCell.XWPFVertAlign.valueOf("CENTER"));
String label = ((BaseFieldDataFileTransformerModel) field.getData()).getLabel(); String label = field.getData().getLabel();
if (label != null && label != "") { if (label != null && label != "") {
XWPFParagraph paragraph = cell.getParagraphs().get(0); XWPFParagraph paragraph = cell.getParagraphs().get(0);
paragraph.setIndentationFirstLine(50); paragraph.setIndentationFirstLine(50);
@ -466,9 +471,9 @@ public class WordBuilder {
if (field.getIncludeInExport()) { if (field.getIncludeInExport()) {
if (!createListing) { if (!createListing) {
try { try {
if(((BaseFieldDataFileTransformerModel) field.getData()).getFieldType().equals(FieldType.UPLOAD)){ if(field.getData().getFieldType().equals(FieldType.UPLOAD)){
boolean isImage = false; boolean isImage = false;
for(UploadOptionFileTransformerModel type: ((UploadDataFileTransformerModel)field.getData()).getTypes()){ for(UploadDataFileTransformerModel.UploadDataOptionFileTransformerModel type: ((UploadDataFileTransformerModel)field.getData()).getTypes()){
String fileFormat = type.getValue(); String fileFormat = type.getValue();
if(IMAGE_TYPE_MAP.containsKey(fileFormat)){ if(IMAGE_TYPE_MAP.containsKey(fileFormat)){
isImage = true; isImage = true;
@ -492,7 +497,7 @@ public class WordBuilder {
String format = this.formatter(field); String format = this.formatter(field);
if (((BaseFieldDataFileTransformerModel) field.getData()).getFieldType().equals(FieldType.TAGS)) { if (((BaseFieldDataFileTransformerModel) field.getData()).getFieldType().equals(FieldType.TAGS)) {
format = getCommaSeparatedFormatsFromJson(format, "name"); format = getCommaSeparatedFormatsFromJson(format, "name");
} else if (((BaseFieldDataFileTransformerModel) field.getData()).getFieldType().equals(FieldType.AUTO_COMPLETE)) { } else if (((BaseFieldDataFileTransformerModel) field.getData()).getFieldType().equals(FieldType.EXTERNAL_SELECT)) {
format = getCommaSeparatedFormatsFromJson(format, "label"); format = getCommaSeparatedFormatsFromJson(format, "label");
} }
boolean isResearcher = ((BaseFieldDataFileTransformerModel) field.getData()).getFieldType().equals(FieldType.RESEARCHERS); boolean isResearcher = ((BaseFieldDataFileTransformerModel) field.getData()).getFieldType().equals(FieldType.RESEARCHERS);
@ -613,7 +618,7 @@ public class WordBuilder {
if (field.getData() != null) { if (field.getData() != null) {
if (field.getData().getFieldType().equals(FieldType.UPLOAD)) { if (field.getData().getFieldType().equals(FieldType.UPLOAD)) {
boolean isImage = false; boolean isImage = false;
for (UploadOptionFileTransformerModel type : ((UploadDataFileTransformerModel) field.getData()).getTypes()) { for (UploadDataFileTransformerModel.UploadDataOptionFileTransformerModel type : ((UploadDataFileTransformerModel) field.getData()).getTypes()) {
String fileFormat = type.getValue(); String fileFormat = type.getValue();
if (IMAGE_TYPE_MAP.containsKey(fileFormat)) { if (IMAGE_TYPE_MAP.containsKey(fileFormat)) {
isImage = true; isImage = true;
@ -638,7 +643,7 @@ public class WordBuilder {
String format = this.formatter(field); String format = this.formatter(field);
if (field.getData().getFieldType().equals(FieldType.TAGS)) { if (field.getData().getFieldType().equals(FieldType.TAGS)) {
format = getCommaSeparatedFormatsFromJson(format, "name"); format = getCommaSeparatedFormatsFromJson(format, "name");
} else if (field.getData().getFieldType().equals(FieldType.AUTO_COMPLETE)) { } else if (field.getData().getFieldType().equals(FieldType.EXTERNAL_SELECT)) {
format = getCommaSeparatedFormatsFromJson(format, "label"); format = getCommaSeparatedFormatsFromJson(format, "label");
} }
switch (((BaseFieldDataFileTransformerModel) field.getData()).getFieldType()) { switch (((BaseFieldDataFileTransformerModel) field.getData()).getFieldType()) {
@ -875,7 +880,7 @@ public class WordBuilder {
case SERVICES: case SERVICES:
case TAGS: case TAGS:
case CURRENCY: case CURRENCY:
case AUTO_COMPLETE: { case EXTERNAL_SELECT: {
mapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true); mapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true);
if (field.getData().getValue() == null) return null; if (field.getData().getValue() == null) return null;
List<Map<String, Object>> mapList = new ArrayList<>(); List<Map<String, Object>> mapList = new ArrayList<>();
@ -904,12 +909,12 @@ public class WordBuilder {
} }
return sb.toString(); return sb.toString();
} }
case WORD_LIST: { case SELECT: {
WordListDataFileTransformerModel wordListDataEntity = (WordListDataFileTransformerModel) field.getData(); SelectDataFileTransformerModel wordListDataEntity = (SelectDataFileTransformerModel) field.getData();
if (field.getData().getValue() != null) { if (field.getData().getValue() != null) {
ComboBoxOptionFileTransformerModel selectedOption = null; SelectDataFileTransformerModel.OptionFileTransformerModel selectedOption = null;
if (!wordListDataEntity.getOptions().isEmpty()) { if (!wordListDataEntity.getOptions().isEmpty()) {
for (ComboBoxOptionFileTransformerModel option : wordListDataEntity.getOptions()) { for (SelectDataFileTransformerModel.OptionFileTransformerModel option : wordListDataEntity.getOptions()) {
if (option.getValue().equals(field.getData().getValue())) { if (option.getValue().equals(field.getData().getValue())) {
selectedOption = option; selectedOption = option;
} }
@ -926,7 +931,7 @@ public class WordBuilder {
case RADIO_BOX: case RADIO_BOX:
return field.getData().getValue() != null ? field.getData().getValue().toString() : null; return field.getData().getValue() != null ? field.getData().getValue().toString() : null;
case CHECK_BOX: case CHECK_BOX:
LabelFieldDataFileTransformerModel data = (LabelFieldDataFileTransformerModel) field.getData(); LabelDataFileTransformerModel data = (LabelDataFileTransformerModel) field.getData();
if (field.getData().getValue() == null || field.getData().getValue().equals("false")) return null; if (field.getData().getValue() == null || field.getData().getValue().equals("false")) return null;
return data.getLabel(); return data.getLabel();
case DATE_PICKER:{ case DATE_PICKER:{