diff --git a/.classpath b/.classpath
index 914db7a..70ce04a 100644
--- a/.classpath
+++ b/.classpath
@@ -27,8 +27,6 @@
-
diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component
index 9f2d2fd..e41db7d 100644
--- a/.settings/org.eclipse.wst.common.component
+++ b/.settings/org.eclipse.wst.common.component
@@ -1,40 +1,46 @@
-
+
+
-
+
+
-
+
+
-
+
+
-
+
+
-
+
+
@@ -44,26 +50,30 @@
uses
-
+
+
-
+
+
-
+
+
-
+
+
diff --git a/pom.xml b/pom.xml
index 09a20eb..9f13784 100644
--- a/pom.xml
+++ b/pom.xml
@@ -74,13 +74,13 @@
com.github.gwtbootstrap
gwt-bootstrap
- 2.3.2.0
compile
org.gcube.portlets.widgets
metadata-profile-form-builder-widget
[1.0.0-SNAPSHOT, 2.0.0-SNAPSHOT)
+ compile
org.gcube.portlets.widgets
@@ -115,6 +115,12 @@
compile
+
+ org.gcube.application
+ geoportal-logic
+ [1.0.0-SNAPSHOT, 2.0.0-SNAPSHOT)
+ compile
+
org.gcube.portlets.user
gcube-widgets
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ConstantsGeoPortalDataEntryApp.java b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ConstantsGeoPortalDataEntryApp.java
new file mode 100644
index 0000000..a9ca6d9
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ConstantsGeoPortalDataEntryApp.java
@@ -0,0 +1,10 @@
+package org.gcube.portlets.user.geoportaldataentry.client;
+
+import org.gcube.portlets.widgets.mpformbuilder.client.ConstantsMPFormBuilder;
+
+public class ConstantsGeoPortalDataEntryApp {
+
+ public static final String DATE_FORMAT = ConstantsMPFormBuilder.DATE_FORMAT;
+
+ public static final String TIME_FORMAT = ConstantsMPFormBuilder.TIME_FORMAT;
+}
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataentry/server/ConvertToServiceModel.java b/src/main/java/org/gcube/portlets/user/geoportaldataentry/server/ConvertToServiceModel.java
new file mode 100644
index 0000000..f1b06c0
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataentry/server/ConvertToServiceModel.java
@@ -0,0 +1,247 @@
+package org.gcube.portlets.user.geoportaldataentry.server;
+
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.time.Instant;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import org.gcube.application.geoportal.model.AccessPolicy;
+import org.gcube.application.geoportal.model.concessioni.Concessione;
+import org.gcube.application.geoportal.model.concessioni.RelazioneScavo;
+import org.gcube.application.geoportal.model.content.UploadedImage;
+import org.gcube.portlets.user.geoportaldataentry.client.ConstantsGeoPortalDataEntryApp;
+import org.gcube.portlets.widgets.mpformbuilder.shared.GenericDatasetBean;
+import org.gcube.portlets.widgets.mpformbuilder.shared.upload.FileUploaded;
+import org.gcube.vomanagement.usermanagement.model.GCubeUser;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class ConvertToServiceModel.
+ *
+ * @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
+ *
+ * Oct 19, 2020
+ */
+public class ConvertToServiceModel {
+
+ public static final DateFormat dateFormat = new SimpleDateFormat(ConstantsGeoPortalDataEntryApp.DATE_FORMAT+" "+ConstantsGeoPortalDataEntryApp.TIME_FORMAT);
+ private static final Logger LOG = LoggerFactory.getLogger(ConvertToServiceModel.class);
+
+ /**
+ * To concessione.
+ *
+ * @param gdb the gdb
+ * @param user the user
+ * @return the concessione
+ */
+ public static Concessione toConcessione(GenericDatasetBean gdb, GCubeUser user) {
+
+ Map> mapFields = gdb.getFormDataEntryFields();
+
+ Concessione concessione = new Concessione();
+
+ List authors = mapFields.get("Autore");
+ if(authors!=null) {
+ concessione.setAuthors(authors);
+ }
+
+
+ //TODO
+ //concessione.setCentroidLat(centroidLat);
+// concessione.setCentroidLong(centroidLong);
+
+ List contributors = mapFields.get("Contributore");
+ if(contributors!=null) {
+ for (String contributor : contributors) {
+ concessione.setContributore(contributor);
+ }
+ }
+
+ //concessione.setCreationTime(Instant.now());
+ concessione.setCreationUser(user.getUsername());
+
+ //TODO
+// concessione.setDataFineScavo(dataFineScavo);
+// concessione.setDataInizioScavo(dataInizioScavo);
+
+ List dataInizProgettoList = mapFields.get("Data inizio Progetto");
+ if(dataInizProgettoList!=null && dataInizProgettoList.size()>0) {
+ String inizioProgetto = dataInizProgettoList.get(0);
+ Instant theIstant = toInstant(inizioProgetto);
+ concessione.setDataInizioProgetto(theIstant);
+ }
+
+ List dataFineProgettoList = mapFields.get("Data fine Progetto");
+ if(dataFineProgettoList!=null && dataFineProgettoList.size()>0) {
+ String fineProgetto = dataFineProgettoList.get(0);
+ Instant theIstant = toInstant(fineProgetto);
+ concessione.setDataFineProgetto(theIstant);
+ }
+
+
+ List descrizioneLst = mapFields.get("Descrizione del contenuto");
+ if(descrizioneLst!=null && descrizioneLst.size()>0) {
+ concessione.setDescrizioneContenuto(descrizioneLst.get(0));
+ }
+
+ List editors = mapFields.get("Editore");
+ if(editors!=null) {
+ for (String editor : editors) {
+ concessione.setEditore(editor);
+ }
+ }
+
+ List fontiFinanziamento = mapFields.get("Fonti del finanziamento");
+ if(fontiFinanziamento!=null) {
+ concessione.setFontiFinanziamento(fontiFinanziamento);
+ }
+
+ List licenzaLst = mapFields.get("Licenza");
+ if(licenzaLst!=null && licenzaLst.size()>0) {
+ //TODO FABIO
+ //concessione.setLicenza()
+ }
+
+ List introduzioneLst = mapFields.get("Introduzione");
+ if(introduzioneLst!=null && introduzioneLst.size()>0) {
+ concessione.setIntroduzione(introduzioneLst.get(0));
+ }
+
+ //TODO
+// concessione.setLastUpdateTime(lastUpdateTime);
+// concessione.setLastUpdateUser(lastUpdateUser);
+
+ List nomeLst = mapFields.get("Nome del progetto");
+ if(nomeLst!=null && nomeLst.size()>0) {
+ concessione.setNome(nomeLst.get(0));
+ }
+
+ List paroleChiaveLibereLst = mapFields.get("Parola chiave a scelta libera");
+ if(paroleChiaveLibereLst!=null){
+ concessione.setParoleChiaveLibere(paroleChiaveLibereLst);
+ }
+
+ List setParoleChiaveICCDLst = mapFields.get("Parola chiave relativa alla cronologia");
+ if(setParoleChiaveICCDLst!=null){
+ concessione.setParoleChiaveICCD(paroleChiaveLibereLst);
+ }
+
+ List risorsaCorrelataLst = mapFields.get("Risorsa correlata");
+ if(risorsaCorrelataLst!=null){
+ concessione.setRisorseCorrelate(risorsaCorrelataLst);
+ }
+
+ List responsabileLst = mapFields.get("Responsabile");
+ if(responsabileLst!=null && responsabileLst.size()>0){
+ concessione.setResponsabile(responsabileLst.get(0));
+ }
+
+ List soggettoLst = mapFields.get("Soggetto");
+ if(soggettoLst!=null){
+ concessione.setSoggetto(soggettoLst);
+ }
+
+ List titolareCopyrightLst = mapFields.get("Titolare Copyright");
+ if(titolareCopyrightLst!=null && titolareCopyrightLst.size()>0){
+ concessione.setTitolareCopyright(titolareCopyrightLst.get(0));
+ }
+
+ List titolareLicenzaLst = mapFields.get("Titolare Licenza");
+ if(titolareLicenzaLst!=null && titolareLicenzaLst.size()>0){
+ concessione.setTitolareLicenza(titolareLicenzaLst.get(0));
+ }
+
+ List titolareDatiLst = mapFields.get("Titolare dei dati");
+ if(titolareDatiLst!=null){
+ concessione.setTitolari(titolareDatiLst);
+ }
+
+ return concessione;
+
+ }
+
+ public static RelazioneScavo toRelazioneScavo(GenericDatasetBean gdb){
+
+ Map> mapFields = gdb.getFormDataEntryFields();
+
+ RelazioneScavo relazioneScavo = new RelazioneScavo();
+
+ List abstractLst = mapFields.get("Abstract");
+ if(abstractLst!=null && abstractLst.size()>0) {
+ relazioneScavo.setAbstractSection(abstractLst.get(0));
+ }
+
+ List responsabiliLst = mapFields.get("Responsabile del documento");
+ if(responsabiliLst!=null) {
+ relazioneScavo.setResponsabili(responsabiliLst);
+ }
+
+
+ List licenzaIdList = mapFields.get("Licenza");
+ if(licenzaIdList!=null && licenzaIdList.size()>0) {
+ relazioneScavo.setLicenseID(licenzaIdList.get(0));
+ }
+
+ //TODO
+ //relazioneScavo.setCreationTime(creationTime);
+ //TODO
+ //relazioneScavo.setPolicy(policy);
+ //TODO
+ //Auto by library
+ //relazioneScavo.setTitolo(titolo);
+
+ return relazioneScavo;
+ }
+
+ public static UploadedImage toImmaginiRappresentative(GenericDatasetBean gdb){
+
+ Map> mapFields = gdb.getFormDataEntryFields();
+
+ UploadedImage uplaodedImage = new UploadedImage();
+
+ List titoloLst = mapFields.get("Titolo");
+ if(titoloLst!=null && titoloLst.size()>0) {
+ uplaodedImage.setTitolo(titoloLst.get(0));
+ }
+
+ List didascaliaLst = mapFields.get("Didascalia");
+ if(didascaliaLst!=null && didascaliaLst.size()>0) {
+ uplaodedImage.setDidascalia(didascaliaLst.get(0));
+ }
+
+
+ List responsabileLst = mapFields.get("Responsabile");
+ if(responsabileLst!=null) {
+ uplaodedImage.setResponsabili(responsabileLst);
+ }
+
+ //TODO???
+ List autoreLst = mapFields.get("Autore");
+ if(autoreLst!=null) {
+
+ }
+
+ return uplaodedImage;
+ }
+
+
+
+
+ public static Instant toInstant(String date) {
+ Instant theInst = null;
+ try {
+ Date theDate = dateFormat.parse(date);
+ theInst = theDate.toInstant();
+ } catch (ParseException e) {
+ LOG.error("No able to parse: "+date, e);
+ }
+ return theInst;
+ }
+
+}