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 7bac626..03ef45b 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
@@ -8,22 +8,28 @@ import java.util.List;
import java.util.TreeMap;
import org.gcube.application.geoportalcommon.shared.GeoNaItemRef;
+import org.gcube.application.geoportalcommon.shared.products.ConcessioneDV;
+import org.gcube.portlets.user.geoportaldataentry.client.ConstantsGeoPortalDataEntryApp.ACTION_ON_ITEM;
import org.gcube.portlets.user.geoportaldataentry.client.ConstantsGeoPortalDataEntryApp.RECORD_TYPE;
+import org.gcube.portlets.user.geoportaldataentry.client.events.ActionOnItemEvent;
+import org.gcube.portlets.user.geoportaldataentry.client.events.ActionOnItemEventHandler;
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.GetListOfRecordsEvent;
import org.gcube.portlets.user.geoportaldataentry.client.events.GetListOfRecordsEventHandler;
import org.gcube.portlets.user.geoportaldataentry.client.events.SaveGeonaDataFormsEvent;
import org.gcube.portlets.user.geoportaldataentry.client.events.SaveGeonaDataFormsHandler;
-import org.gcube.portlets.user.geoportaldataentry.client.ui.GeonaMainPanel;
+import org.gcube.portlets.user.geoportaldataentry.client.ui.GeonaMainTabPanel;
import org.gcube.portlets.user.geoportaldataentry.client.ui.GeonaRecordsPaginatedView;
import org.gcube.portlets.user.geoportaldataentry.client.ui.card.GeoNaFormCardModel;
import org.gcube.portlets.user.geoportaldataentry.client.ui.form.GeonaDataEntryMainForm;
import org.gcube.portlets.user.geoportaldataentry.client.ui.report.ReportTemplateToHTML;
import org.gcube.portlets.user.geoportaldataentry.client.ui.table.ItemsTable.DISPLAY_FIELD;
+import org.gcube.portlets.user.geoportaldataentry.client.ui.utils.DialogConfirm;
import org.gcube.portlets.user.geoportaldataentry.client.ui.utils.HTMLUtil;
import org.gcube.portlets.user.geoportaldataentry.client.ui.utils.HTMLUtil.HTML_TAG;
import org.gcube.portlets.user.geoportaldataentry.client.ui.utils.LoaderIcon;
+import org.gcube.portlets.user.geoportaldataentry.client.ui.utils.NewBrowserWindow;
import org.gcube.portlets.user.geoportaldataentry.shared.CommitReport;
import org.gcube.portlets.user.geoportaldataentry.shared.GeoNaFormDataObject;
import org.gcube.portlets.user.geoportaldataentry.shared.GeonaISConfig;
@@ -36,6 +42,8 @@ import com.github.gwtbootstrap.client.ui.Modal;
import com.github.gwtbootstrap.client.ui.constants.AlertType;
import com.google.gwt.core.client.EntryPoint;
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;
import com.google.gwt.user.client.rpc.AsyncCallback;
@@ -48,7 +56,6 @@ import com.google.gwt.user.client.ui.VerticalPanel;
* Entry point classes define onModuleLoad()
.
*/
public class GeoPortalDataEntryApp implements EntryPoint {
-
/**
* The message displayed to the user when the server cannot be reached or
@@ -67,27 +74,27 @@ public class GeoPortalDataEntryApp implements EntryPoint {
private final HandlerManager appManagerBus = new HandlerManager(null);
private LinkedHashMap mapForms = new LinkedHashMap();
-
+
private GeonaDataEntryMainForm geoNaMainForm;
-
+
private Collection orderedCards;
-
- private GeonaMainPanel mainPanel;
-
+
+ private GeonaMainTabPanel mainTabPanel;
+
private LinkedHashMap> savedMap = new LinkedHashMap>();
-
+
private boolean projectSavedWithSuccess;
-
+
/**
* This is the entry point method.
*/
public void onModuleLoad() {
-
- mainPanel = new GeonaMainPanel(appManagerBus);
- mainPanel.setLoaderVisible("Loading...", true);
-
+
+ mainTabPanel = new GeonaMainTabPanel(appManagerBus);
+ mainTabPanel.setLoaderVisible("Loading...", true);
+
geoNaMainForm = new GeonaDataEntryMainForm(appManagerBus);
-
+
GeoportalDataEntryServiceAsync.Util.getInstance().getGeonaInitConfig(new AsyncCallback() {
@Override
@@ -97,131 +104,137 @@ public class GeoPortalDataEntryApp implements EntryPoint {
@Override
public void onSuccess(GeonaISConfig result) {
-
- if(result!=null && result.getgRSecondaryType()!=null && result.getScope()!=null) {
- callGetMetadataProfiles(result.getScope(), result.getgRSecondaryType());
- }else
- Window.alert(ConstantsGeoPortalDataEntryApp.ERROR_ON_INIZIALITAION_STAGE_PLEASE_CONTACT_THE_SUPPORT);
-
- }
- });
-
- bindEvents();
- mainPanel.addFormPanel(geoNaMainForm);
- RootPanel.get(DIV_PORTLET_ID).add(mainPanel);
- }
-
-
- private void callGetMetadataProfiles(String scope, String secondaryType) {
-
- MetadataProfileFormBuilderServiceAsync.Util.getInstance().getProfilesInTheScope(scope, secondaryType, new AsyncCallback>() {
-
- @Override
- public void onSuccess(List result) {
- GWT.log("Returned "+result.size()+ "profile/s");
- orderedCards = setGeoNaFormsOrder(result);
- //ordered values
- buildNewCards(orderedCards);
- }
-
- @Override
- public void onFailure(Throwable caught) {
- }
- });
- }
-
- private void buildNewCards(Collection orderedCards) {
- projectSavedWithSuccess = false; //resetting state of saving
- mainPanel.setFormPanelVisible(true);
- mainPanel.setLoaderVisible("Loading...", true);
- resetUI();
- //ordered values
- for (GeoNaFormCardModel geonaForm : orderedCards) {
-
- //TODO TO TEST
- //if(geonaForm.getFormCardTitle().equals(ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE)){
- GWT.log("Adding card: "+geonaForm.getFormCardTitle());
- CreateMetadataForm baseForm = new CreateMetadataForm(Arrays.asList(geonaForm.getMetadataProfileBean()),appManagerBus);
- geonaForm.setMetadataForm(baseForm);
- String key = geonaForm.getMetadataProfileBean().getType();
- if(geonaForm.getFormCardTitle()!=null) {
- key = geonaForm.getFormCardTitle().getTitle();
- }
- geoNaMainForm.addForm(key, geonaForm);
- mapForms.put(key, geonaForm);
-
- //}
+ if (result != null && result.getgRSecondaryType() != null && result.getScope() != null) {
+ callGetMetadataProfiles(result.getScope(), result.getgRSecondaryType());
+ } else
+ Window.alert(
+ ConstantsGeoPortalDataEntryApp.ERROR_ON_INIZIALITAION_STAGE_PLEASE_CONTACT_THE_SUPPORT);
+
+ }
+ });
+
+ bindEvents();
+ mainTabPanel.addFormPanel(geoNaMainForm);
+ RootPanel.get(DIV_PORTLET_ID).add(mainTabPanel);
+ }
+
+ private void callGetMetadataProfiles(String scope, String secondaryType) {
+
+ MetadataProfileFormBuilderServiceAsync.Util.getInstance().getProfilesInTheScope(scope, secondaryType,
+ new AsyncCallback>() {
+
+ @Override
+ public void onSuccess(List result) {
+ GWT.log("Returned " + result.size() + "profile/s");
+ orderedCards = setGeoNaFormsOrder(result);
+ // ordered values
+ buildNewCards(orderedCards);
+ }
+
+ @Override
+ public void onFailure(Throwable caught) {
+ }
+ });
+ }
+
+ private void buildNewCards(Collection orderedCards) {
+ projectSavedWithSuccess = false; // resetting state of saving
+ mainTabPanel.setLoaderVisible("Loading...", true);
+ resetUI();
+ // ordered values
+ for (GeoNaFormCardModel geonaForm : orderedCards) {
+
+ // TODO TO TEST
+ // if(geonaForm.getFormCardTitle().equals(ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE)){
+
+ GWT.log("Adding card: " + geonaForm.getFormCardTitle());
+ CreateMetadataForm baseForm = new CreateMetadataForm(Arrays.asList(geonaForm.getMetadataProfileBean()),
+ appManagerBus);
+ geonaForm.setMetadataForm(baseForm);
+ String key = geonaForm.getMetadataProfileBean().getType();
+ if (geonaForm.getFormCardTitle() != null) {
+ key = geonaForm.getFormCardTitle().getTitle();
+ }
+ geoNaMainForm.addForm(key, geonaForm);
+ mapForms.put(key, geonaForm);
+
+ // }
}
geoNaMainForm.enableButtonSave(true);
- mainPanel.setLoaderVisible("", false);
+ mainTabPanel.setLoaderVisible("", false);
}
-
+
private void resetUI() {
geoNaMainForm.reset();
mapForms.clear();
}
-
+
private Collection setGeoNaFormsOrder(List listMetadataProfilesForGeona) {
-
+
TreeMap treemapOrderedGeoNaProfiles = new TreeMap();
-
+
List listUnknownType = new ArrayList();
for (MetaDataProfileBean metaDataProfileBean : listMetadataProfilesForGeona) {
-
+
String theMetaType = metaDataProfileBean.getType().toLowerCase();
- GWT.log("Building form card for type: "+theMetaType);
+ GWT.log("Building form card for type: " + theMetaType);
GeoNaFormCardModel geonaForm = new GeoNaFormCardModel(metaDataProfileBean, null, null);
-
- if(theMetaType.contains(ConcessioniFormCardTitle.INFORMAZIONI_DI_PROGETTO.getKey().toLowerCase())) {
+
+ if (theMetaType.contains(ConcessioniFormCardTitle.INFORMAZIONI_DI_PROGETTO.getKey().toLowerCase())) {
geonaForm.setFormCardTitle(ConcessioniFormCardTitle.INFORMAZIONI_DI_PROGETTO);
- treemapOrderedGeoNaProfiles.put(ConcessioniFormCardTitle.INFORMAZIONI_DI_PROGETTO.getOrder(), geonaForm);
- }else if(theMetaType.contains(ConcessioniFormCardTitle.ABSTRACT_RELAZIONE_DI_SCAVO.getKey().toLowerCase())) {
+ treemapOrderedGeoNaProfiles.put(ConcessioniFormCardTitle.INFORMAZIONI_DI_PROGETTO.getOrder(),
+ geonaForm);
+ } else if (theMetaType
+ .contains(ConcessioniFormCardTitle.ABSTRACT_RELAZIONE_DI_SCAVO.getKey().toLowerCase())) {
geonaForm.setFormCardTitle(ConcessioniFormCardTitle.ABSTRACT_RELAZIONE_DI_SCAVO);
- treemapOrderedGeoNaProfiles.put(ConcessioniFormCardTitle.ABSTRACT_RELAZIONE_DI_SCAVO.getOrder(), geonaForm);
- }else if(theMetaType.contains(ConcessioniFormCardTitle.RELAZIONE_DI_SCAVO.getKey().toLowerCase())) {
+ treemapOrderedGeoNaProfiles.put(ConcessioniFormCardTitle.ABSTRACT_RELAZIONE_DI_SCAVO.getOrder(),
+ geonaForm);
+ } else if (theMetaType.contains(ConcessioniFormCardTitle.RELAZIONE_DI_SCAVO.getKey().toLowerCase())) {
geonaForm.setFormCardTitle(ConcessioniFormCardTitle.RELAZIONE_DI_SCAVO);
treemapOrderedGeoNaProfiles.put(ConcessioniFormCardTitle.RELAZIONE_DI_SCAVO.getOrder(), geonaForm);
- }else if(theMetaType.contains(ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE.getKey().toLowerCase())) {
+ } else if (theMetaType.contains(ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE.getKey().toLowerCase())) {
geonaForm.setFormCardTitle(ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE);
- treemapOrderedGeoNaProfiles.put(ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE.getOrder(), geonaForm);
- }else if(theMetaType.contains(ConcessioniFormCardTitle.POSIZIONAMENTO_DELL_AREA_DI_INDAGINE.getKey().toLowerCase())) {
+ treemapOrderedGeoNaProfiles.put(ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE.getOrder(),
+ geonaForm);
+ } else if (theMetaType
+ .contains(ConcessioniFormCardTitle.POSIZIONAMENTO_DELL_AREA_DI_INDAGINE.getKey().toLowerCase())) {
geonaForm.setFormCardTitle(ConcessioniFormCardTitle.POSIZIONAMENTO_DELL_AREA_DI_INDAGINE);
- treemapOrderedGeoNaProfiles.put(ConcessioniFormCardTitle.POSIZIONAMENTO_DELL_AREA_DI_INDAGINE.getOrder(), geonaForm);
- }else if(theMetaType.contains(ConcessioniFormCardTitle.PIANTA_DI_FINE_SCAVO.getKey().toLowerCase())) {
+ treemapOrderedGeoNaProfiles
+ .put(ConcessioniFormCardTitle.POSIZIONAMENTO_DELL_AREA_DI_INDAGINE.getOrder(), geonaForm);
+ } else if (theMetaType.contains(ConcessioniFormCardTitle.PIANTA_DI_FINE_SCAVO.getKey().toLowerCase())) {
geonaForm.setFormCardTitle(ConcessioniFormCardTitle.PIANTA_DI_FINE_SCAVO);
treemapOrderedGeoNaProfiles.put(ConcessioniFormCardTitle.PIANTA_DI_FINE_SCAVO.getOrder(), geonaForm);
- }else {
- //adding to unknown list
+ } else {
+ // adding to unknown list
listUnknownType.add(geonaForm);
}
}
-
- //adding unknown types
+
+ // adding unknown types
for (GeoNaFormCardModel geoNaFormCardModel : listUnknownType) {
Integer highestKey = treemapOrderedGeoNaProfiles.lastKey();
highestKey++;
treemapOrderedGeoNaProfiles.put(highestKey, geoNaFormCardModel);
}
-
- GWT.log("Map size: "+treemapOrderedGeoNaProfiles.size());
+
+ GWT.log("Map size: " + treemapOrderedGeoNaProfiles.size());
return treemapOrderedGeoNaProfiles.values();
-
+
}
-
-
+
private void bindEvents() {
-
+
appManagerBus.addHandler(SaveGeonaDataFormsEvent.TYPE, new SaveGeonaDataFormsHandler() {
-
+
@Override
public void onSave(final SaveGeonaDataFormsEvent saveGeonaDataFormsEvent) {
-
+
geoNaMainForm.enableButtonSave(false);
-
- if(saveGeonaDataFormsEvent.getListGeonaDataForms()!=null) {
-
+
+ if (saveGeonaDataFormsEvent.getListGeonaDataForms() != null) {
+
final Modal modal = new Modal(true);
modal.setCloseVisible(false);
modal.setTitle("Saving project...");
@@ -234,110 +247,120 @@ public class GeoPortalDataEntryApp implements EntryPoint {
modalContainerPanel.add(loader);
modal.add(modalContainerPanel);
- GeoportalDataEntryServiceAsync.Util.getInstance().saveGeonaDataForms(saveGeonaDataFormsEvent.getListGeonaDataForms(), new AsyncCallback() {
+ GeoportalDataEntryServiceAsync.Util.getInstance().saveGeonaDataForms(
+ saveGeonaDataFormsEvent.getListGeonaDataForms(), new AsyncCallback() {
- @Override
- public void onFailure(Throwable caught) {
- modalContainerPanel.clear();
- modal.setCloseVisible(true);
- try {
- modal.remove(loader);
- }catch (Exception e) {
- }
- Alert alert = new Alert(caught.getMessage());
- alert.setType(AlertType.ERROR);
- alert.setClose(false);
- modal.add(alert);
- //resetUI();
- geoNaMainForm.enableButtonSave(true);
- }
-
- @Override
- public void onSuccess(CommitReport result) {
- modalContainerPanel.clear();
- modal.setCloseVisible(true);
- HTML recordPublished = new HTML();
- switch (result.getState()) {
- case OK:
- String success = HTMLUtil.getHTMLElement(HTML_TAG.span, 14, "32CD32", null, "SUCCESS");
- recordPublished.setHTML("Record Published with "+success);
- projectSavedWithSuccess = true;
- String msg = result.getMsg()!=null?result.getMsg():"Record published with success";
- geoNaMainForm.showAlertOnSaveAction(msg, AlertType.SUCCESS, true);
- purgeFileUploaded();
- break;
- case WARN:
- String warning = HTMLUtil.getHTMLElement(HTML_TAG.span, 14, "FF8000", null, "WARNING");
- recordPublished.setHTML("Record Published with "+warning);
- geoNaMainForm.enableButtonSave(true);
- break;
- case ERROR:
- String error = HTMLUtil.getHTMLElement(HTML_TAG.span, 14, "FF0000", "bold", "ERROR");
- recordPublished.setHTML(error+" on publishing the Record");
- geoNaMainForm.enableButtonSave(true);
- break;
- default:
- break;
- }
-
- modalContainerPanel.add(recordPublished);
-
- if(result.getMongoId()!=null) {
- modalContainerPanel.add(new HTML("Record id: "+(result.getMongoId())));
-
- try {
- savedMap.put(result.getMongoId(), saveGeonaDataFormsEvent.getListGeonaDataForms());
- }catch (Exception e) {
- // TODO: handle exception
+ @Override
+ public void onFailure(Throwable caught) {
+ modalContainerPanel.clear();
+ modal.setCloseVisible(true);
+ try {
+ modal.remove(loader);
+ } catch (Exception e) {
+ }
+ Alert alert = new Alert(caught.getMessage());
+ alert.setType(AlertType.ERROR);
+ alert.setClose(false);
+ modal.add(alert);
+ // resetUI();
+ geoNaMainForm.enableButtonSave(true);
}
-
- final HorizontalPanel hpGetLink = new HorizontalPanel();
- final LoaderIcon lc = new LoaderIcon("Get link...");
- hpGetLink.add(lc);
- modalContainerPanel.add(hpGetLink);
- GeoportalDataEntryServiceAsync.Util.getInstance().getLinksFor(result.getMongoId(), "concessione", new AsyncCallback() {
-
- @Override
- public void onFailure(Throwable caught) {
- hpGetLink.clear();
-
- }
-
- @Override
- public void onSuccess(GeoNaItemRef result) {
- hpGetLink.clear();
- String theURL = result.getRestrictedLink().getShortURL()!=null?result.getRestrictedLink().getShortURL():result.getRestrictedLink().getCompleteURL();
- String htmlLink = "";
- HTML html = new HTML(htmlLink);
- hpGetLink.add(html);
- //modal.add(html);
- }
- });
- }
-
- //geoNaMainForm.enableButtonSave(true);
- //resetUI();
-
- if(result.getReport()!=null) {
- modalContainerPanel.add(new ReportTemplateToHTML(result.getReport()));
- }
-
- }
- });
-
+ @Override
+ public void onSuccess(CommitReport result) {
+ modalContainerPanel.clear();
+ modal.setCloseVisible(true);
+ HTML recordPublished = new HTML();
+ switch (result.getState()) {
+ case OK:
+ String success = HTMLUtil.getHTMLElement(HTML_TAG.span, 14, "32CD32", null,
+ "SUCCESS");
+ recordPublished.setHTML("Record Published with " + success);
+ projectSavedWithSuccess = true;
+ String msg = result.getMsg() != null ? result.getMsg()
+ : "Record published with success";
+ geoNaMainForm.showAlertOnSaveAction(msg, AlertType.SUCCESS, true);
+ purgeFileUploaded();
+ break;
+ case WARN:
+ String warning = HTMLUtil.getHTMLElement(HTML_TAG.span, 14, "FF8000", null,
+ "WARNING");
+ recordPublished.setHTML("Record Published with " + warning);
+ geoNaMainForm.enableButtonSave(true);
+ break;
+ case ERROR:
+ String error = HTMLUtil.getHTMLElement(HTML_TAG.span, 14, "FF0000", "bold",
+ "ERROR");
+ recordPublished.setHTML(error + " on publishing the Record");
+ geoNaMainForm.enableButtonSave(true);
+ break;
+ default:
+ break;
+ }
+
+ modalContainerPanel.add(recordPublished);
+
+ if (result.getMongoId() != null) {
+ modalContainerPanel.add(new HTML("Record id: " + (result.getMongoId())));
+
+ try {
+ savedMap.put(result.getMongoId(),
+ saveGeonaDataFormsEvent.getListGeonaDataForms());
+ } catch (Exception e) {
+ // TODO: handle exception
+ }
+
+ final HorizontalPanel hpGetLink = new HorizontalPanel();
+ final LoaderIcon lc = new LoaderIcon("Get link...");
+ hpGetLink.add(lc);
+ modalContainerPanel.add(hpGetLink);
+ GeoportalDataEntryServiceAsync.Util.getInstance().getLinksFor(
+ result.getMongoId(), RECORD_TYPE.CONCESSIONE,
+ new AsyncCallback() {
+
+ @Override
+ public void onFailure(Throwable caught) {
+ hpGetLink.clear();
+
+ }
+
+ @Override
+ public void onSuccess(GeoNaItemRef result) {
+ hpGetLink.clear();
+ String theURL = result.getRestrictedLink().getShortURL() != null
+ ? result.getRestrictedLink().getShortURL()
+ : result.getRestrictedLink().getCompleteURL();
+ String htmlLink = "";
+ HTML html = new HTML(htmlLink);
+ hpGetLink.add(html);
+ // modal.add(html);
+ }
+ });
+ }
+
+ // geoNaMainForm.enableButtonSave(true);
+ // resetUI();
+
+ if (result.getReport() != null) {
+ modalContainerPanel.add(new ReportTemplateToHTML(result.getReport()));
+ }
+
+ }
+ });
+
modal.show();
- }else
+ } else
geoNaMainForm.enableButtonSave(true);
-
+
}
});
-
+
appManagerBus.addHandler(CreateNewProjectEvent.TYPE, new CreateNewProjectEventHandler() {
-
+
@Override
public void onCreateNewProject(CreateNewProjectEvent newProjectEvent) {
-
+
// means the form was not submitted
if (savedMap.size() == 0) {
boolean confirm = Window.confirm(
@@ -345,10 +368,10 @@ public class GeoPortalDataEntryApp implements EntryPoint {
if (confirm)
buildNewCards(orderedCards);
} else if (projectSavedWithSuccess) {
- //means the project has been saved
+ // means the project has been saved
buildNewCards(orderedCards);
} else {
- //means the project reported one ore more errors after the submit
+ // means the project reported one ore more errors after the submit
boolean confirm = Window.confirm("Creating a new project, the web-forms will be cleaned, Confirm?");
if (confirm)
buildNewCards(orderedCards);
@@ -356,37 +379,159 @@ public class GeoPortalDataEntryApp implements EntryPoint {
}
});
-
+
appManagerBus.addHandler(GetListOfRecordsEvent.TYPE, new GetListOfRecordsEventHandler() {
-
+
@Override
public void onGetList(GetListOfRecordsEvent getListOfRecordsEvent) {
-
- GeonaRecordsPaginatedView grpw = new GeonaRecordsPaginatedView(appManagerBus,RECORD_TYPE.CONCESSIONE,null, DISPLAY_FIELD.NAME);
- mainPanel.showListOfConcessioniView(grpw);
+
+ GeonaRecordsPaginatedView grpw = new GeonaRecordsPaginatedView(appManagerBus, RECORD_TYPE.CONCESSIONE,
+ null, DISPLAY_FIELD.NAME);
+ mainTabPanel.showListOfConcessioniView(grpw);
+ }
+ });
+
+ appManagerBus.addHandler(ActionOnItemEvent.TYPE, new ActionOnItemEventHandler() {
+
+ @Override
+ public void onDoActionFired(ActionOnItemEvent showItemEvent) {
+
+ if (showItemEvent != null) {
+
+ ACTION_ON_ITEM action = showItemEvent.getAction();
+ List items = showItemEvent.getSelectItems();
+
+ if (items == null)
+ return;
+
+ T item = items.get(0);
+
+ if (item == null)
+ return;
+
+ if (item instanceof ConcessioneDV) {
+
+ final ConcessioneDV concessione = (ConcessioneDV) item;
+ GWT.log("ActionOnItemEvente item: " + concessione);
+
+ switch (action) {
+ case SHOW_ON_MAP:
+ final Modal modal = new Modal(true, true);
+ modal.setCloseVisible(true);
+ final HorizontalPanel hpGetLink = new HorizontalPanel();
+ final LoaderIcon lc = new LoaderIcon("Get link...");
+ hpGetLink.add(lc);
+ modal.add(hpGetLink);
+ final NewBrowserWindow newBrowserWindow = NewBrowserWindow.open("", "_blank", "");
+
+ GeoportalDataEntryServiceAsync.Util.getInstance().getLinksFor(concessione.getItemId(),
+ RECORD_TYPE.CONCESSIONE, new AsyncCallback() {
+ @Override
+ public void onFailure(Throwable caught) {
+ hpGetLink.clear();
+ Alert alert = new Alert(caught.getMessage(), AlertType.ERROR);
+ alert.setClose(false);
+ hpGetLink.add(alert);
+ newBrowserWindow.close();
+ }
+
+ @Override
+ public void onSuccess(GeoNaItemRef result) {
+ String theURL = result.getRestrictedLink().getShortURL() != null
+ ? result.getRestrictedLink().getShortURL()
+ : result.getRestrictedLink().getCompleteURL();
+ newBrowserWindow.setUrl(theURL);
+ modal.hide();
+ }
+ });
+
+ modal.show();
+
+ break;
+ case REMOVE:
+
+ String htmlMsg = "Going to delete the project with:";
+ htmlMsg += "";
+ htmlMsg += "- id: " + concessione.getItemId() + "
";
+ htmlMsg += "- name: " + concessione.getNome() + "
";
+ htmlMsg += "
";
+ htmlMsg += "
";
+ htmlMsg += "This operation cannot be undone. Would you like to proceed?";
+
+ final DialogConfirm dialog = new DialogConfirm(null, "Delete Confirm?", htmlMsg);
+ dialog.center();
+
+ dialog.getYesButton().addClickHandler(new ClickHandler() {
+
+ @Override
+ public void onClick(ClickEvent event) {
+ dialog.hide();
+ final Modal modal = new Modal(true, true);
+ modal.setCloseVisible(true);
+ final HorizontalPanel hp = new HorizontalPanel();
+ final LoaderIcon lc = new LoaderIcon("Deleting Project...");
+ hp.add(lc);
+ modal.add(hp);
+
+ GeoportalDataEntryServiceAsync.Util.getInstance().deleteRecord(
+ concessione.getItemId(), RECORD_TYPE.CONCESSIONE,
+ new AsyncCallback() {
+
+ @Override
+ public void onFailure(Throwable caught) {
+ hp.clear();
+ Alert alert = new Alert(caught.getMessage(), AlertType.ERROR);
+ alert.setClose(false);
+ hp.add(alert);
+
+ }
+
+ @Override
+ public void onSuccess(Boolean result) {
+ if (result) {
+ hp.clear();
+ Alert alert = new Alert("Project '" + concessione.getNome()
+ + "' deleted correclty", AlertType.INFO);
+ alert.setClose(false);
+ hp.add(alert);
+
+ appManagerBus.fireEvent(
+ new GetListOfRecordsEvent(RECORD_TYPE.CONCESSIONE));
+ }
+
+ }
+ });
+ modal.show();
+ }
+ });
+
+ default:
+ break;
+ }
+ }
+
+ }
+
}
});
}
-
private void purgeFileUploaded() {
-
+
MetadataProfileFormBuilderServiceAsync.Util.getInstance().purgeFilesUploaded(new AsyncCallback() {
@Override
public void onFailure(Throwable caught) {
- //silent
-
+ // silent
+
}
@Override
public void onSuccess(Integer result) {
- GWT.log("Purged "+result+" file/s uploaded");
-
+ GWT.log("Purged " + result + " file/s uploaded");
+
}
});
}
-
-
}
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 8b6fba5..cfefca8 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
@@ -3,6 +3,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.client.ConstantsGeoPortalDataEntryApp.RECORD_TYPE;
import org.gcube.portlets.user.geoportaldataentry.shared.CommitReport;
import org.gcube.portlets.user.geoportaldataentry.shared.GeoNaFormDataObject;
import org.gcube.portlets.user.geoportaldataentry.shared.GeonaISConfig;
@@ -16,7 +17,7 @@ import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
*
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
*
- * Aug 4, 2021
+ * Aug 4, 2021
*/
@RemoteServiceRelativePath("geoportaldataentryservice")
public interface GeoportalDataEntryService extends RemoteService {
@@ -40,21 +41,30 @@ public interface GeoportalDataEntryService extends RemoteService {
/**
* Gets the links for.
*
- * @param itemId the item id
+ * @param itemId the item id
* @param recordType the record type
* @return the links for
* @throws Exception the exception
*/
- GeoNaItemRef getLinksFor(String itemId, String recordType) throws Exception;
-
+ GeoNaItemRef getLinksFor(String itemId, RECORD_TYPE recordType) throws Exception;
/**
* Gets the list concessioni.
*
- * @param start the start
+ * @param start the start
* @param offset the offset
+ * @param reloadFromService the reload from service
* @return the list concessioni
* @throws Exception the exception
*/
- SearchedData getListConcessioni(Integer start, Integer offset) throws Exception;
+ SearchedData getListConcessioni(Integer start, Integer offset, boolean reloadFromService) throws Exception;
+
+ /**
+ * Delete record.
+ *
+ * @param itemId the item id
+ * @param recordType the record type
+ * @return true, if successful
+ */
+ boolean deleteRecord(String itemId, RECORD_TYPE 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 902f1c4..a263630 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
@@ -3,6 +3,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.client.ConstantsGeoPortalDataEntryApp.RECORD_TYPE;
import org.gcube.portlets.user.geoportaldataentry.shared.CommitReport;
import org.gcube.portlets.user.geoportaldataentry.shared.GeoNaFormDataObject;
import org.gcube.portlets.user.geoportaldataentry.shared.GeonaISConfig;
@@ -43,8 +44,11 @@ public interface GeoportalDataEntryServiceAsync
void getGeonaInitConfig(AsyncCallback callback);
- void getLinksFor(String itemId, String recordType, AsyncCallback callback);
+ void getLinksFor(String itemId, RECORD_TYPE recordType, AsyncCallback callback);
- void getListConcessioni(Integer start, Integer offset, AsyncCallback callback);
+ void getListConcessioni(Integer start, Integer offset, boolean reloadFromService, AsyncCallback callback);
+
+
+ void deleteRecord(String itemId, RECORD_TYPE recordType, AsyncCallback callback);
}
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/GeonaMainPanel.java b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/GeonaMainPanel.java
deleted file mode 100644
index 652b6bb..0000000
--- a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/GeonaMainPanel.java
+++ /dev/null
@@ -1,101 +0,0 @@
-package org.gcube.portlets.user.geoportaldataentry.client.ui;
-
-import org.gcube.portlets.user.geoportaldataentry.client.ui.form.GeonaDataEntryMainForm;
-import org.gcube.portlets.user.geoportaldataentry.client.ui.utils.LoaderIcon;
-
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.event.shared.HandlerManager;
-import com.google.gwt.uibinder.client.UiBinder;
-import com.google.gwt.uibinder.client.UiField;
-import com.google.gwt.user.client.ui.Composite;
-import com.google.gwt.user.client.ui.HTMLPanel;
-import com.google.gwt.user.client.ui.VerticalPanel;
-import com.google.gwt.user.client.ui.Widget;
-
-/**
- * The Class GeonaMainPanel.
- *
- * @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
- *
- * Oct 13, 2020
- */
-public class GeonaMainPanel extends Composite {
-
- /** The geona main form panel. */
- @UiField
- HTMLPanel geonaMainFormPanel;
-
- @UiField
- HTMLPanel geonaListOfConcessioniPanel;
-
- /** The loader. */
- @UiField
- LoaderIcon loader;
-
- @UiField
- GeonaNavigationBar geonaNavigationBar;
-
- private HandlerManager appManagerBus;
-
- /** The ui binder. */
- private static GeonaMainPanelUiBinder uiBinder = GWT.create(GeonaMainPanelUiBinder.class);
-
- /**
- * The Interface GeonaMainPanelUiBinder.
- *
- * @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
- *
- * Oct 13, 2020
- */
- interface GeonaMainPanelUiBinder extends UiBinder {
- }
-
- /**
- * Instantiates a new geona main panel.
- *
- * @param appManagerBus
- */
- public GeonaMainPanel(HandlerManager appManagerBus) {
- initWidget(uiBinder.createAndBindUi(this));
- this.appManagerBus = appManagerBus;
- geonaNavigationBar.setAppManagerBus(appManagerBus);
- }
-
- /**
- * Adds the form panel.
- *
- * @param formPanel the form panel
- */
- public void addFormPanel(GeonaDataEntryMainForm formPanel) {
- geonaListOfConcessioniPanel.setVisible(false);
- geonaMainFormPanel.add(formPanel);
- geonaMainFormPanel.setVisible(true);
- }
-
- public void showListOfConcessioniView(GeonaRecordsPaginatedView grpw) {
- setFormPanelVisible(false);
- geonaListOfConcessioniPanel.clear();
- VerticalPanel htmllPanel = new VerticalPanel();
- htmllPanel.add(grpw.getCellPanel());
- htmllPanel.add(grpw.getPagerPanel());
- geonaListOfConcessioniPanel.add(htmllPanel);
- }
-
- /**
- * Sets the loader visible.
- *
- * @param txtHTML the txt HTML
- * @param visible the visible
- */
- public void setLoaderVisible(String txtHTML, boolean visible) {
- loader.setText(txtHTML);
- loader.setVisible(visible);
- }
-
- public void setFormPanelVisible(boolean bool) {
- geonaMainFormPanel.setVisible(bool);
- geonaListOfConcessioniPanel.setVisible(!bool);
-
- }
-
-}
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/GeonaMainPanel.ui.xml b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/GeonaMainPanel.ui.xml
deleted file mode 100644
index bec763b..0000000
--- a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/GeonaMainPanel.ui.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- .important {
- font-weight: bold;
- }
-
- .custom-page-header {
- padding: 10px;
- background-color: #f5f5f5;
- margin-bottom: 10px;
- border: 1px solid #eee;
- }
-
-
- GeoNa
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/GeonaMainTabPanel.java b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/GeonaMainTabPanel.java
new file mode 100644
index 0000000..d934650
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/GeonaMainTabPanel.java
@@ -0,0 +1,142 @@
+package org.gcube.portlets.user.geoportaldataentry.client.ui;
+
+import org.gcube.portlets.user.geoportaldataentry.client.ConstantsGeoPortalDataEntryApp.RECORD_TYPE;
+import org.gcube.portlets.user.geoportaldataentry.client.events.CreateNewProjectEvent;
+import org.gcube.portlets.user.geoportaldataentry.client.events.GetListOfRecordsEvent;
+import org.gcube.portlets.user.geoportaldataentry.client.ui.form.GeonaDataEntryMainForm;
+import org.gcube.portlets.user.geoportaldataentry.client.ui.table.ItemsTable.DISPLAY_FIELD;
+import org.gcube.portlets.user.geoportaldataentry.client.ui.utils.LoaderIcon;
+
+import com.github.gwtbootstrap.client.ui.NavLink;
+import com.github.gwtbootstrap.client.ui.Tab;
+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.uibinder.client.UiBinder;
+import com.google.gwt.uibinder.client.UiField;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.HTMLPanel;
+import com.google.gwt.user.client.ui.VerticalPanel;
+import com.google.gwt.user.client.ui.Widget;
+
+/**
+ * The Class GeonaMainTabPanel.
+ *
+ * @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
+ *
+ * Aug 5, 2021
+ */
+public class GeonaMainTabPanel extends Composite {
+
+ private static GeonaMainTabPanelUiBinder uiBinder = GWT.create(GeonaMainTabPanelUiBinder.class);
+
+ /**
+ * The Interface GeonaMainTabPanelUiBinder.
+ *
+ * @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
+ *
+ * Aug 5, 2021
+ */
+ interface GeonaMainTabPanelUiBinder extends UiBinder {
+ }
+
+ /** The geona main form panel. */
+ @UiField
+ HTMLPanel geonaMainFormPanel;
+
+ @UiField
+ HTMLPanel geonaListOfConcessioniPanel;
+
+ /** The loader. */
+ @UiField
+ LoaderIcon loader;
+
+ @UiField
+ NavLink buttCreateNewProject;
+
+ @UiField
+ NavLink buttonReloadConcessioni;
+
+ @UiField
+ Tab tabNewProject;
+
+ @UiField
+ Tab tabGetListOfProjects;
+
+ private HandlerManager appManagerBus;
+
+ /**
+ * Instantiates a new geona main tab panel.
+ *
+ * @param appManagerBus the first name
+ */
+ public GeonaMainTabPanel(HandlerManager appManagerBus) {
+ initWidget(uiBinder.createAndBindUi(this));
+ this.appManagerBus = appManagerBus;
+ bindEvents();
+
+ }
+
+ private void bindEvents() {
+
+ buttCreateNewProject.addClickHandler(new ClickHandler() {
+
+ @Override
+ public void onClick(ClickEvent event) {
+ appManagerBus.fireEvent(new CreateNewProjectEvent());
+
+ }
+ });
+
+ buttonReloadConcessioni.addClickHandler(new ClickHandler() {
+
+ @Override
+ public void onClick(ClickEvent event) {
+ appManagerBus.fireEvent(new GetListOfRecordsEvent(RECORD_TYPE.CONCESSIONE));
+
+ }
+ });
+
+ tabGetListOfProjects.addClickHandler(new ClickHandler() {
+
+ @Override
+ public void onClick(ClickEvent event) {
+ GeonaRecordsPaginatedView grpw = new GeonaRecordsPaginatedView(appManagerBus, RECORD_TYPE.CONCESSIONE,
+ null, DISPLAY_FIELD.NAME);
+ showListOfConcessioniView(grpw);
+
+ }
+ });
+
+ }
+
+ /**
+ * Adds the form panel.
+ *
+ * @param formPanel the form panel
+ */
+ public void addFormPanel(GeonaDataEntryMainForm formPanel) {
+ geonaMainFormPanel.add(formPanel);
+ }
+
+ public void showListOfConcessioniView(GeonaRecordsPaginatedView grpw) {
+ geonaListOfConcessioniPanel.clear();
+ VerticalPanel htmllPanel = new VerticalPanel();
+ htmllPanel.add(grpw.getCellPanel());
+ htmllPanel.add(grpw.getPagerPanel());
+ geonaListOfConcessioniPanel.add(htmllPanel);
+ }
+
+ /**
+ * Sets the loader visible.
+ *
+ * @param txtHTML the txt HTML
+ * @param visible the visible
+ */
+ public void setLoaderVisible(String txtHTML, boolean visible) {
+ loader.setText(txtHTML);
+ loader.setVisible(visible);
+ }
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/GeonaMainTabPanel.ui.xml b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/GeonaMainTabPanel.ui.xml
new file mode 100644
index 0000000..9982f00
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/GeonaMainTabPanel.ui.xml
@@ -0,0 +1,52 @@
+
+
+
+
+ .important {
+ font-weight: bold;
+ }
+
+ .custom-page-header {
+ padding: 10px;
+ background-color: #f5f5f5;
+ margin-bottom: 10px;
+ border: 1px solid #eee;
+ }
+
+
+ GeoNa
+
+
+
+ New Project
+
+ Create New Project
+
+
+
+
+
+
+
+
+
+ List of Projects
+
+ Reload Projects
+
+
+
+
+
+
+
+
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/GeonaNavigationBar.java b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/GeonaNavigationBar.java
deleted file mode 100644
index 53b2b01..0000000
--- a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/GeonaNavigationBar.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package org.gcube.portlets.user.geoportaldataentry.client.ui;
-
-import org.gcube.portlets.user.geoportaldataentry.client.ConstantsGeoPortalDataEntryApp.RECORD_TYPE;
-import org.gcube.portlets.user.geoportaldataentry.client.events.CreateNewProjectEvent;
-import org.gcube.portlets.user.geoportaldataentry.client.events.GetListOfRecordsEvent;
-
-import com.github.gwtbootstrap.client.ui.NavLink;
-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.EventBus;
-import com.google.gwt.event.shared.HandlerManager;
-import com.google.gwt.uibinder.client.UiBinder;
-import com.google.gwt.uibinder.client.UiField;
-import com.google.gwt.user.client.ui.Composite;
-import com.google.gwt.user.client.ui.Widget;
-
-public class GeonaNavigationBar extends Composite {
-
- private static GeonaNavigationBarUiBinder uiBinder = GWT.create(GeonaNavigationBarUiBinder.class);
-
- interface GeonaNavigationBarUiBinder extends UiBinder {
- }
-
- private EventBus eventBus;
-
- public GeonaNavigationBar() {
- initWidget(uiBinder.createAndBindUi(this));
- bindEvents();
- }
-
- private void bindEvents() {
- linkCreateNewProject.addClickHandler(new ClickHandler() {
-
- @Override
- public void onClick(ClickEvent event) {
- appManagerBus.fireEvent(new CreateNewProjectEvent());
-
- }
- });
-
- linkGetListOfRecords.addClickHandler(new ClickHandler() {
-
- @Override
- public void onClick(ClickEvent event) {
- appManagerBus.fireEvent(new GetListOfRecordsEvent(RECORD_TYPE.CONCESSIONE));
-
- }
- });
-
- }
-
- @UiField
- NavLink linkCreateNewProject;
-
- @UiField
- NavLink linkGetListOfRecords;
-
- private HandlerManager appManagerBus;
-
- public GeonaNavigationBar(String firstName) {
- initWidget(uiBinder.createAndBindUi(this));
- }
-
- /**
- * Sets the app manager bus.
- *
- * @param appManagerBus the new app manager bus
- */
- public void setAppManagerBus(HandlerManager appManagerBus) {
- this.appManagerBus = appManagerBus;
- }
-
-}
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/GeonaNavigationBar.ui.xml b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/GeonaNavigationBar.ui.xml
deleted file mode 100644
index 6a54199..0000000
--- a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/GeonaNavigationBar.ui.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
- .important {
- font-weight: bold;
- }
-
-
-
-
- Create new Project
- Get List of Concessioni
-
-
-
-
\ No newline at end of file
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/GeonaRecordsPaginatedView.java b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/GeonaRecordsPaginatedView.java
index 8739d92..37e0b0e 100644
--- a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/GeonaRecordsPaginatedView.java
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/GeonaRecordsPaginatedView.java
@@ -69,7 +69,7 @@ public class GeonaRecordsPaginatedView {
orginalLoadingIndicator = itemsTable.getCellTable().getLoadingIndicator();
initPagination(ITEMS_PER_PAGE);
// loadNewPage(ITEM_START_INDEX, ITEMS_PER_PAGE, false);
- loadItemsForStatus(recordType);
+ loadItemsForType(recordType);
}
/**
@@ -114,8 +114,10 @@ public class GeonaRecordsPaginatedView {
* @param startIdx the start idx
* @param limit the limit
* @param resetStore the reset store
+ * @param invalidCache the invalid cache
*/
- private void loadNewPage(final int startIdx, final int limit, final boolean resetStore) {
+ private void loadNewPage(final int startIdx, final int limit, final boolean resetStore,
+ final boolean invalidCache) {
// initFirstRangeChanged = resetStore;
GWT.log("loadNewPage with parameters [startIdx: " + startIdx + ", limit: " + limit + ", resetStore:"
+ resetStore + "]");
@@ -131,18 +133,18 @@ public class GeonaRecordsPaginatedView {
getTableDataProvider().updateRowCount(ITEMS_PER_PAGE, false);
}
- loadItemsForStatus(newStartIndex, limit, serverStartIndex);
+ loadConcessioni(newStartIndex, limit, serverStartIndex, invalidCache);
}
/**
- * Load items for status.
+ * Load items for type.
*
* @param recordType the record type
*/
- public void loadItemsForStatus(RECORD_TYPE recordType) {
+ public void loadItemsForType(RECORD_TYPE recordType) {
this.recordType = recordType;
getCellTable().setVisibleRangeAndClearData(new Range(ITEM_START_INDEX, ITEMS_PER_PAGE), false);
- loadNewPage(ITEM_START_INDEX, ITEMS_PER_PAGE, true);
+ loadNewPage(ITEM_START_INDEX, ITEMS_PER_PAGE, true, true);
}
/**
@@ -185,20 +187,20 @@ public class GeonaRecordsPaginatedView {
}
/**
- * Load items for status.
+ * Load concessioni.
*
* @param the generic type
* @param newStartIndex the new start index
* @param limit the limit
* @param serverIndex the server index
*/
- private void loadItemsForStatus(int newStartIndex, int limit, int serverIndex) {
+ private void loadConcessioni(int newStartIndex, int limit, int serverIndex, boolean invalidCache) {
showLoading(true);
GWT.log("calling loadItemsForStatus with parameters [startIndex: " + newStartIndex + ", limit: " + limit
+ ", serverIndex:" + serverIndex + "]");
- GeoPortalDataEntryApp.greetingService.getListConcessioni(newStartIndex, limit,
+ GeoPortalDataEntryApp.greetingService.getListConcessioni(newStartIndex, limit, invalidCache,
new AsyncCallback() {
@Override
@@ -242,7 +244,7 @@ public class GeonaRecordsPaginatedView {
public List getSelectItems() {
return itemsTable.getSelectedItems();
}
-
+
// int latestRangeStart = -1;
// int latestRangeLenght = -1;
@@ -269,7 +271,7 @@ public class GeonaRecordsPaginatedView {
int start = range.getStart();
int length = range.getLength();
-
+
// if(latestRangeStart!=start || latestRangeLenght!=length) {
// GWT.log("ranges really changed");
// latestRangeStart = start;
@@ -285,7 +287,7 @@ public class GeonaRecordsPaginatedView {
return;
}
GWT.log("Range changed: " + start + " " + length + " visible count: " + display.getVisibleItemCount());
- loadNewPage(start, length, false);
+ loadNewPage(start, length, false, false);
// eventBus.fireEvent(new TableRangeViewChangedEvent(start, length));
}
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/table/ItemsTable.java b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/table/ItemsTable.java
index c226a1b..fbc93e6 100644
--- a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/table/ItemsTable.java
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/table/ItemsTable.java
@@ -113,25 +113,6 @@ public class ItemsTable extends AbstractItemsCellTable<
this.isAsyncronusTable = dataProvider instanceof ListDataProvider ? false : true;
setEmptyTableMessage(NO_DATA);
-// final CheckboxCell cellCheckBox = new CheckboxCell(true, false);
-// Column checkColumn = new Column(cellCheckBox) {
-// @Override
-// public Boolean getValue(T object) {
-// // Get the value from the selection model.
-// return theSelectionModel.isSelected(object);
-// }
-//
-// @Override
-// public void render(Context context, T object, SafeHtmlBuilder sb) {
-// super.render(context, object, sb);
-// GWT.log("added checkbox: " + cellCheckBox + " to object: " + object);
-// }
-//
-// };
-//
-// sortedCellTable.addColumn(checkColumn, "", false);
-// sortedCellTable.setColumnWidth(checkColumn, 40, Unit.PX);
-
if (this.displayFields.contains(DISPLAY_FIELD.NAME)) {
// NAME
@@ -418,20 +399,6 @@ public class ItemsTable extends AbstractItemsCellTable<
}
-// /**
-// * To date format string.
-// *
-// * @param dateTime the date time
-// * @return the string
-// */
-// public static Date toDisplayDate(Date dateTime) {
-//
-// if(dateTime==null)
-// return null;
-//
-// return new Date(dtformat.format(dateTime));
-// }
-
private String toDisplayAuthors(List authors) {
String toDisplay = "";
if (authors == null)
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/utils/DialogConfirm.java b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/utils/DialogConfirm.java
new file mode 100644
index 0000000..d3e856f
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/utils/DialogConfirm.java
@@ -0,0 +1,152 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.geoportaldataentry.client.ui.utils;
+
+
+
+
+import org.gcube.portlets.user.geoportaldataentry.client.resource.Images;
+
+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.resources.client.ImageResource;
+import com.google.gwt.user.client.ui.Button;
+import com.google.gwt.user.client.ui.DialogBox;
+import com.google.gwt.user.client.ui.DockPanel;
+import com.google.gwt.user.client.ui.HTML;
+import com.google.gwt.user.client.ui.HasHorizontalAlignment;
+import com.google.gwt.user.client.ui.HorizontalPanel;
+import com.google.gwt.user.client.ui.Image;
+import com.google.gwt.user.client.ui.VerticalPanel;
+import com.google.gwt.user.client.ui.Widget;
+
+
+/**
+ * The Class DialogConfirm.
+ *
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ * Feb 19, 2015
+ */
+public class DialogConfirm extends DialogBox implements ClickHandler {
+
+ private DockPanel dock = new DockPanel();
+ private Button yesButton;
+ private VerticalPanel vpContainer;
+ private ImageResource loading = Images.ICONS.loading();
+ private HorizontalPanel hpButtons = new HorizontalPanel();
+ private Button noButton;
+ /**
+ * Instantiates a new dialog confirm.
+ *
+ * @param img the img
+ * @param caption the caption
+ * @param text the text
+ */
+ public DialogConfirm(Image img, String caption, String text) {
+ //getElement().setClassName("gwt-DialogBoxNew");
+ dock.setSpacing(4);
+ dock.setWidth("100%");
+ setText(caption);
+// setHeading(caption);
+
+ yesButton = new Button("Yes");
+ noButton = new Button("No", this);
+
+ noButton.addClickHandler(new ClickHandler() {
+
+ @Override
+ public void onClick(ClickEvent event) {
+ hide();
+ }
+ });
+
+ vpContainer = new VerticalPanel();
+ vpContainer.getElement().getStyle().setMargin(20.0, Unit.PX);
+ vpContainer.add(new HTML(text));
+ hpButtons = new HorizontalPanel();
+ hpButtons.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
+// hpButtons.getElement().getStyle().setMarginTop(20.0, Unit.PX);
+ hpButtons.setSpacing(3);
+ yesButton.getElement().getStyle().setMarginRight(20.0, Unit.PX);
+ hpButtons.add(yesButton);
+ hpButtons.add(noButton);
+
+ dock.add(hpButtons, DockPanel.SOUTH);
+ dock.setCellHorizontalAlignment(hpButtons, DockPanel.ALIGN_CENTER);
+
+ if (img != null)
+ dock.add(img, DockPanel.WEST);
+
+ dock.add(vpContainer, DockPanel.CENTER);
+ setWidget(dock);
+// add(dock);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * com.google.gwt.event.dom.client.ClickHandler#onClick(com.google.gwt.event
+ * .dom.client.ClickEvent)
+ */
+ @Override
+ public void onClick(ClickEvent event) {
+// hide();
+ }
+
+ /**
+ * Loader.
+ *
+ * @param message the message
+ */
+ public void loader(String message){
+ try{
+ dock.remove(hpButtons);
+ }catch(Exception e){}
+ vpContainer.clear();
+ HorizontalPanel hpMask = new HorizontalPanel();
+ hpMask.add(new Image(loading));
+ HTML html = new HTML(message);
+ html.getElement().getStyle().setMarginLeft(5, Unit.PX);
+ hpMask.add(html);
+ vpContainer.add(hpMask);
+ }
+
+ /**
+ * Adds the to center panel.
+ *
+ * @param w the w
+ */
+ public void addToCenterPanel(Widget w) {
+ vpContainer.add(w);
+ }
+
+ /**
+ * Gets the dock.
+ *
+ * @return the dock
+ */
+ public DockPanel getDock() {
+ return dock;
+ }
+
+ /**
+ * Gets the yes button.
+ *
+ * @return the yes button
+ */
+ public Button getYesButton() {
+ return yesButton;
+ }
+
+ /**
+ * Gets the no button.
+ *
+ * @return the no button
+ */
+ public Button getNoButton() {
+ return noButton;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/utils/NewBrowserWindow.java b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/utils/NewBrowserWindow.java
new file mode 100644
index 0000000..6cc3d1f
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/utils/NewBrowserWindow.java
@@ -0,0 +1,30 @@
+package org.gcube.portlets.user.geoportaldataentry.client.ui.utils;
+
+import com.google.gwt.core.client.JavaScriptObject;
+
+/**
+ * @author Francesco Mangiacrapa francesco.mangiacrapa{@literal @}isti.cnr.it
+ * Sep 4, 2013
+ *
+ */
+public final class NewBrowserWindow extends JavaScriptObject {
+ // All types that extend JavaScriptObject must have a protected,
+ // no-args constructor.
+ protected NewBrowserWindow() {
+ }
+
+ public static native NewBrowserWindow open(String url, String target,
+ String options) /*-{
+ return $wnd.open(url, target, options);
+ }-*/;
+
+ public native void close() /*-{
+ this.close();
+ }-*/;
+
+ public native void setUrl(String url) /*-{
+ if (this.location) {
+ this.location = url;
+ }
+ }-*/;
+}
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 d5c9342..27634c5 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
@@ -16,9 +16,11 @@ import org.gcube.application.geoportal.common.rest.MongoConcessioni;
import org.gcube.application.geoportal.common.rest.TempFile;
import org.gcube.application.geoportalcommon.ConvertToDataViewModel;
import org.gcube.application.geoportalcommon.GeoportalCommon;
+import org.gcube.application.geoportalcommon.shared.GeoNaDataViewerProfile;
import org.gcube.application.geoportalcommon.shared.GeoNaItemRef;
import org.gcube.application.geoportalcommon.shared.products.ConcessioneDV;
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.shared.CommitReport;
import org.gcube.portlets.user.geoportaldataentry.shared.CommitReport.STATE;
@@ -391,12 +393,13 @@ public class GeoportalDataEntryServiceImpl extends RemoteServiceServlet implemen
* @throws Exception the exception
*/
@Override
- public GeoNaItemRef getLinksFor(String itemId, String recordType) throws Exception {
+ public GeoNaItemRef getLinksFor(String itemId, RECORD_TYPE recordType) throws Exception {
LOG.info("getLinksFor called");
SessionUtil.getCurrentContext(this.getThreadLocalRequest(), true);
- GeoportalCommon gc = new GeoportalCommon();
- GeoNaItemRef item = new GeoNaItemRef(itemId, recordType.toLowerCase());
+ GeoNaDataViewerProfile grViewerProfile = SessionUtil.getGeportalViewerResourceProfile(getThreadLocalRequest());
+ GeoportalCommon gc = new GeoportalCommon(grViewerProfile);
+ GeoNaItemRef item = new GeoNaItemRef(itemId, recordType.toString().toLowerCase());
item = gc.getPublicLinksFor(item);
LOG.info("Returning: " + item);
return item;
@@ -405,17 +408,20 @@ public class GeoportalDataEntryServiceImpl extends RemoteServiceServlet implemen
/**
* Gets the list concessioni.
*
- * @param start the start
- * @param offset the offset
+ * @param start the start
+ * @param limit the limit
+ * @param reloadFromService if true, ignore the concessioni saved in session and
+ * reload them from service
* @return the list concessioni
* @throws Exception the exception
*/
@Override
- public SearchedData getListConcessioni(Integer start, Integer limit) throws Exception {
- LOG.info("getListConcessioni called wit start: "+start + ", limit: "+limit);
+ public SearchedData getListConcessioni(Integer start, Integer limit, boolean reloadFromService) throws Exception {
+ LOG.info("getListConcessioni called wit start: " + start + ", limit: " + limit);
try {
- List listOfConcessioni = SessionUtil.getListOfConcessioni(getThreadLocalRequest());
+ List listOfConcessioni = SessionUtil.getListOfConcessioni(getThreadLocalRequest(),
+ reloadFromService);
int listConcessioniSize = listOfConcessioni.size();
List toReturn = new ArrayList();
@@ -425,27 +431,17 @@ public class GeoportalDataEntryServiceImpl extends RemoteServiceServlet implemen
toReturn.addAll(listOfConcessioni);
startIndex = 0;
limitIndex = listConcessioniSize;
- }else {
-// if (start < 0)
-// start = 0;
-//
-// if (start > listConcessioniSize)
-// start = listConcessioniSize;
-//
-// if (limit > listConcessioniSize)
-// limit = listConcessioniSize;
-
+ } else {
startIndex = start;
limitIndex = start + limit;
- if(limitIndex>listConcessioniSize) {
+ if (limitIndex > listConcessioniSize) {
limitIndex = listConcessioniSize;
}
}
-
+
SearchedData searchedData = new SearchedData(start, limit, startIndex, false);
searchedData.setTotalItems(listConcessioniSize);
-
toReturn = listOfConcessioni.subList(startIndex, limitIndex);
List toReturnList = new ArrayList(toReturn.size());
@@ -456,7 +452,7 @@ public class GeoportalDataEntryServiceImpl extends RemoteServiceServlet implemen
}
searchedData.setData(toReturnList);
-
+
if (listConcessioniSize == limit || listConcessioniSize == 0) {
LOG.debug("Page completed returning " + listConcessioniSize + " items");
int newOffset = startIndex + start;
@@ -502,4 +498,28 @@ public class GeoportalDataEntryServiceImpl extends RemoteServiceServlet implemen
}
}
}
+
+ @Override
+ public boolean deleteRecord(String itemId, RECORD_TYPE recordType) throws Exception {
+ try {
+
+ if (itemId == null)
+ throw new Exception("Item id is null");
+
+ if (recordType.equals(RECORD_TYPE.CONCESSIONE)) {
+ SessionUtil.getCurrentContext(this.getThreadLocalRequest(), true);
+ ServiceUtil serviceUtil = new ServiceUtil();
+ MongoConcessioni clientMongo = serviceUtil.getInstanceMongoConcessioni();
+ clientMongo.deleteById(itemId);
+ return true;
+ }
+
+ return false;
+
+ } catch (Exception e) {
+ LOG.error("Error on deleting the project with item id: " + itemId, e);
+ throw new Exception(
+ "Error occurred on deleting the project with id: " + itemId + ". Error: " + e.getMessage());
+ }
+ }
}
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataentry/server/SessionUtil.java b/src/main/java/org/gcube/portlets/user/geoportaldataentry/server/SessionUtil.java
index 3a06bde..735e6d3 100644
--- a/src/main/java/org/gcube/portlets/user/geoportaldataentry/server/SessionUtil.java
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataentry/server/SessionUtil.java
@@ -12,6 +12,8 @@ import javax.servlet.http.HttpSession;
import org.gcube.application.geoportal.common.model.legacy.Concessione;
import org.gcube.application.geoportal.common.rest.MongoConcessioni;
+import org.gcube.application.geoportalcommon.GeoportalCommon;
+import org.gcube.application.geoportalcommon.shared.GeoNaDataViewerProfile;
import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
import org.gcube.common.portal.PortalContext;
import org.gcube.common.scope.api.ScopeProvider;
@@ -26,16 +28,16 @@ import org.slf4j.LoggerFactory;
import com.liferay.portal.service.UserLocalServiceUtil;
-
/**
* The Class SessionUtil.
*
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
*
- * Oct 20, 2020
+ * Oct 20, 2020
*/
public class SessionUtil {
+ private static final String GEONA_DATAVIEWER_PROFILE = "GEONA_DATAVIEWER_PROFILE";
private static final String LIST_OF_CONCESSIONI = "LIST_OF_CONCESSIONI";
/** The log. */
private static Logger LOG = LoggerFactory.getLogger(SessionUtil.class);
@@ -49,7 +51,7 @@ public class SessionUtil {
try {
UserLocalServiceUtil.getService();
return true;
- }catch (Exception ex) {
+ } catch (Exception ex) {
LOG.debug("Development Mode ON");
return false;
}
@@ -61,9 +63,9 @@ public class SessionUtil {
* @param request the request
* @return a GcubeUser object
*/
- public static GCubeUser getCurrentUser(HttpServletRequest request){
+ public static GCubeUser getCurrentUser(HttpServletRequest request) {
- if(request == null)
+ if (request == null)
throw new IllegalArgumentException("HttpServletRequest is null!");
PortalContext pContext = PortalContext.getConfiguration();
@@ -75,26 +77,27 @@ public class SessionUtil {
/**
* Retrieve the current scope by using the portal manager.
*
- * @param request the request
- * @param setContextsInThread set the scope and the security token into current thread
+ * @param request the request
+ * @param setContextsInThread set the scope and the security token into current
+ * thread
* @return a GcubeUser object
*/
- public static String getCurrentContext(HttpServletRequest request, boolean setContextsInThread){
+ public static String getCurrentContext(HttpServletRequest request, boolean setContextsInThread) {
- if(request == null)
+ if (request == null)
throw new IllegalArgumentException("HttpServletRequest is null!");
PortalContext pContext = PortalContext.getConfiguration();
String context = pContext.getCurrentScope(request);
-
- if(setContextsInThread) {
+
+ if (setContextsInThread) {
GCubeUser user = getCurrentUser(request);
String token = pContext.getCurrentUserToken(context, user.getUsername());
-
- if(context!=null)
+
+ if (context != null)
ScopeProvider.instance.set(context);
-
- if(token!=null)
+
+ if (token != null)
SecurityTokenProvider.instance.set(token);
}
@@ -107,11 +110,11 @@ public class SessionUtil {
* @param scope the scope
* @return the group from scope
* @throws UserManagementSystemException the user management system exception
- * @throws GroupRetrievalFault the group retrieval fault
+ * @throws GroupRetrievalFault the group retrieval fault
*/
- public static GCubeGroup getGroupFromScope(String scope) throws UserManagementSystemException, GroupRetrievalFault{
+ public static GCubeGroup getGroupFromScope(String scope) throws UserManagementSystemException, GroupRetrievalFault {
- if(scope == null || scope.isEmpty())
+ if (scope == null || scope.isEmpty())
throw new IllegalArgumentException("Scope is missing here!!");
GroupManager gm = new LiferayGroupManager();
@@ -119,18 +122,24 @@ public class SessionUtil {
return gm.getGroup(groupId);
}
-
/**
* Gets the list of concessioni.
*
* @param httpServletRequest the http servlet request
+ * @param reloadFromService the reload from service
* @return the list of concessioni
* @throws Exception the exception
*/
- public static List getListOfConcessioni(HttpServletRequest httpServletRequest) throws Exception {
+ public static List getListOfConcessioni(HttpServletRequest httpServletRequest,
+ boolean reloadFromService) throws Exception {
HttpSession session = httpServletRequest.getSession();
List listOfConcessioni = (List) session.getAttribute(LIST_OF_CONCESSIONI);
+
+ // setting null to force reloading from service
+ if (reloadFromService)
+ listOfConcessioni = null;
+
if (listOfConcessioni == null) {
listOfConcessioni = new ArrayList();
LOG.info("Loading list of concessione from client mongo");
@@ -142,16 +151,40 @@ public class SessionUtil {
while (concessioni.hasNext()) {
Concessione concessione = (Concessione) concessioni.next();
listOfConcessioni.add(concessione);
-
+
}
}
- LOG.debug("Got list of concessioni from client mongo: "+listOfConcessioni);
+ LOG.debug("Got list of concessioni from client mongo: " + listOfConcessioni);
session.setAttribute(LIST_OF_CONCESSIONI, listOfConcessioni);
- LOG.info("Saved in session list of concessioni from client mongo with size: "+listOfConcessioni.size());
- }else
+ LOG.info("Saved in session list of concessioni from client mongo with size: " + listOfConcessioni.size());
+ } else
LOG.info("list of concessioni presents in session");
-
- LOG.info("read list of concessioni with size: "+listOfConcessioni.size());
+
+ LOG.info("read list of concessioni with size: " + listOfConcessioni.size());
return listOfConcessioni;
}
+
+
+ /**
+ * Gets the geportal viewer resource profile.
+ *
+ * @param httpServletRequest the http servlet request
+ * @return the geportal viewer resource profile
+ * @throws Exception the exception
+ */
+ public static GeoNaDataViewerProfile getGeportalViewerResourceProfile(HttpServletRequest httpServletRequest)
+ throws Exception {
+ HttpSession session = httpServletRequest.getSession();
+ GeoNaDataViewerProfile geoNaDataViewerProfile = (GeoNaDataViewerProfile) session
+ .getAttribute(GEONA_DATAVIEWER_PROFILE);
+
+ if (geoNaDataViewerProfile == null) {
+ GeoportalCommon gc = new GeoportalCommon();
+ geoNaDataViewerProfile = gc.getGeoNaDataViewProfile(null);
+ session.setAttribute(GEONA_DATAVIEWER_PROFILE, geoNaDataViewerProfile);
+ }
+
+ return geoNaDataViewerProfile;
+
+ }
}