From e30a1cd2628fe0a35070e1a78e2dff448bcfffc7 Mon Sep 17 00:00:00 2001 From: Giancarlo Panichi Date: Fri, 29 Aug 2014 17:31:26 +0000 Subject: [PATCH] Updated OperationMonitor git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/tabular-data-sdmx-export-widget@99352 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../client/SDMXOperationInProgressCard.java | 159 +++++++++++------- 1 file changed, 100 insertions(+), 59 deletions(-) diff --git a/src/main/java/org/gcube/portlets/user/td/sdmxexportwidget/client/SDMXOperationInProgressCard.java b/src/main/java/org/gcube/portlets/user/td/sdmxexportwidget/client/SDMXOperationInProgressCard.java index 59b5fd8..a21a75c 100644 --- a/src/main/java/org/gcube/portlets/user/td/sdmxexportwidget/client/SDMXOperationInProgressCard.java +++ b/src/main/java/org/gcube/portlets/user/td/sdmxexportwidget/client/SDMXOperationInProgressCard.java @@ -5,26 +5,24 @@ package org.gcube.portlets.user.td.sdmxexportwidget.client; import org.gcube.portlets.user.td.gwtservice.client.rpc.TDGWTServiceAsync; import org.gcube.portlets.user.td.gwtservice.shared.exception.TDGWTSessionExpiredException; -import org.gcube.portlets.user.td.gwtservice.shared.monitor.OperationMonitor; -import org.gcube.portlets.user.td.gwtservice.shared.monitor.OperationMonitorSession; import org.gcube.portlets.user.td.gwtservice.shared.sdmx.SDMXExportSession; -import org.gcube.portlets.user.td.monitorwidget.client.MonitorBarUpdater; -import org.gcube.portlets.user.td.monitorwidget.client.MonitorUpdater; -import org.gcube.portlets.user.td.monitorwidget.client.MonitorUpdaterListener; +import org.gcube.portlets.user.td.monitorwidget.client.MonitorDialog; +import org.gcube.portlets.user.td.monitorwidget.client.MonitorDialogListener; import org.gcube.portlets.user.td.widgetcommonevent.client.event.SessionExpiredEvent; import org.gcube.portlets.user.td.widgetcommonevent.client.type.SessionExpiredType; 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; +import com.google.gwt.safehtml.shared.SafeHtmlBuilder; import com.google.gwt.user.client.Command; import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.ui.FlexTable; import com.sencha.gxt.core.client.util.Margins; import com.sencha.gxt.widget.core.client.FramedPanel; -import com.sencha.gxt.widget.core.client.ProgressBar; import com.sencha.gxt.widget.core.client.box.AlertMessageBox; import com.sencha.gxt.widget.core.client.container.BoxLayoutContainer.BoxLayoutData; +import com.sencha.gxt.widget.core.client.container.HtmlLayoutContainer; import com.sencha.gxt.widget.core.client.container.VBoxLayoutContainer; import com.sencha.gxt.widget.core.client.container.VBoxLayoutContainer.VBoxLayoutAlign; import com.sencha.gxt.widget.core.client.event.HideEvent; @@ -37,13 +35,12 @@ import com.sencha.gxt.widget.core.client.event.HideEvent.HideHandler; * */ public class SDMXOperationInProgressCard extends WizardCard implements - MonitorUpdaterListener { + MonitorDialogListener { - public static final int STATUS_POLLING_DELAY = 1000; protected SDMXOperationInProgressCard thisCard; protected SDMXExportSession exportSession; - protected MonitorUpdater progressUpdater; - protected ProgressBar progressBar; + protected TRId newTrId; + protected HtmlLayoutContainer resultField; public SDMXOperationInProgressCard(final SDMXExportSession exportSession) { super("Operation In Progress", ""); @@ -95,12 +92,13 @@ public class SDMXOperationInProgressCard extends WizardCard implements operationInProgressPanel.add(summary, new BoxLayoutData(new Margins(20, 5, 10, 5))); - progressBar = new ProgressBar(); - operationInProgressPanel.add(progressBar, new BoxLayoutData( + resultField = new HtmlLayoutContainer("
"); + + operationInProgressPanel.add(resultField, new BoxLayoutData( new Margins(10, 5, 10, 5))); - setContent(operationInProgressPanel); + resultField.setVisible(false); } @@ -111,15 +109,7 @@ public class SDMXOperationInProgressCard extends WizardCard implements new AsyncCallback() { public void onSuccess(String taskId) { - OperationMonitorSession operationMonitorSession = new OperationMonitorSession( - taskId); - progressUpdater = new MonitorUpdater( - operationMonitorSession); - progressUpdater.addListener(new MonitorBarUpdater( - progressBar)); - - progressUpdater.addListener(thisCard); - progressUpdater.scheduleRepeating(STATUS_POLLING_DELAY); + openMonitorDialog(taskId); } @@ -151,26 +141,28 @@ public class SDMXOperationInProgressCard extends WizardCard implements exportSDMX(); } - @Override - public void monitorInitializing(OperationMonitor operationMonitor) { - + // + protected void openMonitorDialog(String taskId) { + MonitorDialog monitorDialog = new MonitorDialog(taskId, getEventBus()); + monitorDialog.addProgressDialogListener(this); + monitorDialog.show(); } @Override - public void monitorUpdate(OperationMonitor operationMonitor) { - - } - - @Override - public void monitorComplete(final TRId trId, OperationMonitor operationMonitor) { - + public void operationComplete(TRId trId) { + newTrId = trId; + SafeHtmlBuilder safeHtmlBuilder = new SafeHtmlBuilder(); + safeHtmlBuilder + .appendHtmlConstant("
Operation Completed
"); + resultField.setHTML(safeHtmlBuilder.toSafeHtml()); + resultField.setVisible(true); Command sayComplete = new Command() { public void execute() { try { getWizardWindow().close(false); - Log.info("fire Complete: " + trId); + Log.info("fire Complete: " + newTrId); - getWizardWindow().fireCompleted(trId); + getWizardWindow().fireCompleted(newTrId); } catch (Exception e) { Log.error("fire Complete :" + e.getLocalizedMessage()); @@ -182,38 +174,52 @@ public class SDMXOperationInProgressCard extends WizardCard implements setNextButtonVisible(true); getWizardWindow().setEnableNextButton(true); + forceLayout(); + } @Override - public void monitorFailed(Throwable caught, String reason, - String failureDetails, OperationMonitor operationMonitor) { + public void operationFailed(Throwable caught, String reason, String details) { + SafeHtmlBuilder safeHtmlBuilder = new SafeHtmlBuilder(); + safeHtmlBuilder + .appendHtmlConstant("
Operation Failed
"); + resultField.setHTML(safeHtmlBuilder.toSafeHtml()); + resultField.setVisible(true); if (caught instanceof TDGWTSessionExpiredException) { getEventBus() .fireEvent( new SessionExpiredEvent( SessionExpiredType.EXPIREDONSERVER)); } else { - AlertMessageBox d = new AlertMessageBox( - "Error in SDMX Export", reason); + AlertMessageBox d = new AlertMessageBox("Error in SDMX Export", + reason); d.addHideHandler(new HideHandler() { public void onHide(HideEvent event) { } }); d.show(); } + forceLayout(); } @Override - public void monitorStopped(final TRId trId, String reason, String details, OperationMonitor operationMonitor) { + public void operationStopped(TRId trId, String reason, String details) { + newTrId = trId; + SafeHtmlBuilder safeHtmlBuilder = new SafeHtmlBuilder(); + safeHtmlBuilder + .appendHtmlConstant("
Problems in the Operation
"); + resultField.setHTML(safeHtmlBuilder.toSafeHtml()); + resultField.setVisible(true); Command sayComplete = new Command() { public void execute() { try { getWizardWindow().close(false); - Log.info("fire Complete: tabular resource " + trId.getId()); - Log.info("fire Complete: tableId " + trId.getTableId()); + Log.info("fire Complete: tabular resource " + + newTrId.getId()); + Log.info("fire Complete: tableId " + newTrId.getTableId()); - getWizardWindow().fireCompleted(trId); + getWizardWindow().fireCompleted(newTrId); } catch (Exception e) { Log.error("fire Complete :" + e.getLocalizedMessage()); @@ -225,32 +231,67 @@ public class SDMXOperationInProgressCard extends WizardCard implements setNextButtonVisible(true); getWizardWindow().setEnableNextButton(true); + forceLayout(); + } + + @Override + public void operationAborted() { + SafeHtmlBuilder safeHtmlBuilder = new SafeHtmlBuilder(); + safeHtmlBuilder + .appendHtmlConstant("
Operation Aborted
"); + resultField.setHTML(safeHtmlBuilder.toSafeHtml()); + resultField.setVisible(true); + + Command sayComplete = new Command() { + public void execute() { + try { + getWizardWindow().close(false); + Log.info("fire Aborted"); + + getWizardWindow().fireAborted(); + + } catch (Exception e) { + Log.error("fire Aborted :" + e.getLocalizedMessage()); + } + } + }; + + getWizardWindow().setNextButtonCommand(sayComplete); + + setNextButtonVisible(true); + getWizardWindow().setEnableNextButton(true); + forceLayout(); } @Override - public void monitorGeneratingView(OperationMonitor operationMonitor) { - // TODO Auto-generated method stub + public void operationPutInBackground() { + SafeHtmlBuilder safeHtmlBuilder = new SafeHtmlBuilder(); + safeHtmlBuilder + .appendHtmlConstant("
Operation in Background
"); + resultField.setHTML(safeHtmlBuilder.toSafeHtml()); + resultField.setVisible(true); - } + Command sayComplete = new Command() { + public void execute() { + try { + getWizardWindow().close(false); + Log.info("fire Operation In Background"); - @Override - public void monitorValidate(OperationMonitor operationMonitor) { - // TODO Auto-generated method stub + getWizardWindow().fireAborted(); - } + } catch (Exception e) { + Log.error("fire Operation In Background :" + + e.getLocalizedMessage()); + } + } + }; - + getWizardWindow().setNextButtonCommand(sayComplete); - @Override - public void monitorAborted() { - // TODO Auto-generated method stub - - } - - @Override - public void monitorPutInBackground() { - // TODO Auto-generated method stub + setNextButtonVisible(true); + getWizardWindow().setEnableNextButton(true); + forceLayout(); }