diff --git a/dmp-backend/src/main/java/eu/eudat/managers/DatasetManager.java b/dmp-backend/src/main/java/eu/eudat/managers/DatasetManager.java index 5486183b8..b99ab0ac6 100644 --- a/dmp-backend/src/main/java/eu/eudat/managers/DatasetManager.java +++ b/dmp-backend/src/main/java/eu/eudat/managers/DatasetManager.java @@ -71,7 +71,7 @@ public class DatasetManager { private static void propertiesModelToString(DatasetWizardModel datasetWizardModel,eu.eudat.entities.Dataset dataset){ Map values = new HashMap(); - PropertiesModel properties = datasetWizardModel.getProperties(); + PagedDatasetProfile properties = datasetWizardModel.getDatasetProfileDefinition(); properties.toMap(values); JSONObject jobject = new JSONObject(values); dataset.setProperties(jobject.toString()); diff --git a/dmp-backend/src/main/java/eu/eudat/models/datasetwizard/DatasetWizardModel.java b/dmp-backend/src/main/java/eu/eudat/models/datasetwizard/DatasetWizardModel.java index d9719c02a..0e1d0e328 100644 --- a/dmp-backend/src/main/java/eu/eudat/models/datasetwizard/DatasetWizardModel.java +++ b/dmp-backend/src/main/java/eu/eudat/models/datasetwizard/DatasetWizardModel.java @@ -38,7 +38,6 @@ public class DatasetWizardModel implements DataModel { private List dataRepositories; private List externalDatasets; private DatasetProfileListingModel profile; - private PropertiesModel properties; public UUID getId() { return id; @@ -88,14 +87,6 @@ public class DatasetWizardModel implements DataModel { this.status = status; } - public PropertiesModel getProperties() { - return properties; - } - - public void setProperties(PropertiesModel properties) { - this.properties = properties; - } - public Date getCreated() { return created; } diff --git a/dmp-backend/src/main/java/eu/eudat/models/user/components/datasetprofile/Field.java b/dmp-backend/src/main/java/eu/eudat/models/user/components/datasetprofile/Field.java index f6e04715d..2db704c16 100644 --- a/dmp-backend/src/main/java/eu/eudat/models/user/components/datasetprofile/Field.java +++ b/dmp-backend/src/main/java/eu/eudat/models/user/components/datasetprofile/Field.java @@ -10,162 +10,192 @@ import eu.eudat.models.components.commons.DefaultValue; import eu.eudat.models.components.commons.Multiplicity; import eu.eudat.models.components.commons.ViewStyle; import eu.eudat.models.components.commons.Visibility; +import eu.eudat.models.properties.PropertiesGenerator; import eu.eudat.models.user.composite.PropertiesModelBuilder; import eu.eudat.utilities.ModelDefinition; import eu.eudat.utilities.ViewStyleDefinition; import eu.eudat.utilities.builders.ModelBuilder; -public class Field implements Comparable,PropertiesModelBuilder,ViewStyleDefinition{ - private String id; - private Integer ordinal; - private String value; - private ViewStyle viewStyle; - private String datatype; - private int page; - private DefaultValue defaultValue; - private Multiplicity multiplicity; - private Object data; - private List multiplicityItems; - private List validations; - private Visibility visible; - public List getMultiplicityItems() { - return multiplicityItems; - } - public void setMultiplicityItems(List multiplicityItems) { - this.multiplicityItems = multiplicityItems; - } - public void setOrdinal(Integer ordinal) { - this.ordinal = ordinal; - } - public String getId() { - return id; - } - public void setId(String id) { - this.id = id; - } - - public int getOrdinal(){ - return ordinal; - } - - public void setOrdinal(int ordinal){ - this.ordinal = ordinal; - } - public String getValue() { - return value; - } - public void setValue(String value) { - this.value = value; - } - public ViewStyle getViewStyle() { - return viewStyle; - } - public void setViewStyle(ViewStyle viewStyle) { - this.viewStyle = viewStyle; - } - public int getPage() { - return page; - } - public void setPage(int page) { - this.page = page; - } - - public DefaultValue getDefaultValue() { - return defaultValue; - } - public void setDefaultValue(DefaultValue defaultValue) { - this.defaultValue = defaultValue; - } - public String getDatatype() { - return datatype; - } - public void setDatatype(String datatype) { - this.datatype = datatype; - } - - public Multiplicity getMultiplicity() { - return multiplicity; - } - public void setMultiplicity(Multiplicity multiplicity) { - this.multiplicity = multiplicity; - } - - public Object getData() { - return data; - } - public void setData(Object data) { - this.data = data; - } +public class Field implements Comparable, PropertiesModelBuilder, ViewStyleDefinition, PropertiesGenerator { + private String id; + private Integer ordinal; + private String value; + private ViewStyle viewStyle; + private String datatype; + private int page; + private DefaultValue defaultValue; + private Multiplicity multiplicity; + private Object data; + private List multiplicityItems; + private List validations; + private Visibility visible; - public Visibility getVisible() { - return visible; - } + public List getMultiplicityItems() { + return multiplicityItems; + } - public void setVisible(Visibility visible) { - this.visible = visible; - } + public void setMultiplicityItems(List multiplicityItems) { + this.multiplicityItems = multiplicityItems; + } - public List getValidations() { - return this.validations.stream().map(item->(int)item.getValue()).collect(Collectors.toList()); - } + public void setOrdinal(Integer ordinal) { + this.ordinal = ordinal; + } - public void setValidations(List validations) { - this.validations = eu.eudat.models.admin.components.datasetprofile.Field.ValidationType.fromIntegers(validations); - } + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOrdinal() { + return ordinal; + } + + public void setOrdinal(int ordinal) { + this.ordinal = ordinal; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public ViewStyle getViewStyle() { + return viewStyle; + } + + public void setViewStyle(ViewStyle viewStyle) { + this.viewStyle = viewStyle; + } + + public int getPage() { + return page; + } + + public void setPage(int page) { + this.page = page; + } + + public DefaultValue getDefaultValue() { + return defaultValue; + } + + public void setDefaultValue(DefaultValue defaultValue) { + this.defaultValue = defaultValue; + } + + public String getDatatype() { + return datatype; + } + + public void setDatatype(String datatype) { + this.datatype = datatype; + } + + public Multiplicity getMultiplicity() { + return multiplicity; + } + + public void setMultiplicity(Multiplicity multiplicity) { + this.multiplicity = multiplicity; + } + + public Object getData() { + return data; + } + + public void setData(Object data) { + this.data = data; + } + + public Visibility getVisible() { + return visible; + } + + public void setVisible(Visibility visible) { + this.visible = visible; + } + + public List getValidations() { + return this.validations.stream().map(item -> (int) item.getValue()).collect(Collectors.toList()); + } + + public void setValidations(List validations) { + this.validations = eu.eudat.models.admin.components.datasetprofile.Field.ValidationType.fromIntegers(validations); + } - public Field cloneForMultiplicity(String key, Map properties){ - Field newField = new Field(); - newField.id = key; - newField.ordinal = this.ordinal; - newField.value = (String)properties.get(key); - newField.viewStyle = this.viewStyle; - newField.datatype = this.datatype; - newField.page = this.page; - newField.defaultValue = this.defaultValue; - newField.data = this.data; - newField.validations = this.validations; - return newField; - } + public Field cloneForMultiplicity(String key, Map properties) { + Field newField = new Field(); + newField.id = key; + newField.ordinal = this.ordinal; + newField.value = (String) properties.get(key); + newField.viewStyle = this.viewStyle; + newField.datatype = this.datatype; + newField.page = this.page; + newField.defaultValue = this.defaultValue; + newField.data = this.data; + newField.validations = this.validations; + return newField; + } - @Override - public eu.eudat.entities.xmlmodels.datasetprofiledefinition.Field toDatabaseDefinition(eu.eudat.entities.xmlmodels.datasetprofiledefinition.Field field) { - field.setId(this.id); - field.setOrdinal(this.ordinal); - field.setViewStyle(this.viewStyle); - field.setData(new ModelBuilder().toFieldData(data, this.viewStyle.getRenderStyle())); - field.setDefaultValue(this.defaultValue); - field.setVisible(this.visible); - field.setValidations(this.validations); - return field; - } - @Override - public void fromDatabaseDefinition(eu.eudat.entities.xmlmodels.datasetprofiledefinition.Field item) { - this.id = item.getId(); - this.ordinal = item.getOrdinal(); - this.viewStyle = item.getViewStyle(); - this.data = item.getData(); - this.defaultValue = item.getDefaultValue(); - this.visible= item.getVisible(); - this.validations = item.getValidations(); - } - @Override - public void fromJsonObject(Map properties) { - this.value = (String)properties.get(this.id); - this.multiplicityItems = new LinkedList(); - List compositeKeys = properties.keySet().stream().filter(keys->keys.startsWith("multiple_"+this.getId())).collect(Collectors.toList()); - for (String key : compositeKeys) { - this.multiplicityItems.add(this.cloneForMultiplicity(key, properties)); - } - - } - @Override - public int compareTo(Object o) { - return this.ordinal.compareTo(((Field)o).getOrdinal()); - } - @Override - public void fromJsonObject(Map properties, String path) { - this.value = (String)properties.get(path); - } + @Override + public eu.eudat.entities.xmlmodels.datasetprofiledefinition.Field toDatabaseDefinition(eu.eudat.entities.xmlmodels.datasetprofiledefinition.Field field) { + field.setId(this.id); + field.setOrdinal(this.ordinal); + field.setViewStyle(this.viewStyle); + field.setData(new ModelBuilder().toFieldData(data, this.viewStyle.getRenderStyle())); + field.setDefaultValue(this.defaultValue); + field.setVisible(this.visible); + field.setValidations(this.validations); + return field; + } + @Override + public void fromDatabaseDefinition(eu.eudat.entities.xmlmodels.datasetprofiledefinition.Field item) { + this.id = item.getId(); + this.ordinal = item.getOrdinal(); + this.viewStyle = item.getViewStyle(); + this.data = item.getData(); + this.defaultValue = item.getDefaultValue(); + this.visible = item.getVisible(); + this.validations = item.getValidations(); + } + + @Override + public void fromJsonObject(Map properties) { + this.value = (String) properties.get(this.id); + this.multiplicityItems = new LinkedList(); + List compositeKeys = properties.keySet().stream().filter(keys -> keys.startsWith("multiple_" + this.getId())).collect(Collectors.toList()); + for (String key : compositeKeys) { + this.multiplicityItems.add(this.cloneForMultiplicity(key, properties)); + } + + } + + @Override + public int compareTo(Object o) { + return this.ordinal.compareTo(((Field) o).getOrdinal()); + } + + @Override + public void fromJsonObject(Map properties, String path) { + this.value = (String) properties.get(path); + } + + @Override + public void toMap(Map fieldValues) { + fieldValues.put(this.id, this.value); + } + + @Override + public void toMap(Map fieldValues, int index) { + fieldValues.put(this.id, this.value); + } } \ No newline at end of file diff --git a/dmp-backend/src/main/java/eu/eudat/models/user/components/datasetprofile/FieldSet.java b/dmp-backend/src/main/java/eu/eudat/models/user/components/datasetprofile/FieldSet.java index f5fcf2a84..ec813a21e 100644 --- a/dmp-backend/src/main/java/eu/eudat/models/user/components/datasetprofile/FieldSet.java +++ b/dmp-backend/src/main/java/eu/eudat/models/user/components/datasetprofile/FieldSet.java @@ -1,18 +1,16 @@ package eu.eudat.models.user.components.datasetprofile; -import java.util.Collections; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; import eu.eudat.models.components.commons.Multiplicity; +import eu.eudat.models.properties.PropertiesGenerator; import eu.eudat.models.user.composite.PropertiesModelBuilder; import eu.eudat.utilities.ModelDefinition; import eu.eudat.utilities.ViewStyleDefinition; import eu.eudat.utilities.builders.ModelBuilder; -public class FieldSet implements Comparable,PropertiesModelBuilder, ViewStyleDefinition{ +public class FieldSet implements Comparable,PropertiesModelBuilder, ViewStyleDefinition,PropertiesGenerator { private String id; private Integer ordinal; private String title; @@ -180,6 +178,21 @@ public class FieldSet implements Comparable,PropertiesModelBuilder, ViewStyleDef // TODO Auto-generated method stub } - - + + @Override + public void toMap(Map fieldValues) { + fieldValues.put("commentFieldValue" + this.id, this.commentFieldValue); + this.fields.forEach(item -> item.toMap(fieldValues)); + Map multiplicity = new HashMap(); + if (this.multiplicityItems != null) { + this.multiplicityItems.forEach(item -> item.toMap(fieldValues, this.multiplicityItems.indexOf(item))); + } + //fieldValues.put(this.id,multiplicity); + } + + @Override + public void toMap(Map fieldValues, int index) { + this.fields.forEach(item -> item.toMap(fieldValues, index)); + //this.multiplicityItems.forEach(item->item.toMap(fieldValues,index)); + } } diff --git a/dmp-backend/src/main/java/eu/eudat/models/user/components/datasetprofile/Section.java b/dmp-backend/src/main/java/eu/eudat/models/user/components/datasetprofile/Section.java index 3fac4835e..886c0e524 100644 --- a/dmp-backend/src/main/java/eu/eudat/models/user/components/datasetprofile/Section.java +++ b/dmp-backend/src/main/java/eu/eudat/models/user/components/datasetprofile/Section.java @@ -4,13 +4,14 @@ import java.util.Collections; import java.util.List; import java.util.Map; +import eu.eudat.models.properties.PropertiesGenerator; import eu.eudat.models.user.composite.PropertiesModelBuilder; import eu.eudat.utilities.ViewStyleDefinition; import eu.eudat.utilities.builders.ModelBuilder; -public class Section implements Comparable,ViewStyleDefinition,PropertiesModelBuilder{ +public class Section implements Comparable,ViewStyleDefinition,PropertiesModelBuilder,PropertiesGenerator { private List
sections; - private List
fieldSets; + private List
compositeFields; private Boolean defaultVisibility; private String page; private Integer ordinal; @@ -25,12 +26,12 @@ public class Section implements Comparable,ViewStyleDefinition getFieldSets() { - return fieldSets; + public List
getCompositeFields() { + return compositeFields; } - public void setFieldSets(List
fieldSets) { - this.fieldSets = fieldSets; + public void setCompositeFields(List
compositeFields) { + this.compositeFields = compositeFields; } public Boolean getDefaultVisibility() { @@ -74,7 +75,7 @@ public class Section implements Comparable,ViewStyleDefinition properties) { this.sections.forEach(item->item.fromJsonObject(properties)); - this.fieldSets.forEach(item->item.fromJsonObject(properties)); + this.compositeFields.forEach(item->item.fromJsonObject(properties)); } @Override public int compareTo(Object o) { @@ -107,6 +108,15 @@ public class Section implements Comparable,ViewStyleDefinition fieldValues) { + this.sections.forEach(item->item.toMap(fieldValues)); + this.compositeFields.forEach(item->item.toMap(fieldValues)); + } + + @Override + public void toMap(Map fieldValues, int index) { + + } } diff --git a/dmp-backend/src/main/java/eu/eudat/models/user/composite/PagedDatasetProfile.java b/dmp-backend/src/main/java/eu/eudat/models/user/composite/PagedDatasetProfile.java index a59c2fbd5..6a30c7a4e 100644 --- a/dmp-backend/src/main/java/eu/eudat/models/user/composite/PagedDatasetProfile.java +++ b/dmp-backend/src/main/java/eu/eudat/models/user/composite/PagedDatasetProfile.java @@ -1,16 +1,18 @@ package eu.eudat.models.user.composite; import eu.eudat.models.admin.components.datasetprofile.Page; +import eu.eudat.models.properties.PropertiesGenerator; import eu.eudat.models.user.components.commons.Rule; import java.util.LinkedList; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** * Created by ikalyvas on 1/19/2018. */ -public class PagedDatasetProfile { +public class PagedDatasetProfile implements PropertiesGenerator { private List pages; private List rules; private int status; @@ -54,4 +56,13 @@ public class PagedDatasetProfile { return this; } + @Override + public void toMap(Map fieldValues) { + this.pages.forEach(item->item.getSections().forEach(sectionItem->sectionItem.toMap(fieldValues))); + } + + @Override + public void toMap(Map fieldValues, int index) { + + } } diff --git a/dmp-frontend/src/app/datasets/dataset-wizard/dataset-wizard.component.ts b/dmp-frontend/src/app/datasets/dataset-wizard/dataset-wizard.component.ts index 991e99f75..19e04e270 100644 --- a/dmp-frontend/src/app/datasets/dataset-wizard/dataset-wizard.component.ts +++ b/dmp-frontend/src/app/datasets/dataset-wizard/dataset-wizard.component.ts @@ -158,7 +158,7 @@ export class DatasetWizardComponent { } submit() { - this.datasetWizardService.saveDataset(this.formGroup.value, this.formGroup.get('datasetProfileDefinition').value).subscribe(data => { + this.datasetWizardService.createDataset(this.formGroup.value).subscribe(data => { this.router.navigateByUrl("/datasets/dmp/" + this.datasetWizardModel.dmp.id); }); } diff --git a/dmp-frontend/src/app/models/Section.ts b/dmp-frontend/src/app/models/Section.ts index 14fdba3af..828ede260 100644 --- a/dmp-frontend/src/app/models/Section.ts +++ b/dmp-frontend/src/app/models/Section.ts @@ -24,7 +24,7 @@ export class Section extends BaseModel implements Serializable
, FormGen this.id = item.id; this.title = item.title; this.description = item.description; - this.compositeFields = JsonSerializer.fromJSONArray(item.fieldSets, CompositeField); + this.compositeFields = JsonSerializer.fromJSONArray(item.compositeFields, CompositeField); return this; } diff --git a/dmp-frontend/src/app/services/dataset-wizard/dataset-wizard.service.ts b/dmp-frontend/src/app/services/dataset-wizard/dataset-wizard.service.ts index c02fe8e28..2525fa815 100644 --- a/dmp-frontend/src/app/services/dataset-wizard/dataset-wizard.service.ts +++ b/dmp-frontend/src/app/services/dataset-wizard/dataset-wizard.service.ts @@ -44,10 +44,10 @@ export class DatasetWizardService { return this.http.post(this.actionUrl + 'createOrUpdate', datasetModel, { headers: this.headers }); } - public saveDataset(datasetWizard: DatasetWizardModel, formValue) { +/* public saveDataset(datasetWizard: DatasetWizardModel, formValue) { datasetWizard.properties = formValue; return this.createDataset(datasetWizard) - } + } */ public getDefinition(id: String): Observable { return this.http.get(this.actionUrl + 'get/' + id, { headers: this.headers });