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 @@
-
-
+
+
+
+