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; + } + +}