Managed min/max form repeatability

This commit is contained in:
Francesco Mangiacrapa 2022-03-04 16:44:51 +01:00
parent 3b8883b1fa
commit 11f751e96c
10 changed files with 251 additions and 141 deletions

15
pom.xml
View File

@ -68,6 +68,14 @@
<scope>provided</scope>
</dependency>
<!-- ASM required for GWT 2.9-->
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm</artifactId>
<scope>provided</scope>
<version>7.1</version>
</dependency>
<!-- needed to compile with gwt > 2.7 -->
<dependency>
<groupId>xml-apis</groupId>
@ -87,13 +95,6 @@
<version>${gwtVersion}</version>
<scope>provided</scope>
</dependency>
<!-- REMOVE THIS -->
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm</artifactId>
<scope>provided</scope>
<version>7.1</version>
</dependency>
<dependency>
<groupId>com.google.gwt</groupId>
<artifactId>gwt-servlet</artifactId>

View File

@ -229,9 +229,6 @@ public class GeoPortalDataEntryApp implements EntryPoint {
// TWICE BECAUSE THE MAIN PANEL COULD BE NULL BEFORE
setListDocumentConfig(listDocumentConfigs);
// if (dataEntryProjectCreated)
// mainTabPanel.setLoaderVisible("Loading...", true);
geoNaMainForm = new GeonaDataEntryMainForm(appManagerBus);
mainTabPanel.addFormPanel(geoNaMainForm);
@ -311,12 +308,15 @@ public class GeoPortalDataEntryApp implements EntryPoint {
});
}
private void setListDocumentConfig(List<DocumentConfigDV> listDocumentConfigs) {
private synchronized void setListDocumentConfig(List<DocumentConfigDV> listDocumentConfigs) {
GWT.log("Setting setListDocumentConfig: " + listDocumentConfigs);
if (listDocumentConfigs != null) {
if (mainTabPanel != null) {
mainTabPanel.setListDocumentConfig(listDocumentConfigs);
//Just to be sure that its set once
if(mainTabPanel.getListDocumentConfig()==null) {
mainTabPanel.setListDocumentConfig(listDocumentConfigs);
}
}
}
}
@ -364,7 +364,7 @@ public class GeoPortalDataEntryApp implements EntryPoint {
numberOfCards = 0;
expectedCards = config.getGcubeProfiles().size();
GWT.log("expectedCards are: " + expectedCards);
TreeMap<Integer, GeoNaFormCardModel> treemapOrderedGeoNaProfiles = new TreeMap<Integer, GeoNaFormCardModel>();
TreeMap<Integer, GeoNaFormCardModel> treemapOrderedGNAProfiles = new TreeMap<Integer, GeoNaFormCardModel>();
for (int i = 0; i < expectedCards; i++) {
GcubeProfileDV gcubeProfiles = config.getGcubeProfiles().get(i);
@ -394,19 +394,19 @@ public class GeoPortalDataEntryApp implements EntryPoint {
maxOccurs = maxOccurs <= 0 ? Integer.MAX_VALUE : maxOccurs;
// TODO MUST BE MANAGED MIN_OCCURS
ConcessioniFormCardTitle cct = new ConcessioniFormCardTitle(
ProjectFormCard cct = new ProjectFormCard(
gcubeProfiles.getSectionName(), gcubeProfiles.getSectionTitle(), order,
maxOccurs > 1, minOccurs, maxOccurs);
GeoNaFormCardModel geonaForm = new GeoNaFormCardModel(metaDataProfileBean, null, cct,
gcubeProfiles);
treemapOrderedGeoNaProfiles.put(order, geonaForm);
treemapOrderedGNAProfiles.put(order, geonaForm);
}
if (getNumberOfCards() == expectedCards) {
mainTabPanel.setLoaderVisible("Loading...", false);
// ordered values
Collection<GeoNaFormCardModel> gnaCardsModels = treemapOrderedGeoNaProfiles.values();
Collection<GeoNaFormCardModel> gnaCardsModels = treemapOrderedGNAProfiles.values();
GWT.log("TreMap values: " + gnaCardsModels);
orderedCards.addAll(gnaCardsModels);
mapGcubeProfilePerItemType.put(dcDV.getItemType(),
@ -434,15 +434,15 @@ public class GeoPortalDataEntryApp implements EntryPoint {
for (GeoNaFormCardModel geonaForm : orderedCards) {
// TODO TO TEST
// if(geonaForm.getFormCardTitle().equals(ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE)){
// if(geonaForm.getFormCardTitle().equals(ProjectFormCard.IMMAGINI_RAPPRESENTATIVE)){
GWT.log("Adding card: " + geonaForm.getFormCardTitle());
GWT.log("Adding card: " + geonaForm.getFormCard());
CreateMetadataForm baseForm = new CreateMetadataForm(Arrays.asList(geonaForm.getMetadataProfileBean()),
appManagerBus, operation);
geonaForm.setMetadataForm(baseForm);
String key = geonaForm.getMetadataProfileBean().getType();
if (geonaForm.getFormCardTitle() != null) {
key = geonaForm.getFormCardTitle().getTitle();
if (geonaForm.getFormCard() != null) {
key = geonaForm.getFormCard().getTitle();
}
geoNaMainForm.addForm(key, geonaForm);
mapForms.put(key, geonaForm);
@ -603,7 +603,7 @@ public class GeoPortalDataEntryApp implements EntryPoint {
// means the form was not submitted
if (savedMap.size() == 0) {
DialogConfirm confirm = new DialogConfirm(null, "Creating a New Project...",
DialogConfirm confirm = new DialogConfirm(null, "Creating New Project...",
"The current project (is not saved) and will be lost. Confirm?");
confirm.getYesButton().addClickHandler(new ClickHandler() {
@ -625,7 +625,7 @@ public class GeoPortalDataEntryApp implements EntryPoint {
// buildNewCards(orderedCards, OPERATION.NEW);
} else {
DialogConfirm confirm = new DialogConfirm(null, "Creating a New Project...",
DialogConfirm confirm = new DialogConfirm(null, "Creating New Project...",
"The data entry form/s will be cleaned. Confirm?");
confirm.getYesButton().addClickHandler(new ClickHandler() {

View File

@ -1,37 +1,38 @@
package org.gcube.portlets.user.geoportaldataentry.client;
/**
* The Enum ConcessioniFormCardTitle.
* The Class ProjectFormCard.
*
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
*
* Nov 30, 2020
* Mar 4, 2022
*/
public class ConcessioniFormCardTitle {
public class ProjectFormCard {
private String key;
private String title;
private String title; //is the profile title (read from geoportal config)
private Integer order;
private boolean internalRepeatibleForm;
private Integer maxFormRepeatability;
private Integer minFormRepeatability;
/**
* Instantiates a new concessioni form card title.
* Instantiates a new project form card.
*
* @param key the key
* @param title the title
* @param order the order
* @param internalRepeatibleForm the internal repeatible form
* @param minFormRepeatability the min form repeatability
* @param maxFormRepeatability the max form repeatability
*/
public ConcessioniFormCardTitle(String key, String title, int order, boolean internalRepeatibleForm,
public ProjectFormCard(String key, String title, int order, boolean internalRepeatibleForm,
Integer minFormRepeatability, Integer maxFormRepeatability) {
this.key = key;
this.title = title;
this.order = order;
this.minFormRepeatability = minFormRepeatability;
this.internalRepeatibleForm = internalRepeatibleForm;
this.minFormRepeatability = minFormRepeatability;
this.maxFormRepeatability = maxFormRepeatability;
}
@ -80,10 +81,20 @@ public class ConcessioniFormCardTitle {
return maxFormRepeatability;
}
/**
* Gets the min form repeatability.
*
* @return the min form repeatability
*/
public Integer getMinFormRepeatability() {
return minFormRepeatability;
}
/**
* Sets the min form repeatability.
*
* @param minFormRepeatability the new min form repeatability
*/
public void setMinFormRepeatability(Integer minFormRepeatability) {
this.minFormRepeatability = minFormRepeatability;
}

View File

@ -34,6 +34,8 @@ import com.github.gwtbootstrap.client.ui.constants.AlertType;
import com.github.gwtbootstrap.client.ui.constants.ButtonType;
import com.github.gwtbootstrap.client.ui.constants.IconSize;
import com.google.gwt.core.client.GWT;
import com.google.gwt.core.client.Scheduler;
import com.google.gwt.core.client.Scheduler.ScheduledCommand;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.KeyPressEvent;
@ -488,6 +490,7 @@ public class GeonaMainTabPanel extends Composite {
}
public void setListDocumentConfig(List<DocumentConfigDV> listDocumentConfig) {
GWT.log("Setting listDocumentConfig: "+listDocumentConfig);
this.listDocumentConfig = listDocumentConfig;
ddCreateNewProject.clear();
for (DocumentConfigDV documentConfigDV : listDocumentConfig) {
@ -511,11 +514,30 @@ public class GeonaMainTabPanel extends Composite {
ddCreateNewProject.add(link);
}
//IF one type of document is available, fire CreateNewProjectEvent(documentConfigDV));
if(listDocumentConfig.size()==1) {
Scheduler.get().scheduleDeferred(new ScheduledCommand() {
@Override
public void execute() {
GWT.log("One Config loaded. Firing CreateNewProjectEvent");
appManagerBus.fireEvent(new CreateNewProjectEvent(listDocumentConfig.get(0)));
}
});
}
}
public void setPageHeader(DocumentConfigDV dcDV) {
this.pageHeaderDataEntry.setText("");
this.pageHeaderDataEntry.setSubtext("New: "+dcDV.getItemType());
}
public List<DocumentConfigDV> getListDocumentConfig() {
return listDocumentConfig;
}
}

View File

@ -1,7 +1,7 @@
package org.gcube.portlets.user.geoportaldataentry.client.ui.card;
import org.gcube.application.geoportalcommon.shared.geoportalconfig.GcubeProfileDV;
import org.gcube.portlets.user.geoportaldataentry.client.ConcessioniFormCardTitle;
import org.gcube.portlets.user.geoportaldataentry.client.ProjectFormCard;
import org.gcube.portlets.widgets.mpformbuilder.client.form.generic.CreateMetadataForm;
import org.gcube.portlets.widgets.mpformbuilder.shared.metadata.MetaDataProfileBean;
@ -9,7 +9,7 @@ public class GeoNaFormCardModel {
private MetaDataProfileBean metadataProfileBean;
private CreateMetadataForm metadataForm;
private ConcessioniFormCardTitle formCardTitle; // matching with metadata profile type
private ProjectFormCard formCard; // matching with metadata profile
private GcubeProfileDV gcubeProfile;
public GeoNaFormCardModel() {
@ -17,11 +17,11 @@ public class GeoNaFormCardModel {
}
public GeoNaFormCardModel(MetaDataProfileBean metadataProfileBean, CreateMetadataForm metadataForm,
ConcessioniFormCardTitle formCardTitle, GcubeProfileDV gcubeProfile) {
ProjectFormCard formCard, GcubeProfileDV gcubeProfile) {
super();
this.metadataProfileBean = metadataProfileBean;
this.metadataForm = metadataForm;
this.formCardTitle = formCardTitle;
this.formCard = formCard;
this.gcubeProfile = gcubeProfile;
}
@ -41,12 +41,12 @@ public class GeoNaFormCardModel {
this.metadataForm = metadataForm;
}
public ConcessioniFormCardTitle getFormCardTitle() {
return formCardTitle;
public ProjectFormCard getFormCard() {
return formCard;
}
public void setFormCardTitle(ConcessioniFormCardTitle formCardTitle) {
this.formCardTitle = formCardTitle;
public void setFormCard(ProjectFormCard formCard) {
this.formCard = formCard;
}
public GcubeProfileDV getGcubeProfile() {
@ -64,8 +64,8 @@ public class GeoNaFormCardModel {
builder.append(metadataProfileBean);
builder.append(", metadataForm=");
builder.append(metadataForm);
builder.append(", formCardTitle=");
builder.append(formCardTitle);
builder.append(", formCard=");
builder.append(formCard);
builder.append(", gcubeProfile=");
builder.append(gcubeProfile);
builder.append("]");

View File

@ -3,63 +3,70 @@ package org.gcube.portlets.user.geoportaldataentry.client.ui.card;
import java.util.ArrayList;
import java.util.List;
import org.gcube.portlets.user.geoportaldataentry.client.ProjectFormCard;
import org.gcube.portlets.user.geoportaldataentry.client.resource.Images;
import org.gcube.portlets.user.geoportaldataentry.client.ui.utils.AlertClosable;
import org.gcube.portlets.user.geoportaldataentry.client.ui.utils.DialogInform;
import org.gcube.portlets.widgets.mpformbuilder.client.form.generic.CreateMetadataForm;
import org.gcube.portlets.widgets.mpformbuilder.client.form.generic.GenericFormEvents.GenericFormEventsListener;
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.AlertType;
import com.github.gwtbootstrap.client.ui.constants.IconType;
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.Style.Unit;
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;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.Image;
/**
* The Class MetadataFormCard.
*
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
*
* Oct 12, 2020
* Oct 12, 2020
*/
public class MetadataFormCard {
/** The heading. */
private String heading;
/** The tab. */
private Tab tab;
/** The repeatible. */
private boolean repeatible;
/** The list forms. */
private List<CreateMetadataForm> listForms = new ArrayList<CreateMetadataForm>();
/** The form card event handler. */
private MetadataFormCardEventHandler formCardEventHandler = new MetadataFormCardEventHandler();
/** The geona form model. */
private GeoNaFormCardModel geonaFormModel;
private HandlerManager appManagerBus;
private Integer maxFormRepeatability;
private FlowPanel tabContainer = new FlowPanel();
private int minFormRepeatability;
/**
* The Class MetadataFormCardEventHandler.
*
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
*
* Oct 12, 2020
* Oct 12, 2020
*/
private class MetadataFormCardEventHandler implements GenericFormEventsListener{
private class MetadataFormCardEventHandler implements GenericFormEventsListener {
/**
* On form data valid.
*
@ -68,7 +75,7 @@ public class MetadataFormCard {
@Override
public void onFormDataValid(GenericDatasetBean genericDatasetBean) {
setTabStatus();
}
/**
@ -77,7 +84,7 @@ public class MetadataFormCard {
@Override
public void onFormDataEdit() {
resetTabStatus();
}
/**
@ -86,38 +93,58 @@ public class MetadataFormCard {
@Override
public void onFormAborted() {
// TODO Auto-generated method stub
}
/**
* On validation error.
*
* @param throwable the throwable
* @param errorMsg the error msg
* @param errorMsg the error msg
*/
@Override
public void onValidationError(Throwable throwable, String errorMsg) {
// TODO Auto-generated method stub
}
}
/**
* Instantiates a new metadata form card.
*
* @param tab the tab
* @param tab the tab
* @param geonaFormModel the geona form model
* @param appManagerBus the app manager bus
* @param appManagerBus the app manager bus
*/
public MetadataFormCard(Tab tab, GeoNaFormCardModel geonaFormModel, HandlerManager appManagerBus) {
this.tab = tab;
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);
ProjectFormCard formCard = geonaFormModel.getFormCard();
this.repeatible = formCard.isInternalRepeatibleForm();
this.minFormRepeatability = formCard.getMinFormRepeatability() != null
? geonaFormModel.getFormCard().getMinFormRepeatability()
: 1;
this.maxFormRepeatability = formCard.getMaxFormRepeatability() != null
? geonaFormModel.getFormCard().getMaxFormRepeatability()
: Integer.MAX_VALUE;
boolean repeatibleFormIsRemovable = true;
if (minFormRepeatability > 1) {
repeatibleFormIsRemovable = false;
for (int i = 1; i < minFormRepeatability; i++) {
CreateMetadataForm newForm = new CreateMetadataForm(
geonaFormModel.getMetadataForm().getMetadataProfiles(), appManagerBus,
CreateMetadataForm.OPERATION.UPDATE);
// newForm.addListener(formCardEventHandler);
// here removableForm is false because the min > 1 must be respected
addNewForm(newForm, repeatibleFormIsRemovable);
}
}
this.buildCard(geonaFormModel.getMetadataForm(), repeatibleFormIsRemovable);
// geonaFormModel.getMetadataForm().addListener(formCardEventHandler);
}
/**
@ -125,62 +152,74 @@ public class MetadataFormCard {
*
* @param createMetadataForm the create metadata form
*/
private void buildCard(final CreateMetadataForm createMetadataForm) {
if(repeatible) {
private void buildCard(final CreateMetadataForm createMetadataForm, boolean repeatibleFormIsRemovable) {
if (repeatible) {
Button buttonAddNew = new Button("Add New...");
tab.add(buttonAddNew);
buttonAddNew.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
if(listForms.size() < maxFormRepeatability) {
CreateMetadataForm newForm = new CreateMetadataForm(createMetadataForm.getMetadataProfiles(),appManagerBus, CreateMetadataForm.OPERATION.UPDATE);
//newForm.addListener(formCardEventHandler);
addNewForm(newForm);
}else
Window.alert("Maximun number of data reached for "+geonaFormModel.getFormCardTitle().getTitle());
//newForm.getCreateButton().setFocus(true);
if (listForms.size() < maxFormRepeatability) {
CreateMetadataForm newForm = new CreateMetadataForm(createMetadataForm.getMetadataProfiles(),
appManagerBus, CreateMetadataForm.OPERATION.UPDATE);
// newForm.addListener(formCardEventHandler);
addNewForm(newForm, true);
} else {
DialogInform di = new DialogInform(new Image(Images.ICONS.accessDenied()), "Maximun reached",
"Maximun number of data reached for " + geonaFormModel.getFormCard().getTitle());
di.center();
}
}
});
}
tab.add(tabContainer);
addNewForm(createMetadataForm);
addNewForm(createMetadataForm, repeatibleFormIsRemovable);
}
/**
* Adds the new form.
*
* @param newForm the new form
*/
private void addNewForm(final CreateMetadataForm newForm) {
tabContainer.insert(newForm,0);
private void addNewForm(final CreateMetadataForm newForm, boolean repeatibleFormIsRemovable) {
tabContainer.insert(newForm, 0);
listForms.add(newForm);
if(listForms.size()>1) {
if (listForms.size() > 1 && repeatibleFormIsRemovable) {
final Button buttonRemoveLatestForm = new Button("Remove");
buttonRemoveLatestForm.setIcon(IconType.TRASH);
tabContainer.insert(buttonRemoveLatestForm,1);
tabContainer.insert(buttonRemoveLatestForm, 1);
buttonRemoveLatestForm.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
tabContainer.remove(newForm);
listForms.remove(newForm);
tabContainer.remove(buttonRemoveLatestForm);
AlertClosable alertCloasable = new AlertClosable();
alertCloasable.setHTML("Data Entry form removed");
alertCloasable.setAnimation(true);
alertCloasable.setType(AlertType.DEFAULT);
alertCloasable.setClose(true);
alertCloasable.closeAfter(3000);
alertCloasable.getElement().getStyle().setMarginTop(5, Unit.PX);
tabContainer.insert(alertCloasable,0);
}
});
}
newForm.addListener(formCardEventHandler);
}
/**
* Gets the list forms.
*
@ -189,7 +228,7 @@ public class MetadataFormCard {
public List<CreateMetadataForm> getListForms() {
return listForms;
}
/**
* Gets the heading.
*
@ -199,7 +238,6 @@ public class MetadataFormCard {
return heading;
}
/**
* Validate form.
*
@ -208,8 +246,8 @@ public class MetadataFormCard {
public boolean validateForm() {
for (CreateMetadataForm createMetadataForm : listForms) {
boolean isFormDataValid = createMetadataForm.isFormDataValid();
GWT.log("Is form data valid: "+isFormDataValid);
if(!isFormDataValid) {
GWT.log("Is form data valid: " + isFormDataValid);
if (!isFormDataValid) {
return false;
}
}
@ -222,43 +260,41 @@ public class MetadataFormCard {
* @param bool the new valid card
*/
public void setValidCard(boolean bool) {
if(bool) {
if (bool) {
tab.setIcon(IconType.OK_SIGN);
tab.asWidget().getElement().removeClassName("red-text");
tab.asWidget().getElement().addClassName("green-text");
}
else {
} else {
tab.setIcon(IconType.MINUS_SIGN);
tab.asWidget().getElement().removeClassName("green-text");
tab.asWidget().getElement().addClassName("red-text");
}
}
/**
* Sets the tab status.
*/
private void setTabStatus() {
boolean isValid = validateForm();
if(isValid) {
if (isValid) {
tab.setIcon(IconType.OK_SIGN);
tab.asWidget().getElement().removeClassName("red-text");
tab.asWidget().getElement().addClassName("green-text");
}
else {
} else {
tab.setIcon(IconType.MINUS_SIGN);
tab.asWidget().getElement().removeClassName("red-text");
tab.asWidget().getElement().addClassName("red-text");
}
}
/**
* Reset tab status.
*/
private void resetTabStatus() {
tab.setIcon(null);
}
public GeoNaFormCardModel getGeonaFormModel() {
return geonaFormModel;
}

View File

@ -168,7 +168,7 @@ public class GeonaDataEntryMainForm extends Composite {
listGDB.add(form.getFormDataBean());
}
listGeonaFormObjects.add(new GeoNaFormDataObject(listGDB, card.getGeonaFormModel().getFormCardTitle()));
listGeonaFormObjects.add(new GeoNaFormDataObject(listGDB, card.getGeonaFormModel().getFormCard()));
}
appManagerBus.fireEvent(new SaveGeonaDataFormsEvent(listGeonaFormObjects));
} else {

View File

@ -0,0 +1,40 @@
package org.gcube.portlets.user.geoportaldataentry.client.ui.utils;
import com.github.gwtbootstrap.client.ui.Alert;
import com.google.gwt.user.client.Timer;
/**
* The Class AlertClosable.
*
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
*
* Mar 4, 2022
*/
public class AlertClosable extends Alert {
private AlertClosable instance = this;
/**
* Instantiates a new alert closable.
*/
public AlertClosable() {
}
/**
* Close after.
*
* @param depayMillis the depay millis
*/
public void closeAfter(int depayMillis) {
Timer timer = new Timer() {
@Override
public void run() {
instance.close();
}
};
timer.schedule(depayMillis);
}
}

View File

@ -30,9 +30,9 @@ import org.gcube.application.geoportalcommon.shared.products.content.WorkspaceCo
import org.gcube.application.geoportalcommon.shared.products.model.ValidationReportDV;
import org.gcube.application.geoportalcommon.shared.products.paths.FileSetPathsDV;
import org.gcube.common.portal.PortalContext;
import org.gcube.portlets.user.geoportaldataentry.client.ConcessioniFormCardTitle;
import org.gcube.portlets.user.geoportaldataentry.client.ConstantsGeoPortalDataEntryApp.RECORD_TYPE;
import org.gcube.portlets.user.geoportaldataentry.client.GeoportalDataEntryService;
import org.gcube.portlets.user.geoportaldataentry.client.ProjectFormCard;
import org.gcube.portlets.user.geoportaldataentry.shared.CommitReport;
import org.gcube.portlets.user.geoportaldataentry.shared.GNADataEntryExtConfigProfile;
import org.gcube.portlets.user.geoportaldataentry.shared.GeoNaFormDataObject;
@ -98,11 +98,11 @@ public class GeoportalDataEntryServiceImpl extends RemoteServiceServlet implemen
public CommitReport saveGeonaDataForms(List<GeoNaFormDataObject> listGeonaFormObjects) throws Exception {
LOG.info("saveGeonaDataForms called");
HashMap<ConcessioniFormCardTitle, List<GeoNaFormDataObject>> toMap = new HashMap<ConcessioniFormCardTitle, List<GeoNaFormDataObject>>();
HashMap<ProjectFormCard, List<GeoNaFormDataObject>> toMap = new HashMap<ProjectFormCard, List<GeoNaFormDataObject>>();
for (GeoNaFormDataObject geoNaFormDataObject : listGeonaFormObjects) {
ConcessioniFormCardTitle theType = geoNaFormDataObject.getTheType();
ProjectFormCard theType = geoNaFormDataObject.getTheType();
List<GeoNaFormDataObject> listForm = toMap.get(theType);
if (listForm == null) {
listForm = new ArrayList<GeoNaFormDataObject>();
@ -130,56 +130,56 @@ public class GeoportalDataEntryServiceImpl extends RemoteServiceServlet implemen
/*
// Saving Data
// Informazioni di Progetto
List<GeoNaFormDataObject> list = toMap.get(ConcessioniFormCardTitle.INFORMAZIONI_DI_PROGETTO);
List<GeoNaFormDataObject> list = toMap.get(ProjectFormCard.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());
"Error: no data found for " + ProjectFormCard.INFORMAZIONI_DI_PROGETTO.getTitle());
List<GenericDatasetBean> 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(ProjectFormCard.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);
LOG.debug("Built " + ProjectFormCard.INFORMAZIONI_DI_PROGETTO + " as server obj: " + concessione);
// Register New Concessione
concessioneNew = clientMongo.createNew(concessione);
// ABSTRACT_RELAZIONE_DI_SCAVO
list = toMap.get(ConcessioniFormCardTitle.ABSTRACT_RELAZIONE_DI_SCAVO);
list = toMap.get(ProjectFormCard.ABSTRACT_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.ABSTRACT_RELAZIONE_DI_SCAVO.getTitle());
"Error: no data found for " + ProjectFormCard.ABSTRACT_RELAZIONE_DI_SCAVO.getTitle());
listGDB = list.get(0).getListGDB();
GenericDatasetBean ards = listGDB.get(0);
LOG.debug("\n\n");
LOG.debug(ConcessioniFormCardTitle.ABSTRACT_RELAZIONE_DI_SCAVO + " building with client obj: " + ards);
LOG.debug(ProjectFormCard.ABSTRACT_RELAZIONE_DI_SCAVO + " building with client obj: " + ards);
AbstractRelazione abstractRelazioneDiScavo = ConvertToServiceModel.toAbstractRelazioneScavo(ards);
// Setting Abstract Relazione
concessioneNew.setAbstractRelazione(abstractRelazioneDiScavo);
// RELAZIONE_DI_SCAVO
list = toMap.get(ConcessioniFormCardTitle.RELAZIONE_DI_SCAVO);
list = toMap.get(ProjectFormCard.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());
"Error: no data found for " + ProjectFormCard.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(ProjectFormCard.RELAZIONE_DI_SCAVO + " building with client obj: " + rds);
RelazioneScavo relazioneDiScavo = ConvertToServiceModel.toRelazioneScavo(rds);
LOG.debug("Built " + ConcessioniFormCardTitle.RELAZIONE_DI_SCAVO + " as server obj: " + relazioneDiScavo);
LOG.debug("Built " + ProjectFormCard.RELAZIONE_DI_SCAVO + " as server obj: " + relazioneDiScavo);
// Setting Relazione
concessioneNew.setRelazioneScavo(relazioneDiScavo);
// IMMAGINI_RAPPRESENTATIVE
list = toMap.get(ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE);
list = toMap.get(ProjectFormCard.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());
"Error: no data found for " + ProjectFormCard.IMMAGINI_RAPPRESENTATIVE.getTitle());
List<GenericDatasetBean> imgRaprsLst = list.get(0).getListGDB();
List<UploadedImage> immaginiRappresentativeService = null;
@ -187,10 +187,10 @@ public class GeoportalDataEntryServiceImpl extends RemoteServiceServlet implemen
immaginiRappresentativeService = new ArrayList<UploadedImage>(imgRaprsLst.size());
for (GenericDatasetBean imgRapr : imgRaprsLst) {
LOG.debug("\n\n");
LOG.debug(ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE + " building with client obj: "
LOG.debug(ProjectFormCard.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 " + ProjectFormCard.IMMAGINI_RAPPRESENTATIVE + " as server obj: " + img);
immaginiRappresentativeService.add(img);
}
}
@ -201,20 +201,20 @@ public class GeoportalDataEntryServiceImpl extends RemoteServiceServlet implemen
}
// POSIZIONAMENTO_DELL_AREA_DI_INDAGINE
list = toMap.get(ConcessioniFormCardTitle.POSIZIONAMENTO_DELL_AREA_DI_INDAGINE);
list = toMap.get(ProjectFormCard.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());
+ ProjectFormCard.POSIZIONAMENTO_DELL_AREA_DI_INDAGINE.getTitle());
listGDB = list.get(0).getListGDB();
GenericDatasetBean pad = listGDB.get(0);
LayerConcessione layerPad = null;
if (pad != null) {
LOG.debug("\n\n");
LOG.debug(ConcessioniFormCardTitle.POSIZIONAMENTO_DELL_AREA_DI_INDAGINE + " building with client obj: "
LOG.debug(ProjectFormCard.POSIZIONAMENTO_DELL_AREA_DI_INDAGINE + " building with client obj: "
+ pad);
layerPad = ConvertToServiceModel.toLayerConcessione(pad);
LOG.debug("Built " + ConcessioniFormCardTitle.POSIZIONAMENTO_DELL_AREA_DI_INDAGINE + " as server obj: "
LOG.debug("Built " + ProjectFormCard.POSIZIONAMENTO_DELL_AREA_DI_INDAGINE + " as server obj: "
+ layerPad);
}
@ -224,10 +224,10 @@ public class GeoportalDataEntryServiceImpl extends RemoteServiceServlet implemen
}
// PIANTA_DI_FINE_SCAVO
list = toMap.get(ConcessioniFormCardTitle.PIANTA_DI_FINE_SCAVO);
list = toMap.get(ProjectFormCard.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());
"Error: no data found for " + ProjectFormCard.PIANTA_DI_FINE_SCAVO.getTitle());
listGDB = list.get(0).getListGDB();
List<GenericDatasetBean> listPfs = listGDB;
@ -237,9 +237,9 @@ public class GeoportalDataEntryServiceImpl extends RemoteServiceServlet implemen
pianteFineScavo = new ArrayList<LayerConcessione>(listPfs.size());
for (GenericDatasetBean pfs : listPfs) {
LOG.debug("\n\n");
LOG.debug(ConcessioniFormCardTitle.PIANTA_DI_FINE_SCAVO + " building with client obj: " + pfs);
LOG.debug(ProjectFormCard.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 " + ProjectFormCard.PIANTA_DI_FINE_SCAVO + " as server obj: " + layerPfs);
pianteFineScavo.add(layerPfs);
}
@ -486,9 +486,9 @@ public class GeoportalDataEntryServiceImpl extends RemoteServiceServlet implemen
*
* @param toMap the to map
*/
private void prettyPrintClientDataEntryMap(HashMap<ConcessioniFormCardTitle, List<GeoNaFormDataObject>> toMap) {
private void prettyPrintClientDataEntryMap(HashMap<ProjectFormCard, List<GeoNaFormDataObject>> toMap) {
for (ConcessioniFormCardTitle theType : toMap.keySet()) {
for (ProjectFormCard theType : toMap.keySet()) {
LOG.debug("\n\n");
LOG.debug(theType.toString());
List<GeoNaFormDataObject> list = toMap.get(theType);

View File

@ -3,7 +3,7 @@ package org.gcube.portlets.user.geoportaldataentry.shared;
import java.io.Serializable;
import java.util.List;
import org.gcube.portlets.user.geoportaldataentry.client.ConcessioniFormCardTitle;
import org.gcube.portlets.user.geoportaldataentry.client.ProjectFormCard;
import org.gcube.portlets.widgets.mpformbuilder.shared.GenericDatasetBean;
public class GeoNaFormDataObject implements Serializable{
@ -14,13 +14,13 @@ public class GeoNaFormDataObject implements Serializable{
private static final long serialVersionUID = 3620244260086172039L;
private List<GenericDatasetBean> listGDB;
private ConcessioniFormCardTitle theType;
private ProjectFormCard theType;
public GeoNaFormDataObject(){
}
public GeoNaFormDataObject(List<GenericDatasetBean> listGDB, ConcessioniFormCardTitle theType) {
public GeoNaFormDataObject(List<GenericDatasetBean> listGDB, ProjectFormCard theType) {
super();
this.listGDB = listGDB;
this.theType = theType;
@ -33,10 +33,10 @@ public class GeoNaFormDataObject implements Serializable{
public void setListGDB(List<GenericDatasetBean> listGDB) {
this.listGDB = listGDB;
}
public ConcessioniFormCardTitle getTheType() {
public ProjectFormCard getTheType() {
return theType;
}
public void setTheType(ConcessioniFormCardTitle theType) {
public void setTheType(ProjectFormCard theType) {
this.theType = theType;
}