diff --git a/pom.xml b/pom.xml index 4c62f08..19d05f0 100644 --- a/pom.xml +++ b/pom.xml @@ -13,7 +13,7 @@ 4.0.0 org.gcube.portlets.user tabular-data-csv-export-widget - 1.0.0-SNAPSHOT + 1.0.1-SNAPSHOT tabular-data-csv-export-widget tabular-data-csv-export-widget allows csv export inside file and workspace diff --git a/src/main/java/org/gcube/portlets/user/td/csvexportwidget/client/CSVOperationInProgressCard.java b/src/main/java/org/gcube/portlets/user/td/csvexportwidget/client/CSVOperationInProgressCard.java index b2b9564..21c8989 100644 --- a/src/main/java/org/gcube/portlets/user/td/csvexportwidget/client/CSVOperationInProgressCard.java +++ b/src/main/java/org/gcube/portlets/user/td/csvexportwidget/client/CSVOperationInProgressCard.java @@ -8,6 +8,7 @@ import org.gcube.portlets.user.td.csvexportwidget.client.progress.CSVExportProgr import org.gcube.portlets.user.td.csvexportwidget.client.progress.CSVExportProgressUpdater; import org.gcube.portlets.user.td.gwtservice.client.rpc.TDGWTServiceAsync; import org.gcube.portlets.user.td.gwtservice.shared.csv.CSVExportSession; +import org.gcube.portlets.user.td.widgetcommonevent.shared.TRId; import org.gcube.portlets.user.td.wizardwidget.client.WizardCard; import com.allen_sauer.gwt.log.client.Log; @@ -24,8 +25,6 @@ import com.sencha.gxt.widget.core.client.container.VBoxLayoutContainer.VBoxLayou import com.sencha.gxt.widget.core.client.event.HideEvent; import com.sencha.gxt.widget.core.client.event.HideEvent.HideHandler; - - /** * * @author "Giancarlo Panichi" File Description: "); description.setText(2, 1, exportSession.getFileDescription()); - FramedPanel summary = new FramedPanel(); summary.setHeadingText("Export Summary"); summary.setWidth(400); @@ -80,26 +78,31 @@ CSVExportProgressListener { new Margins(10, 5, 10, 5))); progressUpdater = new CSVExportProgressUpdater(); - progressUpdater.addListener(new CSVExportProgressBarUpdater(progressBar)); + progressUpdater + .addListener(new CSVExportProgressBarUpdater(progressBar)); progressUpdater.addListener(this); setContent(operationInProgressPanel); } - //columnToImportMask + + // columnToImportMask public void exportCSV() { - TDGWTServiceAsync.INSTANCE.startCSVExport(exportSession, new AsyncCallback() { + TDGWTServiceAsync.INSTANCE.startCSVExport(exportSession, + new AsyncCallback() { - public void onSuccess(Void result) { progressUpdater.scheduleRepeating(STATUS_POLLING_DELAY); } public void onFailure(Throwable caught) { - showErrorAndHide("Error in exportCSV", - "An error occured in exportCSV: "+caught.getLocalizedMessage(), caught.getStackTrace().toString(), caught); + showErrorAndHide( + "Error in exportCSV", + "An error occured in exportCSV: " + + caught.getLocalizedMessage(), caught + .getStackTrace().toString(), caught); } }); } @@ -155,4 +158,29 @@ CSVExportProgressListener { d.show(); } + @Override + public void operationStopped(TRId trId, String reason, String details) { + // final String tableId,final String tableResourceId) { + + Command sayComplete = new Command() { + public void execute() { + try { + getWizardWindow().close(false); + Log.info("fire Complete: tableId"); + + getWizardWindow().fireCompleted(null); + + } catch (Exception e) { + Log.error("fire Complete :" + e.getLocalizedMessage()); + } + } + }; + + getWizardWindow().setNextButtonCommand(sayComplete); + + setNextButtonVisible(true); + getWizardWindow().setEnableNextButton(true); + + } + } diff --git a/src/main/java/org/gcube/portlets/user/td/csvexportwidget/client/progress/CSVExportProgressBarUpdater.java b/src/main/java/org/gcube/portlets/user/td/csvexportwidget/client/progress/CSVExportProgressBarUpdater.java index 16933a1..619b63b 100644 --- a/src/main/java/org/gcube/portlets/user/td/csvexportwidget/client/progress/CSVExportProgressBarUpdater.java +++ b/src/main/java/org/gcube/portlets/user/td/csvexportwidget/client/progress/CSVExportProgressBarUpdater.java @@ -6,6 +6,8 @@ package org.gcube.portlets.user.td.csvexportwidget.client.progress; +import org.gcube.portlets.user.td.widgetcommonevent.shared.TRId; + import com.allen_sauer.gwt.log.client.Log; import com.sencha.gxt.widget.core.client.ProgressBar; @@ -64,5 +66,12 @@ public class CSVExportProgressBarUpdater implements CSVExportProgressListener { if (elaborated == 1) progressBar.updateProgress(1, "Completing..."); } + + @Override + public void operationStopped(TRId trId,String reason, String details) { + Log.debug("Operation Stopped: ["+trId.toString()+", "+reason+", "+details+"]"); + progressBar.updateText("Stopped"); + + } } diff --git a/src/main/java/org/gcube/portlets/user/td/csvexportwidget/client/progress/CSVExportProgressListener.java b/src/main/java/org/gcube/portlets/user/td/csvexportwidget/client/progress/CSVExportProgressListener.java index e956022..14fd2c8 100644 --- a/src/main/java/org/gcube/portlets/user/td/csvexportwidget/client/progress/CSVExportProgressListener.java +++ b/src/main/java/org/gcube/portlets/user/td/csvexportwidget/client/progress/CSVExportProgressListener.java @@ -3,6 +3,8 @@ */ package org.gcube.portlets.user.td.csvexportwidget.client.progress; +import org.gcube.portlets.user.td.widgetcommonevent.shared.TRId; + @@ -38,4 +40,15 @@ public interface CSVExportProgressListener { * @param reason the failure reason. */ public void operationFailed(Throwable caught, String reason, String failureDetails); + + /** + * Called when the operation is stopped + * + * @param trId + * @param reason + * @param details + */ + public void operationStopped(TRId trId, String reason, String details); + + } diff --git a/src/main/java/org/gcube/portlets/user/td/csvexportwidget/client/progress/CSVExportProgressUpdater.java b/src/main/java/org/gcube/portlets/user/td/csvexportwidget/client/progress/CSVExportProgressUpdater.java index ec0d221..156022a 100644 --- a/src/main/java/org/gcube/portlets/user/td/csvexportwidget/client/progress/CSVExportProgressUpdater.java +++ b/src/main/java/org/gcube/portlets/user/td/csvexportwidget/client/progress/CSVExportProgressUpdater.java @@ -7,13 +7,11 @@ import java.util.ArrayList; import org.gcube.portlets.user.td.gwtservice.client.rpc.TDGWTServiceAsync; import org.gcube.portlets.user.td.gwtservice.shared.csv.CSVExportMonitor; +import org.gcube.portlets.user.td.widgetcommonevent.shared.TRId; import com.allen_sauer.gwt.log.client.Log; import com.google.gwt.user.client.Timer; import com.google.gwt.user.client.rpc.AsyncCallback; -import com.sencha.gxt.widget.core.client.box.AlertMessageBox; -import com.sencha.gxt.widget.core.client.event.HideEvent; -import com.sencha.gxt.widget.core.client.event.HideEvent.HideHandler; /** * @@ -69,7 +67,7 @@ public class CSVExportProgressUpdater extends Timer { break; case STOPPED: cancel(); - errorMessage(result); + stopMessage(result); break; case SUCCEDED: cancel(); @@ -105,6 +103,22 @@ public class CSVExportProgressUpdater extends Timer { fireOperationFailed(th, failure, details); } + + + protected void stopMessage(CSVExportMonitor result) { + Log.info("CSV Export Stopped"); + String failure = null; + String details = null; + if (result.getError() != null) { + failure = "Stopped export csv"; + details = result.getError().getLocalizedMessage(); + } else { + failure = "Stopped export csv"; + details = "Stopped export csv"; + } + + fireOperationStopped(result.getTrId(),failure, details); + } protected String getStack(Throwable e) { String message = e.getLocalizedMessage() + " ->
"; @@ -134,6 +148,11 @@ public class CSVExportProgressUpdater extends Timer { for (CSVExportProgressListener listener : listeners) listener.operationFailed(caught, failure, failureDetails); } + + protected void fireOperationStopped(TRId trId, String reason, String details) { + for (CSVExportProgressListener listener : listeners) + listener.operationStopped(trId,reason, details); + } /** * Add a new {@link CSVExportProgressListener} to this