diff --git a/.classpath b/.classpath
index d34fd2d..a2aaf05 100644
--- a/.classpath
+++ b/.classpath
@@ -1,12 +1,12 @@
-
+
-
+
@@ -35,5 +35,5 @@
-
+
diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component
index d895209..a6e9c94 100644
--- a/.settings/org.eclipse.wst.common.component
+++ b/.settings/org.eclipse.wst.common.component
@@ -1,129 +1,10 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
diff --git a/.settings/org.eclipse.wst.common.project.facet.core.xml b/.settings/org.eclipse.wst.common.project.facet.core.xml
index d5270ce..1727216 100644
--- a/.settings/org.eclipse.wst.common.project.facet.core.xml
+++ b/.settings/org.eclipse.wst.common.project.facet.core.xml
@@ -3,5 +3,5 @@
-
+
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 581e73f..10df6b1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,6 +11,27 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
[#20063] Fixes for data-entry components
+## [v1.1.0-SNAPSHOT] - 2020-12-1
+
+#### Enhancements
+
+[#20210] Updating required for data entry facility after the first feedback by domain experts
+
+
+## [v1.0.2-SNAPSHOT] - 2020-11-09
+
+#### Bug fixes
+
+[#20092] Repeatible form: validate the card after the create event is fired
+
+
+## [v1.0.1] - 2020-11-04
+
+#### Bug fixes
+
+[#20063] Fixes for data-entry components
+
+
## [v1.0.0] - 2020-10-07
[#19916] First release
diff --git a/pom.xml b/pom.xml
index f3d9d6d..848194d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -14,7 +14,7 @@
org.gcube.portlets.user
geoportal-data-entry-app
war
- 1.0.1
+ 1.1.0-SNAPSHOT
GeoPortal Data Entry App
The GeoPortal Data Entry App is an application to build the web forms for data entries needed to GeoNa project
@@ -114,7 +114,12 @@
[1.0.0, 2.0.0-SNAPSHOT)
compile
-
+
+ org.gcube.application
+ geoportal-data-common
+ [1.0.0-SNAPSHOT, 2.0.0-SNAPSHOT)
+ compile
+
org.gcube.application
geoportal-logic
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataentry/GeoPortalDataEntryApp.gwt.xml b/src/main/java/org/gcube/portlets/user/geoportaldataentry/GeoPortalDataEntryApp.gwt.xml
index 62c8534..8e50a33 100644
--- a/src/main/java/org/gcube/portlets/user/geoportaldataentry/GeoPortalDataEntryApp.gwt.xml
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataentry/GeoPortalDataEntryApp.gwt.xml
@@ -1,29 +1,34 @@
-
-
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
-
+
-
+
-
-
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ConcessioniFormCardTitle.java b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ConcessioniFormCardTitle.java
index 7aa8b67..0811bf1 100644
--- a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ConcessioniFormCardTitle.java
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ConcessioniFormCardTitle.java
@@ -1,40 +1,88 @@
package org.gcube.portlets.user.geoportaldataentry.client;
+
+/**
+ * The Enum ConcessioniFormCardTitle.
+ *
+ * @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
+ *
+ * Nov 30, 2020
+ */
public enum ConcessioniFormCardTitle {
- INFORMAZIONI_DI_PROGETTO("Informazioni", "Informazioni di Progetto", 1, false),
- RELAZIONE_DI_SCAVO("Relazione di Scavo", "Relazione di Scavo", 2, false),
- IMMAGINI_RAPPRESENTATIVE("Immagini Rappresentative", "Immagini Rappresentative", 3, true),
- POSIZIONAMENTO_DELL_AREA_DI_INDAGINE("Posizionamento", "Posizionamento dell'Area di Indagine", 4, false),
- PIANTA_DI_FINE_SCAVO("Pianta di Fine Scavo", "Pianta di Fine Scavo", 5, true);
+ INFORMAZIONI_DI_PROGETTO("Informazioni", "Informazioni di Progetto", 1, false, null),
+ RELAZIONE_DI_SCAVO("Relazione di Scavo", "Relazione di Scavo", 2, false, null),
+ IMMAGINI_RAPPRESENTATIVE("Immagini Rappresentative", "Immagini Rappresentative", 3, true, 8),
+ POSIZIONAMENTO_DELL_AREA_DI_INDAGINE("Posizionamento", "Posizionamento dell'Area di Indagine", 4, false, null),
+ PIANTA_DI_FINE_SCAVO("Pianta di Fine Scavo", "Pianta di Fine Scavo", 5, true, null);
private String key;
private String title;
private Integer order;
private boolean internalRepeatibleForm;
+ private Integer maxFormRepeatability;
- private ConcessioniFormCardTitle(String key, String title, int order, boolean internalRepeatibleForm) {
+ /**
+ * Instantiates a new concessioni form card title.
+ *
+ * @param key the key
+ * @param title the title
+ * @param order the order
+ * @param internalRepeatibleForm the internal repeatible form
+ * @param maxFormRepeatability the max form repeatability
+ */
+ private ConcessioniFormCardTitle(String key, String title, int order, boolean internalRepeatibleForm, Integer maxFormRepeatability) {
this.key = key;
this.title = title;
this.order = order;
this.internalRepeatibleForm = internalRepeatibleForm;
+ this.maxFormRepeatability = maxFormRepeatability;
}
+ /**
+ * Gets the key.
+ *
+ * @return the key
+ */
public String getKey() {
return key;
}
+ /**
+ * Gets the title.
+ *
+ * @return the title
+ */
public String getTitle() {
return title;
}
+ /**
+ * Gets the order.
+ *
+ * @return the order
+ */
public Integer getOrder() {
return order;
}
+ /**
+ * Checks if is internal repeatible form.
+ *
+ * @return true, if is internal repeatible form
+ */
public boolean isInternalRepeatibleForm() {
return internalRepeatibleForm;
}
+
+ /**
+ * Gets the max form repeatability.
+ *
+ * @return the max form repeatability
+ */
+ public Integer getMaxFormRepeatability() {
+ return maxFormRepeatability;
+ }
}
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/GeoPortalDataEntryApp.java b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/GeoPortalDataEntryApp.java
index ba49642..7641881 100644
--- a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/GeoPortalDataEntryApp.java
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/GeoPortalDataEntryApp.java
@@ -7,6 +7,7 @@ import java.util.LinkedHashMap;
import java.util.List;
import java.util.TreeMap;
+import org.gcube.application.geoportalcommon.shared.GeoNaItemRef;
import org.gcube.portlets.user.geoportaldataentry.client.events.CreateNewProjectEvent;
import org.gcube.portlets.user.geoportaldataentry.client.events.CreateNewProjectEventHandler;
import org.gcube.portlets.user.geoportaldataentry.client.events.SaveGeonaDataFormsEvent;
@@ -30,6 +31,7 @@ import com.google.gwt.core.client.GWT;
import com.google.gwt.event.shared.HandlerManager;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.RootPanel;
@@ -98,7 +100,6 @@ public class GeoPortalDataEntryApp implements EntryPoint {
bindEvents();
mainPanel.addFormPanel(geoNaMainForm);
RootPanel.get(DIV_PORTLET_ID).add(mainPanel);
-
}
@@ -127,7 +128,7 @@ public class GeoPortalDataEntryApp implements EntryPoint {
for (GeoNaFormCardModel geonaForm : orderedCards) {
//TODO TO TEST
- //if(geonaForm.getFormCardTitle().equals(ConcessioniFormCardTitle.RELAZIONE_DI_SCAVO)){
+ //if(geonaForm.getFormCardTitle().equals(ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE)){
CreateMetadataForm baseForm = new CreateMetadataForm(Arrays.asList(geonaForm.getMetadataProfileBean()),appManagerBus);
geonaForm.setMetadataForm(baseForm);
@@ -263,6 +264,29 @@ public class GeoPortalDataEntryApp implements EntryPoint {
}catch (Exception e) {
// TODO: handle exception
}
+
+ final HorizontalPanel hpLoader = new HorizontalPanel();
+ final LoaderIcon lc = new LoaderIcon("Get link...");
+ hpLoader.add(lc);
+ modal.add(hpLoader);
+ GeoportalDataEntryServiceAsync.Util.getInstance().getLinksFor(result.getRecordId(), "concessione", new AsyncCallback() {
+
+ @Override
+ public void onFailure(Throwable caught) {
+ hpLoader.clear();
+
+ }
+
+ @Override
+ public void onSuccess(GeoNaItemRef result) {
+ hpLoader.clear();
+ String htmlLink = "";
+ HTML html = new HTML(htmlLink);
+ modal.add(html);
+ }
+ });
+
+
//geoNaMainForm.enableButtonSave(true);
//resetUI();
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/GeoportalDataEntryService.java b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/GeoportalDataEntryService.java
index 07e255f..1bc9224 100644
--- a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/GeoportalDataEntryService.java
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/GeoportalDataEntryService.java
@@ -2,6 +2,7 @@ package org.gcube.portlets.user.geoportaldataentry.client;
import java.util.List;
+import org.gcube.application.geoportalcommon.shared.GeoNaItemRef;
import org.gcube.portlets.user.geoportaldataentry.shared.CommitReport;
import org.gcube.portlets.user.geoportaldataentry.shared.GeoNaFormDataObject;
import org.gcube.portlets.user.geoportaldataentry.shared.GeonaISConfig;
@@ -18,4 +19,14 @@ public interface GeoportalDataEntryService extends RemoteService {
CommitReport saveGeonaDataForms(List listGeonaFormObjects) throws Exception;
GeonaISConfig getGeonaInitConfig();
+
+ /**
+ * Gets the links for.
+ *
+ * @param itemId the item id
+ * @param recordType the record type
+ * @return the links for
+ * @throws Exception the exception
+ */
+ GeoNaItemRef getLinksFor(Long itemId, String recordType) throws Exception;
}
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/GeoportalDataEntryServiceAsync.java b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/GeoportalDataEntryServiceAsync.java
index e4cba31..99830aa 100644
--- a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/GeoportalDataEntryServiceAsync.java
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/GeoportalDataEntryServiceAsync.java
@@ -2,6 +2,7 @@ package org.gcube.portlets.user.geoportaldataentry.client;
import java.util.List;
+import org.gcube.application.geoportalcommon.shared.GeoNaItemRef;
import org.gcube.portlets.user.geoportaldataentry.shared.CommitReport;
import org.gcube.portlets.user.geoportaldataentry.shared.GeoNaFormDataObject;
import org.gcube.portlets.user.geoportaldataentry.shared.GeonaISConfig;
@@ -39,4 +40,7 @@ public interface GeoportalDataEntryServiceAsync
void getGeonaInitConfig(AsyncCallback callback);
+
+
+ void getLinksFor(Long itemId, String recordType, AsyncCallback callback);
}
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/card/MetadataFormCard.java b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/card/MetadataFormCard.java
index ca9d64c..a8363b9 100644
--- a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/card/MetadataFormCard.java
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/card/MetadataFormCard.java
@@ -10,9 +10,11 @@ import org.gcube.portlets.widgets.mpformbuilder.shared.GenericDatasetBean;
import com.github.gwtbootstrap.client.ui.Button;
import com.github.gwtbootstrap.client.ui.Tab;
import com.github.gwtbootstrap.client.ui.constants.IconType;
+import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.shared.HandlerManager;
+import com.google.gwt.user.client.Window;
/**
@@ -44,6 +46,8 @@ public class MetadataFormCard {
private HandlerManager appManagerBus;
+ private Integer maxFormRepeatability;
+
/**
* The Class MetadataFormCardEventHandler.
*
@@ -108,8 +112,9 @@ public class MetadataFormCard {
this.geonaFormModel = geonaFormModel;
this.appManagerBus = appManagerBus;
this.repeatible = geonaFormModel.getFormCardTitle().isInternalRepeatibleForm();
+ this.maxFormRepeatability = geonaFormModel.getFormCardTitle().getMaxFormRepeatability()!=null?geonaFormModel.getFormCardTitle().getMaxFormRepeatability():Integer.MAX_VALUE;
this.buildCard(geonaFormModel.getMetadataForm());
- geonaFormModel.getMetadataForm().addListener(formCardEventHandler);
+ //geonaFormModel.getMetadataForm().addListener(formCardEventHandler);
}
/**
@@ -127,8 +132,14 @@ public class MetadataFormCard {
@Override
public void onClick(ClickEvent event) {
- CreateMetadataForm newForm = new CreateMetadataForm(createMetadataForm.getMetadataProfiles(),appManagerBus);
- addNewForm(newForm);
+
+ if(listForms.size() < maxFormRepeatability) {
+
+ CreateMetadataForm newForm = new CreateMetadataForm(createMetadataForm.getMetadataProfiles(),appManagerBus);
+ //newForm.addListener(formCardEventHandler);
+ addNewForm(newForm);
+ }else
+ Window.alert("Maximun number of data reached for "+geonaFormModel.getFormCardTitle().getTitle());
//newForm.getCreateButton().setFocus(true);
}
});
@@ -162,6 +173,8 @@ public class MetadataFormCard {
}
});
}
+
+ newForm.addListener(formCardEventHandler);
}
/**
@@ -190,8 +203,11 @@ public class MetadataFormCard {
*/
public boolean validateForm() {
for (CreateMetadataForm createMetadataForm : listForms) {
- if(!createMetadataForm.isFormDataValid())
+ boolean isFormDataValid = createMetadataForm.isFormDataValid();
+ GWT.log("Is form data valid: "+isFormDataValid);
+ if(!isFormDataValid) {
return false;
+ }
}
return true;
}
@@ -209,6 +225,7 @@ public class MetadataFormCard {
}
else {
tab.setIcon(IconType.MINUS_SIGN);
+ tab.asWidget().getElement().removeClassName("green-text");
tab.asWidget().getElement().addClassName("red-text");
}
@@ -226,6 +243,7 @@ public class MetadataFormCard {
}
else {
tab.setIcon(IconType.MINUS_SIGN);
+ tab.asWidget().getElement().removeClassName("red-text");
tab.asWidget().getElement().addClassName("red-text");
}
}
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
index e3784e7..ec01078 100644
--- a/src/main/java/org/gcube/portlets/user/geoportaldataentry/server/ConvertToServiceModel.java
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataentry/server/ConvertToServiceModel.java
@@ -140,13 +140,13 @@ public class ConvertToServiceModel {
}
List titolareCopyrightLst = mapFields.get("Titolare Copyright");
- if(titolareCopyrightLst!=null && titolareCopyrightLst.size()>0){
- concessione.setTitolareCopyright(titolareCopyrightLst.get(0));
+ if(titolareCopyrightLst!=null){
+ concessione.setTitolareCopyright(titolareCopyrightLst);
}
List titolareLicenzaLst = mapFields.get("Titolare Licenza");
- if(titolareLicenzaLst!=null && titolareLicenzaLst.size()>0){
- concessione.setTitolareLicenza(titolareLicenzaLst.get(0));
+ if(titolareLicenzaLst!=null){
+ concessione.setTitolareLicenza(titolareLicenzaLst);
}
List titolareDatiLst = mapFields.get("Titolare dei dati");
@@ -256,6 +256,16 @@ public class ConvertToServiceModel {
//TODO
}
+ List politicaDiAccessoLst = mapFields.get("Politica di accesso");
+ if(politicaDiAccessoLst!=null && politicaDiAccessoLst.size()>0) {
+ try {
+ AccessPolicy ap = AccessPolicy.valueOf(politicaDiAccessoLst.get(0));
+ uplaodedImage.setPolicy(ap);
+ }catch (Exception e) {
+ LOG.warn("I cannot cast "+politicaDiAccessoLst.get(0) +" to "+AccessPolicy.values(),e);
+ }
+ }
+
List licenzaIdList = mapFields.get("ID Licenza");
if(licenzaIdList!=null && licenzaIdList.size()>0) {
uplaodedImage.setLicenseID(licenzaIdList.get(0));
@@ -312,6 +322,11 @@ public class ConvertToServiceModel {
layerConcessione.setScalaAcquisizione(scalaAcquisizioneLst.get(0));
}
+ List licenzaIdList = mapFields.get("ID Licenza");
+ if(licenzaIdList!=null && licenzaIdList.size()>0) {
+ layerConcessione.setLicenseID(licenzaIdList.get(0));
+ }
+
List autoreLst = mapFields.get("Autore");
if(autoreLst!=null) {
layerConcessione.setAuthors(autoreLst);
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataentry/server/GeoportalDataEntryServiceImpl.java b/src/main/java/org/gcube/portlets/user/geoportaldataentry/server/GeoportalDataEntryServiceImpl.java
index 2fe26b8..8af50b6 100644
--- a/src/main/java/org/gcube/portlets/user/geoportaldataentry/server/GeoportalDataEntryServiceImpl.java
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataentry/server/GeoportalDataEntryServiceImpl.java
@@ -17,6 +17,8 @@ import org.gcube.application.geoportal.model.content.WorkspaceContent;
import org.gcube.application.geoportal.model.fault.PublishException;
import org.gcube.application.geoportal.model.fault.ValidationException;
import org.gcube.application.geoportal.utils.Serialization;
+import org.gcube.application.geoportalcommon.GeoportalCommon;
+import org.gcube.application.geoportalcommon.shared.GeoNaItemRef;
import org.gcube.portlets.user.geoportaldataentry.client.ConcessioniFormCardTitle;
import org.gcube.portlets.user.geoportaldataentry.client.GeoportalDataEntryService;
import org.gcube.portlets.user.geoportaldataentry.shared.CommitReport;
@@ -33,19 +35,29 @@ import com.google.gwt.user.server.rpc.RemoteServiceServlet;
/**
* The server side implementation of the RPC service.
+ *
+ * @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
+ *
+ * Dec 1, 2020
*/
@SuppressWarnings("serial")
public class GeoportalDataEntryServiceImpl extends RemoteServiceServlet implements GeoportalDataEntryService {
-
+
public static final String GEONA_GENERIC_RESOURCE_SECONDARY_TYPE = "GEONA_GENERIC_RESOURCE_SECONDARY_TYPE";
private static final Logger LOG = LoggerFactory.getLogger(GeoportalDataEntryServiceImpl.class);
+ /**
+ * Save geona data forms.
+ *
+ * @param listGeonaFormObjects the list geona form objects
+ * @return the commit report
+ * @throws Exception the exception
+ */
@Override
public CommitReport saveGeonaDataForms(List listGeonaFormObjects) throws Exception {
LOG.info("saveGeonaDataForms called");
-
- HashMap> toMap =
- new HashMap>();
+
+ HashMap> toMap = new HashMap>();
for (GeoNaFormDataObject geoNaFormDataObject : listGeonaFormObjects) {
@@ -59,150 +71,158 @@ public class GeoportalDataEntryServiceImpl extends RemoteServiceServlet implemen
listForm.add(geoNaFormDataObject);
toMap.put(theType, listForm);
}
- if(LOG.isDebugEnabled())
+ if (LOG.isDebugEnabled())
prettyPrintClientDataEntryMap(toMap);
-
- LOG.debug("Built map with form data: "+toMap);
-
+
+ LOG.debug("Built map with form data: " + toMap);
+
GCubeUser user = SessionUtil.getCurrentUser(this.getThreadLocalRequest());
-
+
ConcessioneManager manager;
+
try {
-
- //Saving Data
- //Informazioni di Progetto
+
+ // Saving Data
+ // Informazioni di Progetto
List list = toMap.get(ConcessioniFormCardTitle.INFORMAZIONI_DI_PROGETTO);
- if(list==null || list.isEmpty() || list.get(0)==null || list.get(0).getListGDB()==null)
- throw new Exception("Error: no data found for "+ConcessioniFormCardTitle.INFORMAZIONI_DI_PROGETTO.getTitle());
-
+ if (list == null || list.isEmpty() || list.get(0) == null || list.get(0).getListGDB() == null)
+ throw new Exception(
+ "Error: no data found for " + ConcessioniFormCardTitle.INFORMAZIONI_DI_PROGETTO.getTitle());
+
List listGDB = list.get(0).getListGDB();
GenericDatasetBean idp = listGDB.get(0);
LOG.debug("\n\n");
- LOG.debug(ConcessioniFormCardTitle.INFORMAZIONI_DI_PROGETTO+" building with client obj: "+idp);
+ LOG.debug(ConcessioniFormCardTitle.INFORMAZIONI_DI_PROGETTO + " building with client obj: " + idp);
Concessione concessione = ConvertToServiceModel.toConcessione(idp, user);
- LOG.debug("Built "+ConcessioniFormCardTitle.INFORMAZIONI_DI_PROGETTO+" as server obj: "+concessione);
-
- //saving into back-end
+ LOG.debug("Built " + ConcessioniFormCardTitle.INFORMAZIONI_DI_PROGETTO + " as server obj: " + concessione);
+
+ // saving into back-end
manager = ManagerFactory.registerNew(concessione);
-
- //RELAZIONE_DI_SCAVO
+
+ // RELAZIONE_DI_SCAVO
list = toMap.get(ConcessioniFormCardTitle.RELAZIONE_DI_SCAVO);
- if(list==null || list.isEmpty() || list.get(0)==null || list.get(0).getListGDB()==null)
- throw new Exception("Error: no data found for "+ConcessioniFormCardTitle.RELAZIONE_DI_SCAVO.getTitle());
-
+ if (list == null || list.isEmpty() || list.get(0) == null || list.get(0).getListGDB() == null)
+ throw new Exception(
+ "Error: no data found for " + ConcessioniFormCardTitle.RELAZIONE_DI_SCAVO.getTitle());
+
listGDB = list.get(0).getListGDB();
GenericDatasetBean rds = listGDB.get(0);
LOG.debug("\n\n");
- LOG.debug(ConcessioniFormCardTitle.RELAZIONE_DI_SCAVO+" building with client obj: "+rds);
+ LOG.debug(ConcessioniFormCardTitle.RELAZIONE_DI_SCAVO + " building with client obj: " + rds);
RelazioneScavo relazioneDiScavo = ConvertToServiceModel.toRelazioneScavo(rds);
- LOG.debug("Built "+ConcessioniFormCardTitle.RELAZIONE_DI_SCAVO+" as server obj: "+relazioneDiScavo);
- //Should be only one
+ LOG.debug("Built " + ConcessioniFormCardTitle.RELAZIONE_DI_SCAVO + " as server obj: " + relazioneDiScavo);
+ // Should be only one
for (FileUploaded fileUploaded : rds.getFilesUploaded()) {
FileInputStream fis = new FileInputStream(fileUploaded.getTempSystemPath());
InputStreamDescriptor isd = new InputStreamDescriptor(fis, fileUploaded.getFileName());
- //saving into back-end
+ // saving into back-end
manager.setRelazioneScavo(relazioneDiScavo, isd);
}
-
-
- //IMMAGINI_RAPPRESENTATIVE
+
+ // IMMAGINI_RAPPRESENTATIVE
list = toMap.get(ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE);
- if(list==null || list.isEmpty() || list.get(0)==null || list.get(0).getListGDB()==null)
- throw new Exception("Error: no data found for "+ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE.getTitle());
-
+ if (list == null || list.isEmpty() || list.get(0) == null || list.get(0).getListGDB() == null)
+ throw new Exception(
+ "Error: no data found for " + ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE.getTitle());
+
List imgRaprsLst = list.get(0).getListGDB();
for (GenericDatasetBean imgRapr : imgRaprsLst) {
LOG.debug("\n\n");
- LOG.debug(ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE+" building with client obj: "+imgRapr);
+ LOG.debug(ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE + " building with client obj: " + imgRapr);
UploadedImage img = ConvertToServiceModel.toImmaginiRappresentative(imgRapr);
- LOG.debug("Built "+ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE+" as server obj: "+img);
+ LOG.debug("Built " + ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE + " as server obj: " + img);
for (FileUploaded fileUploaded : imgRapr.getFilesUploaded()) {
- LOG.debug("Adding uploaded file: "+fileUploaded.getFileName() + " to "+img);
+ LOG.debug("Adding uploaded file: " + fileUploaded.getFileName() + " to " + img);
FileInputStream fis = new FileInputStream(fileUploaded.getTempSystemPath());
InputStreamDescriptor isd = new InputStreamDescriptor(fis, fileUploaded.getFileName());
- //saving into back-end
- manager.addImmagineRappresentativa(img,isd);
+ // saving into back-end
+ manager.addImmagineRappresentativa(img, isd);
}
}
-
- //POSIZIONAMENTO_DELL_AREA_DI_INDAGINE
+
+ // POSIZIONAMENTO_DELL_AREA_DI_INDAGINE
list = toMap.get(ConcessioniFormCardTitle.POSIZIONAMENTO_DELL_AREA_DI_INDAGINE);
- if(list==null || list.isEmpty() || list.get(0)==null || list.get(0).getListGDB()==null)
- throw new Exception("Error: no data found for "+ConcessioniFormCardTitle.POSIZIONAMENTO_DELL_AREA_DI_INDAGINE.getTitle());
-
+ if (list == null || list.isEmpty() || list.get(0) == null || list.get(0).getListGDB() == null)
+ throw new Exception("Error: no data found for "
+ + ConcessioniFormCardTitle.POSIZIONAMENTO_DELL_AREA_DI_INDAGINE.getTitle());
+
listGDB = list.get(0).getListGDB();
GenericDatasetBean pad = listGDB.get(0);
LOG.debug("\n\n");
- LOG.debug(ConcessioniFormCardTitle.POSIZIONAMENTO_DELL_AREA_DI_INDAGINE+" building with client obj: "+pad);
+ LOG.debug(ConcessioniFormCardTitle.POSIZIONAMENTO_DELL_AREA_DI_INDAGINE + " building with client obj: "
+ + pad);
LayerConcessione layerPad = ConvertToServiceModel.toLayerConcessione(pad);
- LOG.debug("Built "+ConcessioniFormCardTitle.POSIZIONAMENTO_DELL_AREA_DI_INDAGINE+" as server obj: "+layerPad);
+ LOG.debug("Built " + ConcessioniFormCardTitle.POSIZIONAMENTO_DELL_AREA_DI_INDAGINE + " as server obj: "
+ + layerPad);
for (FileUploaded fileUploaded : pad.getFilesUploaded()) {
- LOG.debug("Adding uploaded file: "+fileUploaded.getFileName() + " to "+layerPad);
+ LOG.debug("Adding uploaded file: " + fileUploaded.getFileName() + " to " + layerPad);
FileInputStream fis = new FileInputStream(fileUploaded.getTempSystemPath());
InputStreamDescriptor isd = new InputStreamDescriptor(fis, fileUploaded.getFileName());
- //saving into back-end
+ // saving into back-end
manager.setPosizionamento(layerPad, isd);
}
-
- //PIANTA_DI_FINE_SCAVO
+
+ // PIANTA_DI_FINE_SCAVO
list = toMap.get(ConcessioniFormCardTitle.PIANTA_DI_FINE_SCAVO);
- if(list==null || list.isEmpty() || list.get(0)==null || list.get(0).getListGDB()==null)
- throw new Exception("Error: no data found for "+ConcessioniFormCardTitle.PIANTA_DI_FINE_SCAVO.getTitle());
-
+ if (list == null || list.isEmpty() || list.get(0) == null || list.get(0).getListGDB() == null)
+ throw new Exception(
+ "Error: no data found for " + ConcessioniFormCardTitle.PIANTA_DI_FINE_SCAVO.getTitle());
+
listGDB = list.get(0).getListGDB();
GenericDatasetBean pfs = listGDB.get(0);
LOG.debug("\n\n");
- LOG.debug(ConcessioniFormCardTitle.PIANTA_DI_FINE_SCAVO+" building with client obj: "+pfs);
+ LOG.debug(ConcessioniFormCardTitle.PIANTA_DI_FINE_SCAVO + " building with client obj: " + pfs);
LayerConcessione layerPfs = ConvertToServiceModel.toLayerConcessione(pfs);
- LOG.debug("Built "+ConcessioniFormCardTitle.PIANTA_DI_FINE_SCAVO+" as server obj: "+layerPfs);
+ LOG.debug("Built " + ConcessioniFormCardTitle.PIANTA_DI_FINE_SCAVO + " as server obj: " + layerPfs);
for (FileUploaded fileUploaded : pfs.getFilesUploaded()) {
- LOG.debug("Adding uploaded file: "+fileUploaded.getFileName() + " to "+layerPfs);
+ LOG.debug("Adding uploaded file: " + fileUploaded.getFileName() + " to " + layerPfs);
FileInputStream fis = new FileInputStream(fileUploaded.getTempSystemPath());
InputStreamDescriptor isd = new InputStreamDescriptor(fis, fileUploaded.getFileName());
- //saving into back-end
+ // saving into back-end
manager.addPiantaFineScavo(layerPfs, isd);
}
- }catch (Exception e) {
- LOG.error("Error on converting form data: ",e);
- throw new Exception("Error occurred on saving data, try again or contact the support. Error: "+e.getMessage());
+ } catch (Exception e) {
+ LOG.error("Error on converting form data: ", e);
+ throw new Exception(
+ "Error occurred on saving data, try again or contact the support. Error: " + e.getMessage());
}
try {
-
- //If true -> data are published into the SDI
- Boolean publish=true;
- Concessione registered=manager.commit(publish);
- LOG.info("Registered: "+registered);
+
+ // If true -> data are published into the SDI
+ Boolean publish = true;
+ Concessione registered = manager.commit(publish);
+ LOG.info("Registered: " + registered);
String link = null;
try {
- link = ((WorkspaceContent)registered.getRelazioneScavo().getActualContent().get(0)).getLink();
- }catch (Exception e) {
- LOG.warn("Not able to check public link ",e);
+ link = ((WorkspaceContent) registered.getRelazioneScavo().getActualContent().get(0)).getLink();
+ } catch (Exception e) {
+ LOG.warn("Not able to check public link ", e);
}
- //String link = "toTest";
+ // String link = "toTest";
CommitReport cRep = new CommitReport();
cRep.setRecordId(registered.getId());
- if(link!=null) {
+ if (link != null) {
cRep.setState(STATE.OK);
cRep.setMsg("Project saved successfully");
- }
- else {
+ } else {
cRep.setState(STATE.WARN);
cRep.setMsg("Project saved with errors");
}
-
+
return cRep;
- }catch (ValidationException e1){
- LOG.error("Error on validating data: ",e1);
- throw new Exception("Error on validating data: "+Serialization.prettyPrint(e1.getReport()));
- }catch (PublishException e2) {
- LOG.error("Error on publishing data: ",e2);
- throw new Exception("Error on publishing data: "+e2.getMessage());
- }catch (Exception e) {
- LOG.error("Error on commiting data: ",e);
- throw new Exception("Error occurred on saving data, try again or contact the support. Error: "+e.getMessage());
- }finally {
+ } catch (ValidationException e1) {
+ LOG.error("Error on validating data: ", e1);
+ throw new Exception("Error on validating data: " + Serialization.prettyPrint(e1.getReport()));
+ } catch (PublishException e2) {
+ LOG.error("Error on publishing data: ", e2);
+ throw new Exception("Error on publishing data: " + e2.getMessage());
+ } catch (Exception e) {
+ LOG.error("Error on commiting data: ", e);
+ throw new Exception(
+ "Error occurred on saving data, try again or contact the support. Error: " + e.getMessage());
+ } finally {
// if(manager!=null) {
// try {
// manager.shutdown();
@@ -212,12 +232,18 @@ public class GeoportalDataEntryServiceImpl extends RemoteServiceServlet implemen
//
// }
}
+
}
-
+
+ /**
+ * Gets the geona init config.
+ *
+ * @return the geona init config
+ */
@Override
public GeonaISConfig getGeonaInitConfig() {
LOG.info("getConfig called");
-
+
String scope = SessionUtil.getCurrentContext(this.getThreadLocalRequest(), false);
String theSecondaryType;
try {
@@ -229,31 +255,54 @@ public class GeoportalDataEntryServiceImpl extends RemoteServiceServlet implemen
// LOG.warn("\n\n\nHARD-CABLING THE SCOPE, PLEASE REMOTE IT!!!!\n\n\n");
// scope = "/gcube/devsec/devVRE";
-
+
GeonaISConfig configs = new GeonaISConfig(theSecondaryType, scope);
- LOG.info("returning config: "+configs);
+ LOG.info("returning config: " + configs);
return configs;
}
-
-
-
+
+ /**
+ * Gets the links for.
+ *
+ * @param itemId the item id
+ * @param recordType the record type
+ * @return the links for
+ * @throws Exception the exception
+ */
+ @Override
+ public GeoNaItemRef getLinksFor(Long itemId, String recordType) throws Exception {
+ LOG.info("getLinksFor called");
+
+ SessionUtil.getCurrentContext(this.getThreadLocalRequest(), true);
+ GeoportalCommon gc = new GeoportalCommon();
+ GeoNaItemRef item = new GeoNaItemRef(itemId, recordType);
+ item = gc.getPublicLinksFor(item);
+ LOG.info("Returning: " + item);
+ return item;
+ }
+
+ /**
+ * Pretty print client data entry map.
+ *
+ * @param toMap the to map
+ */
private void prettyPrintClientDataEntryMap(HashMap> toMap) {
-
+
for (ConcessioniFormCardTitle theType : toMap.keySet()) {
LOG.debug("\n\n");
LOG.debug(theType.toString());
List list = toMap.get(theType);
for (GeoNaFormDataObject geoNaFormDataObject : list) {
- LOG.debug("\t has "+geoNaFormDataObject.getListGDB().size() +" data bean/s");
+ LOG.debug("\t has " + geoNaFormDataObject.getListGDB().size() + " data bean/s");
int i = 0;
for (GenericDatasetBean gbd : geoNaFormDataObject.getListGDB()) {
- LOG.debug("\t "+ ++i +") "+GenericDatasetBean.class.getSimpleName()+" entries:");
+ LOG.debug("\t " + ++i + ") " + GenericDatasetBean.class.getSimpleName() + " entries:");
Map> map = gbd.getFormDataEntryFields();
for (String keyEntry : map.keySet()) {
- LOG.debug("\t "+keyEntry + ": "+map.get(keyEntry));
+ LOG.debug("\t " + keyEntry + ": " + map.get(keyEntry));
}
for (FileUploaded fup : gbd.getFilesUploaded()) {
- LOG.debug("\t "+fup);
+ LOG.debug("\t " + fup);
}
}
}
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataentry/shared/CommitReport.java b/src/main/java/org/gcube/portlets/user/geoportaldataentry/shared/CommitReport.java
index 63afb7f..38ecc7d 100644
--- a/src/main/java/org/gcube/portlets/user/geoportaldataentry/shared/CommitReport.java
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataentry/shared/CommitReport.java
@@ -8,53 +8,54 @@ import java.io.Serializable;
*
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
*
- * Oct 21, 2020
+ * Nov 30, 2020
*/
-public class CommitReport implements Serializable{
-
-
+public class CommitReport implements Serializable {
+
/**
*
*/
private static final long serialVersionUID = -9519707669761939L;
-
/**
* The Enum STATE.
*
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
*
- * Oct 21, 2020
+ * Oct 21, 2020
*/
- public enum STATE{ERROR, WARN, OK, UNKNOWN}
-
+ public enum STATE {
+ ERROR, WARN, OK, UNKNOWN
+ }
+
public STATE state = STATE.UNKNOWN;
public long recordId;
public String msg;
+ public String report;
/**
* Instantiates a new commit report.
*/
public CommitReport() {
-
+
}
-
+
/**
* Instantiates a new commit report.
*
- * @param state the state
+ * @param state the state
* @param recordId the record id
- * @param msg the msg
+ * @param msg the msg
+ * @param report the report
*/
- public CommitReport(STATE state, long recordId, String msg) {
+ public CommitReport(STATE state, long recordId, String msg, String report) {
super();
this.state = state;
this.recordId = recordId;
this.msg = msg;
+ this.report = report;
}
-
-
/**
* Gets the state.
*
@@ -82,6 +83,24 @@ public class CommitReport implements Serializable{
return recordId;
}
+ /**
+ * Gets the report.
+ *
+ * @return the report
+ */
+ public String getReport() {
+ return report;
+ }
+
+ /**
+ * Sets the report.
+ *
+ * @param report the new report
+ */
+ public void setReport(String report) {
+ this.report = report;
+ }
+
/**
* Sets the record id.
*
@@ -109,10 +128,10 @@ public class CommitReport implements Serializable{
this.msg = msg;
}
-
-
- /* (non-Javadoc)
- * @see java.lang.Object#toString()
+ /**
+ * To string.
+ *
+ * @return the string
*/
@Override
public String toString() {
@@ -123,8 +142,11 @@ public class CommitReport implements Serializable{
builder.append(recordId);
builder.append(", msg=");
builder.append(msg);
+ builder.append(", report=");
+ builder.append(report);
builder.append("]");
return builder.toString();
}
+
}
diff --git a/src/main/resources/org/gcube/portlets/user/geoportaldataentry/GeoPortalDataEntryApp.gwt.xml b/src/main/resources/org/gcube/portlets/user/geoportaldataentry/GeoPortalDataEntryApp.gwt.xml
index 62c8534..8d4d8ca 100644
--- a/src/main/resources/org/gcube/portlets/user/geoportaldataentry/GeoPortalDataEntryApp.gwt.xml
+++ b/src/main/resources/org/gcube/portlets/user/geoportaldataentry/GeoPortalDataEntryApp.gwt.xml
@@ -1,7 +1,21 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+