Export properly the data for each field type on dataset templates

This commit is contained in:
George Kalampokis 2021-05-07 14:38:21 +03:00
parent af432cf329
commit 15c3a6fcb5
3 changed files with 149 additions and 53 deletions

View File

@ -2,6 +2,7 @@ package eu.eudat.logic.utilities.documents.xml.datasetProfileXml;
import eu.eudat.models.data.admin.components.datasetprofile.Page; import eu.eudat.models.data.admin.components.datasetprofile.Page;
import eu.eudat.models.data.components.commons.ViewStyle;
import eu.eudat.models.data.components.commons.datafield.*; import eu.eudat.models.data.components.commons.datafield.*;
import eu.eudat.models.data.user.components.datasetprofile.Field; 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.FieldSet;
@ -202,7 +203,9 @@ public class ExportXmlBuilderDatasetProfile {
if (field.getData() != null) { if (field.getData() != null) {
Element dataOut = element.createElement("data"); Element dataOut = element.createElement("data");
if (field.getViewStyle().getRenderStyle().equals("combobox")) { ViewStyle.Type viewStyleType = ViewStyle.Type.fromName(field.getViewStyle().getRenderStyle());
switch (viewStyleType) {
case COMBO_BOX:
ComboBoxData comboBoxDataObject = (ComboBoxData) field.getData(); ComboBoxData comboBoxDataObject = (ComboBoxData) field.getData();
if (comboBoxDataObject.getType().equals("wordlist")) { if (comboBoxDataObject.getType().equals("wordlist")) {
WordListData wordListDataObject = (WordListData) field.getData(); WordListData wordListDataObject = (WordListData) field.getData();
@ -236,10 +239,12 @@ public class ExportXmlBuilderDatasetProfile {
dataOut.appendChild(singleItem); dataOut.appendChild(singleItem);
} }
} }
} else if (field.getViewStyle().getRenderStyle().equals("booleanDecision")) { break;
case BOOLEAN_DECISION:
BooleanDecisionData booleanDecisionDataObject = (BooleanDecisionData) field.getData(); BooleanDecisionData booleanDecisionDataObject = (BooleanDecisionData) field.getData();
dataOut.setAttribute("label", booleanDecisionDataObject.getLabel()); dataOut.setAttribute("label", booleanDecisionDataObject.getLabel());
} else if (field.getViewStyle().getRenderStyle().equals("radiobox")) { break;
case RADIO_BOX:
RadioBoxData radioBoxDataObject = (RadioBoxData) field.getData(); RadioBoxData radioBoxDataObject = (RadioBoxData) field.getData();
dataOut.setAttribute("label", radioBoxDataObject.getLabel()); dataOut.setAttribute("label", radioBoxDataObject.getLabel());
@ -251,18 +256,67 @@ public class ExportXmlBuilderDatasetProfile {
options.appendChild(optionChild); options.appendChild(optionChild);
}); });
dataOut.appendChild(options); dataOut.appendChild(options);
} else if (field.getViewStyle().getRenderStyle().equals("checkBox")) { break;
CheckBoxData checkBoxDataObject = (CheckBoxData) field.getData(); case CHECK_BOX:
dataOut.setAttribute("label", checkBoxDataObject.getLabel()); case FREE_TEXT:
} else if (field.getViewStyle().getRenderStyle().equals("freetext")) { case TEXT_AREA:
FreeTextData freeTextDataObject = (FreeTextData) field.getData(); case DATE_PICKER:
dataOut.setAttribute("label", freeTextDataObject.getLabel()); case DATASET_IDENTIFIER:
} else if (field.getViewStyle().getRenderStyle().equals("textarea")) { case CURRENCY:
TextAreaData textAreaDataObject = (TextAreaData) field.getData(); case TAGS:
dataOut.setAttribute("label", textAreaDataObject.getLabel()); FieldData fieldDataObject = (FieldData) field.getData();
} else if (field.getViewStyle().getRenderStyle().equals("datePicker")) { dataOut.setAttribute("label", fieldDataObject.getLabel());
DatePickerData datePickerDataObject = (DatePickerData) field.getData(); break;
dataOut.setAttribute("label", datePickerDataObject.getLabel()); case INTERNAL_DMP_ENTRIES:
InternalDmpEntitiesData internalDmpEntitiesData = (InternalDmpEntitiesData) field.getData();
dataOut.setAttribute("label", internalDmpEntitiesData.getLabel());
dataOut.setAttribute("type", internalDmpEntitiesData.getType());
switch (internalDmpEntitiesData.getType()) {
case "researchers":
ResearchersAutoCompleteData researchersAutoCompleteData = (ResearchersAutoCompleteData) internalDmpEntitiesData;
dataOut.setAttribute("multiAutocomplete", researchersAutoCompleteData.getMultiAutoComplete().toString());
break;
case "datasets":
DatasetsAutoCompleteData datasetsAutoCompleteData = (DatasetsAutoCompleteData) internalDmpEntitiesData;
dataOut.setAttribute("multiAutocomplete", datasetsAutoCompleteData.getMultiAutoComplete().toString());
break;
case "dmps":
DMPsAutoCompleteData dmPsAutoCompleteData = (DMPsAutoCompleteData) internalDmpEntitiesData;
dataOut.setAttribute("multiAutocomplete", dmPsAutoCompleteData.getMultiAutoComplete().toString());
break;
}
break;
case EXTERNAL_DATASETS:
ExternalDatasetsData externalDatasetsData = (ExternalDatasetsData) field.getData();
dataOut.setAttribute("label", externalDatasetsData.getLabel());
dataOut.setAttribute("multiAutocomplete", externalDatasetsData.getMultiAutoComplete().toString());
break;
case DATA_REPOSITORIES:
DataRepositoriesData dataRepositoriesData = (DataRepositoriesData) field.getData();
dataOut.setAttribute("label", dataRepositoriesData.getLabel());
dataOut.setAttribute("multiAutocomplete", dataRepositoriesData.getMultiAutoComplete().toString());
break;
case ORGANIZATIONS:
OrganizationsData organizationsData = (OrganizationsData) field.getData();
dataOut.setAttribute("label", organizationsData.getLabel());
dataOut.setAttribute("multiAutocomplete", organizationsData.getMultiAutoComplete().toString());
break;
case RESEARCHERS:
ResearcherData researcherData = (ResearcherData) field.getData();
dataOut.setAttribute("label", researcherData.getLabel());
dataOut.setAttribute("multiAutocomplete", researcherData.getMultiAutoComplete().toString());
break;
case REGISTRIES:
RegistriesData registriesData = (RegistriesData) field.getData();
dataOut.setAttribute("label", registriesData.getLabel());
dataOut.setAttribute("multiAutocomplete", registriesData.getMultiAutoComplete().toString());
break;
case SERVICES:
ServicesData servicesData = (ServicesData) field.getData();
dataOut.setAttribute("label", servicesData.getLabel());
dataOut.setAttribute("multiAutocomplete", servicesData.getMultiAutoComplete().toString());
break;
} }
elementField.appendChild(dataOut); elementField.appendChild(dataOut);
} }

