From 1f720a786bbd51cffe55bef0dcdef6fc28979990 Mon Sep 17 00:00:00 2001 From: "francesco.mangiacrapa" Date: Tue, 28 Jan 2020 12:00:22 +0100 Subject: [PATCH] Managed files already published --- .../client/CkanToZendoPublisherWidget.java | 78 +++++++++--------- .../ui/publishfile/PublishFilesFormView.java | 80 ++++++++++++++----- .../publishfile/PublishFilesFormView.ui.xml | 21 ++++- .../client/view/PublishFileViewManager.java | 19 ++--- .../CkanToZenodoPublisherServiceImpl.java | 1 - 5 files changed, 121 insertions(+), 78 deletions(-) diff --git a/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/CkanToZendoPublisherWidget.java b/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/CkanToZendoPublisherWidget.java index b99bef8..992a37c 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/CkanToZendoPublisherWidget.java +++ b/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/CkanToZendoPublisherWidget.java @@ -1,5 +1,6 @@ package org.gcube.portlets.widgets.ckan2zenodopublisher.client; +import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -24,13 +25,16 @@ import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.rpc.AsyncCallback; +import com.google.gwt.user.client.ui.VerticalPanel; +import com.google.gwt.user.client.ui.Widget; + /** * The Class CkanToZendoPublisherWidget. * * @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it) * - * Dec 9, 2019 + * Jan 28, 2020 */ public class CkanToZendoPublisherWidget { @@ -41,16 +45,24 @@ public class CkanToZendoPublisherWidget { private BasicTabPanel basicTabPanel; private ModalFooter modalFooter; public static Map mapOfFieldsDescriptions = new HashMap(); + private final Modal modal = new Modal(true); + /** + * Instantiates a new ckan to zendo publisher widget. + */ public CkanToZendoPublisherWidget() { ckanToZenodoService = CkanToZenodoPublisherServiceAsync.Util.getInstance(); } + /** + * Publish on zenodo. + * + * @param item the item + */ public void publishOnZenodo(final CatalogueItem item) { - final Modal modal = new Modal(true); modal.setTitle("Upload to Zenodo..."); modal.addStyleName("ckan2zenodo-modal-style"); modal.setCloseVisible(true); @@ -71,20 +83,10 @@ public class CkanToZendoPublisherWidget { loader.setVisible(false); modal.remove(loader); Alert erroLabel = new Alert(); - erroLabel.setClose(false); + //erroLabel.setClose(false); erroLabel.setType(AlertType.ERROR); erroLabel.setText(caught.getLocalizedMessage()); - modal.add(erroLabel); - Button close = new Button("Close"); - close.addClickHandler(new ClickHandler() { - - @Override - public void onClick(ClickEvent event) { - modal.hide(); - } - }); - modal.add(close); - //Window.alert(caught.getMessage()); + showResults(Arrays.asList(erroLabel.asWidget())); } @Override @@ -143,21 +145,11 @@ public class CkanToZendoPublisherWidget { buttonPublish.setEnabled(true); basicTabPanel.getElement().getStyle().setOpacity(1.0); modalFooter.remove(loaderPublishing); - //modal.clear(); Alert erroLabel = new Alert(); - erroLabel.setClose(false); + //erroLabel.setClose(false); erroLabel.setType(AlertType.ERROR); erroLabel.setText(caught.getLocalizedMessage()); - modalFooter.add(erroLabel); - Button close = new Button("Close"); - close.addClickHandler(new ClickHandler() { - - @Override - public void onClick(ClickEvent event) { - modal.hide(); - } - }); - modal.add(close); + showResults(Arrays.asList(erroLabel.asWidget())); } @Override @@ -175,26 +167,14 @@ public class CkanToZendoPublisherWidget { infoLabel.setClose(false); infoLabel.setType(AlertType.INFO); infoLabel.setText(msg); - modalFooter.add(infoLabel); + + showResults(Arrays.asList(infoLabel.asWidget())); } }); }else { - basicTabPanel.managePager(PAGER.BACK); //TO SHOW THE FIELD MISSING -// Alert infoLabel = new Alert(true); -// infoLabel.setAnimation(true); -// infoLabel.set -// infoLabel.setType(AlertType.WARNING); -// infoLabel.setText("Please, check your inputs, a required field is missing..."); -// modalFooter.add(infoLabel); + basicTabPanel.managePager(PAGER.BACK); //TO SHOW THE FIELD/s MISSING } -// else { -// Alert infoLabel = new Alert(); -// infoLabel.setClose(false); -// infoLabel.setType(AlertType.WARNING); -// infoLabel.setText("Please, check your inputs, a required field is missing..."); -// modalFooter.add(infoLabel); -// } } }); @@ -203,4 +183,20 @@ public class CkanToZendoPublisherWidget { modal.show(); } + + /** + * Show results. + * + * @param listWidget the list widget + */ + private void showResults(List listWidget) { + VerticalPanel vp = new VerticalPanel(); + for (Widget widget : listWidget) { + widget.getElement().getStyle().setMarginBottom(5.0, com.google.gwt.dom.client.Style.Unit.PX); + vp.add(widget); + } + modal.insert(vp, 1); + vp.getElement().focus(); + } + } diff --git a/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/ui/publishfile/PublishFilesFormView.java b/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/ui/publishfile/PublishFilesFormView.java index e2476b2..30a8b93 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/ui/publishfile/PublishFilesFormView.java +++ b/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/ui/publishfile/PublishFilesFormView.java @@ -3,69 +3,109 @@ package org.gcube.portlets.widgets.ckan2zenodopublisher.client.ui.publishfile; import java.util.ArrayList; import java.util.List; +import org.gcube.portlets.widgets.ckan2zenodopublisher.shared.wrapped.ZenodoFile; + import com.github.gwtbootstrap.client.ui.Fieldset; import com.google.gwt.core.client.GWT; 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.HorizontalPanel; +import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.Widget; + /** * The Class PublishFilesFormView. * * @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it) * - * Dec 17, 2019 + * Jan 28, 2020 */ public class PublishFilesFormView extends Composite { private static PublishFilesFormViewUiBinder uiBinder = GWT.create(PublishFilesFormViewUiBinder.class); - + @UiField Fieldset field_form_files; + + @UiField + Fieldset field_form_files_already_published; -// @UiField -// Pager pager; - + @UiField + HorizontalPanel panelOfFilesPublished; + private List lstPFV = new ArrayList(); + + private List alreadyPublished = new ArrayList(); /** * The Interface PublishFilesFormViewUiBinder. * * @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it) * - * Dec 17, 2019 + * Dec 17, 2019 */ interface PublishFilesFormViewUiBinder extends UiBinder { } /** * Instantiates a new publish files form view. - * @param tabIndex + * + * @param tabIndex the tab index */ public PublishFilesFormView(int tabIndex) { initWidget(uiBinder.createAndBindUi(this)); - + } - /** - * Adds the file. - * - * @param fileVP the file VP - */ - public void addFile(PublishFileView fileVP) { - lstPFV.add(fileVP); - field_form_files.add(fileVP); - } - - /** * Gets the list of publishing file view. * * @return the list of publishing file view */ - public List getListOfPublishingFileView(){ + public List getListOfPublishingFileView() { return lstPFV; } + /** + * Adds the file. + * + * @param file the file + * @return the publish file view if is a file to publish + */ + public PublishFileView addFile(ZenodoFile file) { + + PublishFileView pv = null; + if (file.getIsAlreadyPublished()) { + + Label alert = new Label(); + alert.setText(file.getFilename()); + panelOfFilesPublished.add(alert); + field_form_files_already_published.setVisible(true); + alreadyPublished.add(file); + + }else { + pv = new PublishFileView(file); + pv.getField_file_name().setValue(file.getFilename()); + pv.getSwitchButton().setValue(true); + lstPFV.add(pv); + field_form_files.add(pv); + } + return pv; + } + + /** + * Gets the already published. + * + * @return the already published + */ + public List getAlreadyPublished() { + return alreadyPublished; + } + + public Fieldset getField_form_files_already_published() { + return field_form_files_already_published; + } + } diff --git a/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/ui/publishfile/PublishFilesFormView.ui.xml b/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/ui/publishfile/PublishFilesFormView.ui.xml index 7dce4a8..9cb26f6 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/ui/publishfile/PublishFilesFormView.ui.xml +++ b/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/ui/publishfile/PublishFilesFormView.ui.xml @@ -10,16 +10,31 @@ .noBorder { border: 0px; } + + .maring-top-high { + margin-top: 30px; + } + + .margin-left-files-published { + margin-left: 20px; + } + + + File/s already published on Zenodo + + + - Select the file/s to upload... + Select the file/s to upload - - \ No newline at end of file diff --git a/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/view/PublishFileViewManager.java b/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/view/PublishFileViewManager.java index 699ad2c..0139486 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/view/PublishFileViewManager.java +++ b/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/view/PublishFileViewManager.java @@ -8,6 +8,7 @@ import org.gcube.portlets.widgets.ckan2zenodopublisher.client.ui.publishfile.Pub import org.gcube.portlets.widgets.ckan2zenodopublisher.shared.wrapped.ZenodoFile; import com.google.gwt.user.client.ui.Composite; +import com.google.gwt.user.client.ui.HTML; public class PublishFileViewManager { @@ -25,23 +26,15 @@ public class PublishFileViewManager { if (listFiles != null) { for (ZenodoFile file : listFiles) { - PublishFileView pfv = addFileForPublishing(file); - publishFileFormView.addFile(pfv); + publishFileFormView.addFile(file); + } + + if(publishFileFormView.getAlreadyPublished().size()>0) { + publishFileFormView.getField_form_files_already_published().add(new HTML("
")); } } } - private PublishFileView addFileForPublishing(ZenodoFile file) { - PublishFileView pv = new PublishFileView(file); - pv.getField_file_name().setValue(file.getFilename()); - pv.getSwitchButton().setValue(true); - - if(file.getIsAlreadyPublished()) { - pv.hideSwitchButton(true, "File already published on Zenodo"); - } - return pv; - } - public Composite getView(){ return publishFileFormView; } diff --git a/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/server/CkanToZenodoPublisherServiceImpl.java b/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/server/CkanToZenodoPublisherServiceImpl.java index 07049b9..b79c482 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/server/CkanToZenodoPublisherServiceImpl.java +++ b/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/server/CkanToZenodoPublisherServiceImpl.java @@ -18,7 +18,6 @@ import org.gcube.data.publishing.ckan2zenodo.model.faults.TransformationExceptio import org.gcube.data.publishing.ckan2zenodo.model.faults.ZenodoException; import org.gcube.data.publishing.ckan2zenodo.model.zenodo.DepositionMetadata; import org.gcube.data.publishing.ckan2zenodo.model.zenodo.ZenodoDeposition; -import org.gcube.portlets.widgets.ckan2zenodopublisher.client.CkanToZendoPublisherWidgetConstant; import org.gcube.portlets.widgets.ckan2zenodopublisher.client.CkanToZenodoPublisherService; import org.gcube.portlets.widgets.ckan2zenodopublisher.server.configuration.ZenodoFieldsDescriptionsReader; import org.gcube.portlets.widgets.ckan2zenodopublisher.server.converter.ItemToZenodoConverter;