From 68034c05c7279ccd8f09a74499c17a2bc0bcfc4f Mon Sep 17 00:00:00 2001 From: Giancarlo Panichi Date: Fri, 8 Aug 2014 16:18:04 +0000 Subject: [PATCH] Updated OperationMonitor git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/tabular-data-portlet@99250 82a268e6-3cf1-43bd-a215-b396298e98cf --- .settings/org.eclipse.wst.common.component | 3 + pom.xml | 9 +- .../TemplateApplyProgressBarUpdater.java | 75 -------- .../progress/TemplateApplyProgressDialog.java | 134 ------------- .../TemplateApplyProgressListener.java | 52 ----- .../TemplateApplyProgressUpdater.java | 181 ------------------ .../client/template/TemplateApplyDialog.java | 62 ++++-- .../client/template/TemplateDeleteDialog.java | 2 +- .../user/td/tabulardataportlet.gwt.xml | 6 +- .../user/td/tabulardataportlet.gwt.xml | 6 +- 10 files changed, 70 insertions(+), 460 deletions(-) delete mode 100644 src/main/java/org/gcube/portlets/user/td/client/progress/TemplateApplyProgressBarUpdater.java delete mode 100644 src/main/java/org/gcube/portlets/user/td/client/progress/TemplateApplyProgressDialog.java delete mode 100644 src/main/java/org/gcube/portlets/user/td/client/progress/TemplateApplyProgressListener.java delete mode 100644 src/main/java/org/gcube/portlets/user/td/client/progress/TemplateApplyProgressUpdater.java diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component index 6e75683..e67bc5c 100644 --- a/.settings/org.eclipse.wst.common.component +++ b/.settings/org.eclipse.wst.common.component @@ -22,6 +22,9 @@ uses + + uses + uses diff --git a/pom.xml b/pom.xml index 6e6f6ee..10355f0 100644 --- a/pom.xml +++ b/pom.xml @@ -237,7 +237,14 @@ tabular-data-gwt-service [2.0.0-SNAPSHOT,3.0.0-SNAPSHOT) - + + + + org.gcube.portlets.user + tabular-data-monitor-widget + [1.0.0-SNAPSHOT,2.0.0-SNAPSHOT) + + org.gcube.portlets.user diff --git a/src/main/java/org/gcube/portlets/user/td/client/progress/TemplateApplyProgressBarUpdater.java b/src/main/java/org/gcube/portlets/user/td/client/progress/TemplateApplyProgressBarUpdater.java deleted file mode 100644 index b7ae8c7..0000000 --- a/src/main/java/org/gcube/portlets/user/td/client/progress/TemplateApplyProgressBarUpdater.java +++ /dev/null @@ -1,75 +0,0 @@ -/** - * - */ -package org.gcube.portlets.user.td.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; - -/** - * - * @author "Giancarlo Panichi" - * g.panichi@isti.cnr.it - * - */ -public class TemplateApplyProgressBarUpdater implements TemplateApplyProgressListener { - - protected ProgressBar progressBar; - - /** - * Creates a new {@link ProgressBar} updater. - * @param progressBar the {@link ProgressBar} to update. - */ - public TemplateApplyProgressBarUpdater(ProgressBar progressBar) { - this.progressBar = progressBar; - } - - - /** - * {@inheritDoc} - */ - public void operationComplete(TRId trId) { - Log.info("Completed"); - progressBar.updateProgress(1, "Completed"); - - } - - /** - * {@inheritDoc} - */ - public void operationFailed(Throwable caught, String reason, String failureDetails) { - Log.info("Failed"); - progressBar.updateText("Failed"); - } - - public void operationInitializing() { - Log.info("Inizializing"); - progressBar.updateProgress(0, "Initializing..."); - } - - public void operationUpdate(float elaborated) { - Log.info("Import elaborated: "+elaborated); - if (elaborated == 0) progressBar.updateProgress(0, "Initializing..."); - if (elaborated>0 && elaborated<1) { - Log.trace("progress "+elaborated); - int elab=new Float(elaborated*100).intValue(); - progressBar.updateProgress(elaborated,elab+"% Progress..."); - } - 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("Validations failed"); - - } - -} diff --git a/src/main/java/org/gcube/portlets/user/td/client/progress/TemplateApplyProgressDialog.java b/src/main/java/org/gcube/portlets/user/td/client/progress/TemplateApplyProgressDialog.java deleted file mode 100644 index e886b7c..0000000 --- a/src/main/java/org/gcube/portlets/user/td/client/progress/TemplateApplyProgressDialog.java +++ /dev/null @@ -1,134 +0,0 @@ -package org.gcube.portlets.user.td.client.progress; - - -import org.gcube.portlets.user.td.client.template.TemplateApplyDialog; -import org.gcube.portlets.user.td.tablewidget.client.util.UtilsGXT3; -import org.gcube.portlets.user.td.widgetcommonevent.client.event.ChangeTableRequestEvent; -import org.gcube.portlets.user.td.widgetcommonevent.client.type.ChangeTableRequestType; -import org.gcube.portlets.user.td.widgetcommonevent.client.type.ChangeTableWhy; -import org.gcube.portlets.user.td.widgetcommonevent.shared.TRId; - -import com.allen_sauer.gwt.log.client.Log; -import com.google.web.bindery.event.shared.EventBus; -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.Window; -import com.sencha.gxt.widget.core.client.button.TextButton; -import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer; -import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer.VerticalLayoutData; -import com.sencha.gxt.widget.core.client.event.SelectEvent; -import com.sencha.gxt.widget.core.client.event.SelectEvent.SelectHandler; - - - -/** - * LabelColumnProgressDialog is a Dialog that show progress of change the column label - * - * @author "Giancarlo Panichi" - * g.panichi@isti.cnr.it - * - */ -public class TemplateApplyProgressDialog extends Window implements TemplateApplyProgressListener { - public static final int STATUS_POLLING_DELAY = 1000; - protected String WIDTH = "400px"; - protected String HEIGHT = "120px"; - protected TemplateApplyDialog dialog; - protected EventBus eventBus; - protected TemplateApplyProgressUpdater progressUpdater; - protected TextButton ok; - protected TRId trId; - private ChangeTableWhy why; - - public TemplateApplyProgressDialog(TemplateApplyDialog dialog, EventBus eventBus) { - this.dialog=dialog; - this.eventBus=eventBus; - setWidth(WIDTH); - setHeight(HEIGHT); - setBodyBorder(false); - setResizable(true); - setModal(true); - setHeadingText("Template Apply Progress"); - - trId=null; - - FramedPanel panel=new FramedPanel(); - panel.setHeaderVisible(false); - panel.setBodyBorder(false); - - VerticalLayoutContainer v = new VerticalLayoutContainer(); - - - ProgressBar progressBar = new ProgressBar(); - - ok=new TextButton("OK"); - ok.addSelectHandler(new SelectHandler() { - - public void onSelect(SelectEvent event) { - updateInvocation(); - - } - }); - - v.add(progressBar, new VerticalLayoutData(1, - 1, new Margins(5, 5, 5, 5))); - - panel.add(v); - panel.addButton(ok); - add(panel); - - - progressUpdater = new TemplateApplyProgressUpdater(); - progressUpdater.addListener(new TemplateApplyProgressBarUpdater(progressBar)); - - progressUpdater.addListener(this); - progressUpdater.scheduleRepeating(STATUS_POLLING_DELAY); - show(); - ok.setVisible(false); - - } - - public void operationInitializing() { - // TODO Auto-generated method stub - - } - - public void operationUpdate(float elaborated) { - // TODO Auto-generated method stub - - } - - public void operationComplete(TRId trId) { - Log.debug("Operation Complete return: "+trId.toString()); - this.trId=trId; - why=ChangeTableWhy.TABLEUPDATED; - updateInvocation(); - } - - public void operationFailed(Throwable caught, String reason, - String failureDetails) { - ok.setVisible(true); - this.trId=null; - UtilsGXT3.alert("Error in Template Apply", reason); - - } - - public void updateInvocation(){ - if(trId!=null){ - ChangeTableRequestEvent changeTableRequestEvent= - new ChangeTableRequestEvent(ChangeTableRequestType.TEMPLATEAPPLY, trId, why); - eventBus.fireEvent(changeTableRequestEvent); - } - dialog.hide(); - hide(); - - } - - @Override - public void operationStopped(TRId trId,String reason, String details) { - Log.debug("Operation Stopped: ["+trId.toString()+", "+reason+", "+details+"]"); - ok.setVisible(true); - this.trId=trId; - why=ChangeTableWhy.TABLECURATION; - } -} diff --git a/src/main/java/org/gcube/portlets/user/td/client/progress/TemplateApplyProgressListener.java b/src/main/java/org/gcube/portlets/user/td/client/progress/TemplateApplyProgressListener.java deleted file mode 100644 index 8002c0a..0000000 --- a/src/main/java/org/gcube/portlets/user/td/client/progress/TemplateApplyProgressListener.java +++ /dev/null @@ -1,52 +0,0 @@ -/** - * - */ -package org.gcube.portlets.user.td.client.progress; - -import org.gcube.portlets.user.td.widgetcommonevent.shared.TRId; - - - -/** - * Defines a listener for operation progress. - * - * @author "Giancarlo Panichi" - * g.panichi@isti.cnr.it - * - */ -public interface TemplateApplyProgressListener { - - /** - * Called when the operation is starting. - */ - public void operationInitializing(); - - /** - * Called when there is a progress for the operation. - * @param elaborated the elaborated part. - */ - public void operationUpdate(float elaborated); - - - /** - * Called when the operation is complete. - */ - public void operationComplete(TRId trId); - - /** - * Called when the operation is failed. - * @param caught the failure exception. - * @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/client/progress/TemplateApplyProgressUpdater.java b/src/main/java/org/gcube/portlets/user/td/client/progress/TemplateApplyProgressUpdater.java deleted file mode 100644 index 87e790f..0000000 --- a/src/main/java/org/gcube/portlets/user/td/client/progress/TemplateApplyProgressUpdater.java +++ /dev/null @@ -1,181 +0,0 @@ -/** - * - */ -package org.gcube.portlets.user.td.client.progress; - -import java.util.ArrayList; - -import org.gcube.portlets.user.td.gwtservice.client.rpc.TDGWTServiceAsync; -import org.gcube.portlets.user.td.gwtservice.shared.monitor.TemplateApplyMonitor; -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; - - -/** - * - * @author "Giancarlo Panichi" - * g.panichi@isti.cnr.it - * - */ -public class TemplateApplyProgressUpdater extends Timer { - - protected ArrayList listeners = new ArrayList(); - - /** - * {@inheritDoc} - */ - @Override - public void run() { - Log.debug("requesting operation progress"); - TDGWTServiceAsync.INSTANCE - .getTemplateApplyMonitor(new AsyncCallback() { - - - public void onFailure(Throwable caught) { - cancel(); - Log.error("Error retrieving the operation state", - caught); - String message = getStack(caught); - fireOperationFailed(caught, - "Failed getting operation updates", message); - } - - public void onSuccess(TemplateApplyMonitor result) { - Log.info("retrieved TemplateApplyMonitor: " - + result.getStatus()); - switch (result.getStatus()) { - case INITIALIZING: - Log.info("Initializing..."); - fireOperationInitializing(); - break; - case ABORTED: - cancel(); - Log.info("Template Apply Operation Aborted"); - break; - case IN_PROGRESS: - fireOperationUpdate(result.getProgress()); - break; - case VALIDATING_RULES: - fireOperationUpdate(result.getProgress()); - break; - case STOPPED: - cancel(); - stopMessage(result); - break; - case FAILED: - cancel(); - errorMessage(result); - break; - case SUCCEDED: - cancel(); - Log.info("Fisnish TableId :" - + result.getTrId()); - fireOperationComplete(result.getTrId()); - break; - default: - Log.info("Unknow State"); - break; - } - - } - - - - }); - - } - - protected void errorMessage(TemplateApplyMonitor result) { - Log.info("Template Apply Failed"); - Throwable th = null; - String failure = null; - String details = null; - if (result.getError() != null) { - th = result.getError(); - failure = "Failed Client Library applying template"; - details = result.getError().getLocalizedMessage(); - } else { - th = new Throwable("Failed"); - failure = "Failed Client Library applying template"; - details = "Template Apply failed"; - } - - fireOperationFailed(th, failure, details); - } - - protected void stopMessage(TemplateApplyMonitor result) { - Log.info("Template Apply Stopped"); - String failure = null; - String details = null; - if (result.getError() != null) { - failure = "Stopped applying template"; - details = result.getError().getLocalizedMessage(); - } else { - failure = "Stopped applying template"; - details = "Apply template stopped"; - } - - fireOperationStopped(result.getTrId(),failure, details); - } - - - protected String getStack(Throwable e) { - String message = e.getLocalizedMessage() + " ->
"; - Throwable c = e.getCause(); - if (c != null) - message += getStack(c); - return message; - } - - protected void fireOperationInitializing() { - for (TemplateApplyProgressListener listener : listeners) - listener.operationInitializing(); - } - - protected void fireOperationUpdate(float elaborated) { - for (TemplateApplyProgressListener listener : listeners) - listener.operationUpdate(elaborated); - } - - protected void fireOperationComplete(TRId trId) { - for (TemplateApplyProgressListener listener : listeners) - listener.operationComplete(trId); - } - - protected void fireOperationFailed(Throwable caught, String failure, - String failureDetails) { - for (TemplateApplyProgressListener listener : listeners) - listener.operationFailed(caught, failure, failureDetails); - } - - protected void fireOperationStopped(TRId trId, String reason, String details) { - for (TemplateApplyProgressListener listener : listeners) - listener.operationStopped(trId,reason, details); - } - - - /** - * Add a new {@link TemplateApplyProgressListener} to this - * {@link TemplateApplyProgressUpdater}. - * - * @param listener - * the listener to add. - */ - public void addListener(TemplateApplyProgressListener listener) { - listeners.add(listener); - } - - /** - * Removes the specified {@link TemplateApplyProgressListener} from this - * {@link TemplateApplyProgressUpdater}. - * - * @param listener - * the listener to remove. - */ - public void removeListener(TemplateApplyProgressListener listener) { - listeners.remove(listener); - } -} diff --git a/src/main/java/org/gcube/portlets/user/td/client/template/TemplateApplyDialog.java b/src/main/java/org/gcube/portlets/user/td/client/template/TemplateApplyDialog.java index 85a6546..da42775 100644 --- a/src/main/java/org/gcube/portlets/user/td/client/template/TemplateApplyDialog.java +++ b/src/main/java/org/gcube/portlets/user/td/client/template/TemplateApplyDialog.java @@ -1,10 +1,14 @@ package org.gcube.portlets.user.td.client.template; -import org.gcube.portlets.user.td.client.progress.TemplateApplyProgressDialog; import org.gcube.portlets.user.td.client.resource.TabularDataResources; import org.gcube.portlets.user.td.gwtservice.client.rpc.TDGWTServiceAsync; import org.gcube.portlets.user.td.gwtservice.shared.template.TemplateApplySession; +import org.gcube.portlets.user.td.monitorwidget.client.MonitorDialog; +import org.gcube.portlets.user.td.monitorwidget.client.MonitorDialogListener; import org.gcube.portlets.user.td.tablewidget.client.util.UtilsGXT3; +import org.gcube.portlets.user.td.widgetcommonevent.client.event.ChangeTableRequestEvent; +import org.gcube.portlets.user.td.widgetcommonevent.client.type.ChangeTableRequestType; +import org.gcube.portlets.user.td.widgetcommonevent.client.type.ChangeTableWhy; import org.gcube.portlets.user.td.widgetcommonevent.shared.TRId; import com.allen_sauer.gwt.log.client.Log; @@ -21,7 +25,7 @@ import com.sencha.gxt.widget.core.client.event.SelectEvent.SelectHandler; * g.panichi@isti.cnr.it * */ -public class TemplateApplyDialog extends Window { +public class TemplateApplyDialog extends Window implements MonitorDialogListener{ protected String WIDTH = "650px"; protected String HEIGHT = "530px"; protected TemplateApplySession templateApplySession; @@ -76,7 +80,7 @@ public class TemplateApplyDialog extends Window { this.templateApplySession=templateApplySession; TDGWTServiceAsync.INSTANCE.startTemplateApply(templateApplySession, - new AsyncCallback() { + new AsyncCallback() { public void onFailure(Throwable caught) { Log.debug("Apply Template Error: " + caught.getLocalizedMessage()); @@ -85,8 +89,8 @@ public class TemplateApplyDialog extends Window { } - public void onSuccess(Void result) { - callApplyTemplateProgressDialog(); + public void onSuccess(String taskId) { + openMonitorDialog(taskId); } }); @@ -95,16 +99,50 @@ public class TemplateApplyDialog extends Window { } - + protected void openMonitorDialog(String taskId){ + MonitorDialog monitorDialog=new MonitorDialog(taskId,eventBus); + monitorDialog.add(this); + monitorDialog.show(); + } - protected void callApplyTemplateProgressDialog() { - TemplateApplyProgressDialog d = new TemplateApplyProgressDialog( - this, eventBus); - d.show(); + @Override + public void operationComplete(TRId trId) { + ChangeTableWhy why = ChangeTableWhy.TABLEUPDATED; + ChangeTableRequestEvent changeTableRequestEvent = new ChangeTableRequestEvent( + ChangeTableRequestType.TEMPLATEAPPLY, trId, why); + eventBus.fireEvent(changeTableRequestEvent); + close(); + } + + @Override + public void operationFailed(Throwable caught, String reason, String details) { + UtilsGXT3.alert(reason, details); + close(); + + } + + @Override + public void operationStopped(TRId trId, String reason, String details) { + ChangeTableWhy why = ChangeTableWhy.TABLECURATION; + ChangeTableRequestEvent changeTableRequestEvent = new ChangeTableRequestEvent( + ChangeTableRequestType.TEMPLATEAPPLY, trId, why); + eventBus.fireEvent(changeTableRequestEvent); + close(); + + } + + @Override + public void operationAborted() { + // TODO Auto-generated method stub + + } + + @Override + public void operationPutInBackground() { + // TODO Auto-generated method stub + } - - } diff --git a/src/main/java/org/gcube/portlets/user/td/client/template/TemplateDeleteDialog.java b/src/main/java/org/gcube/portlets/user/td/client/template/TemplateDeleteDialog.java index e0828fe..9583789 100644 --- a/src/main/java/org/gcube/portlets/user/td/client/template/TemplateDeleteDialog.java +++ b/src/main/java/org/gcube/portlets/user/td/client/template/TemplateDeleteDialog.java @@ -72,7 +72,7 @@ public class TemplateDeleteDialog extends Window { protected void templatesDelete(final TemplateDeleteSession templateDeleteSession){ this.templateDeleteSession=templateDeleteSession; - TDGWTServiceAsync.INSTANCE.startTemplateDelete(templateDeleteSession, + TDGWTServiceAsync.INSTANCE.templateDelete(templateDeleteSession, new AsyncCallback() { public void onFailure(Throwable caught) { Log.debug("Delete Template Error: " diff --git a/src/main/java/org/gcube/portlets/user/td/tabulardataportlet.gwt.xml b/src/main/java/org/gcube/portlets/user/td/tabulardataportlet.gwt.xml index def3044..f44212e 100644 --- a/src/main/java/org/gcube/portlets/user/td/tabulardataportlet.gwt.xml +++ b/src/main/java/org/gcube/portlets/user/td/tabulardataportlet.gwt.xml @@ -14,10 +14,12 @@ - - + + + + diff --git a/src/main/resources/org/gcube/portlets/user/td/tabulardataportlet.gwt.xml b/src/main/resources/org/gcube/portlets/user/td/tabulardataportlet.gwt.xml index 2887b35..51ecfdd 100644 --- a/src/main/resources/org/gcube/portlets/user/td/tabulardataportlet.gwt.xml +++ b/src/main/resources/org/gcube/portlets/user/td/tabulardataportlet.gwt.xml @@ -14,10 +14,12 @@ - - + + + +