View File

@ -117,7 +117,9 @@ public class Field {
fieldEntity.setViewStyle(this.viewStyle.toAdminCompositeModelSection()); fieldEntity.setViewStyle(this.viewStyle.toAdminCompositeModelSection());
FieldData data = new ModelBuilder().toFieldData(null, this.viewStyle.getRenderStyle(), (Element) this.data); FieldData data = new ModelBuilder().toFieldData(null, this.viewStyle.getRenderStyle(), (Element) this.data);
// fieldEntity.setData( data.fromXml((Element) this.data)); // fieldEntity.setData( data.fromXml((Element) this.data));
fieldEntity.setData( data.toMap((Element)this.data)); if (data != null) {
fieldEntity.setData(data.toMap((Element) this.data));
}
return fieldEntity; return fieldEntity;
} }
} }

View File

@ -20,4 +20,44 @@ public class ViewStyle {
this.cssClass = cssClass; this.cssClass = cssClass;
} }
public enum Type {
COMBO_BOX("combobox"),
BOOLEAN_DECISION("booleanDecision"),
RADIO_BOX("radiobox"),
INTERNAL_DMP_ENTRIES("internalDmpEntities"),
CHECK_BOX("checkBox"),
FREE_TEXT("freetext"),
TEXT_AREA("textarea"),
DATE_PICKER("datePicker"),
EXTERNAL_DATASETS("externalDatasets"),
DATA_REPOSITORIES("dataRepositories"),
REGISTRIES("registries"),
SERVICES("services"),
TAGS("tags"),
RESEARCHERS("researchers"),
ORGANIZATIONS("organizations"),
DATASET_IDENTIFIER("datasetIdentifier"),
CURRENCY("currency"),
VALIDATION("validation");
private final String name;
Type(String name) {
this.name = name;
}
public String getName() {
return name;
}
public static Type fromName(String name) {
for (Type type: Type.values()) {
if (name.equals(type.getName())) {
return type;
}
}
throw new IllegalArgumentException("View Style Type [" + name + "] is not valid");
}
}
} }