From e83336757a63bc97697de2d46fabdc0fe8306e7a Mon Sep 17 00:00:00 2001 From: Giancarlo Panichi Date: Tue, 24 May 2016 14:16:41 +0000 Subject: [PATCH] refs 2521: Explore the possibility to port the StatMan interface onto Dataminer https://support.d4science.org/issues/2521 Added download to file parameters of algorithm git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/data-miner-manager@128801 82a268e6-3cf1-43bd-a215-b396298e98cf --- pom.xml | 3 +- .../client/bean/ComputationStatus.java | 17 ++- .../ComputationValueImagePanel.java | 2 +- .../custom/progress/OrangeProgressBar.css | 50 +++++++ .../custom/progress/OrangeProgressBar.html | 12 ++ .../custom/progress/OrangeProgressBar.java | 18 +++ .../progress/OrangeProgressBarAppearance.java | 132 ++++++++++++++++++ .../client/custom/progress/orange-bg.gif | Bin 0 -> 462 bytes .../custom/progress/orange-progress-bg.gif | Bin 0 -> 99 bytes .../client/dataspace/InputDataSetsPanel.java | 2 +- .../experiments/ComputationStatusPanel.java | 79 +++++++---- .../client/parametersfield/FileFld.java | 125 +++++++++++------ .../client/parametersfield/TabItem.java | 76 ++++++++-- .../client/parametersfield/TabularFld.java | 64 ++++++++- .../client/resources/Resources.java | 63 +-------- .../client/resources/alert.png | Bin 696 -> 0 bytes .../resources/application_side_expand.png | Bin 581 -> 0 bytes .../resources/application_view_list.png | Bin 473 -> 0 bytes .../client/resources/arrow_in.png | Bin 600 -> 0 bytes .../client/resources/arrow_out.png | Bin 594 -> 0 bytes .../client/resources/arrow_redo.png | Bin 625 -> 0 bytes .../client/resources/connector2.png | Bin 2936 -> 0 bytes .../client/resources/inputSpaceImporter.png | Bin 3639 -> 0 bytes .../client/resources/inputSpaceMonitor.png | Bin 4520 -> 0 bytes .../client/resources/logo.png | Bin 4222 -> 0 bytes .../dataminermanager/client/resources/map.png | Bin 804 -> 0 bytes .../client/resources/refresh.png | Bin 947 -> 0 bytes .../server/DataMinerManagerServiceImpl.java | 5 +- .../server/smservice/SClient4WPS.java | 24 +++- .../server/storage/StorageUtil.java | 10 +- 30 files changed, 519 insertions(+), 163 deletions(-) create mode 100644 src/main/java/org/gcube/portlets/user/dataminermanager/client/custom/progress/OrangeProgressBar.css create mode 100644 src/main/java/org/gcube/portlets/user/dataminermanager/client/custom/progress/OrangeProgressBar.html create mode 100644 src/main/java/org/gcube/portlets/user/dataminermanager/client/custom/progress/OrangeProgressBar.java create mode 100644 src/main/java/org/gcube/portlets/user/dataminermanager/client/custom/progress/OrangeProgressBarAppearance.java create mode 100644 src/main/java/org/gcube/portlets/user/dataminermanager/client/custom/progress/orange-bg.gif create mode 100644 src/main/java/org/gcube/portlets/user/dataminermanager/client/custom/progress/orange-progress-bg.gif delete mode 100644 src/main/java/org/gcube/portlets/user/dataminermanager/client/resources/alert.png delete mode 100644 src/main/java/org/gcube/portlets/user/dataminermanager/client/resources/application_side_expand.png delete mode 100644 src/main/java/org/gcube/portlets/user/dataminermanager/client/resources/application_view_list.png delete mode 100644 src/main/java/org/gcube/portlets/user/dataminermanager/client/resources/arrow_in.png delete mode 100644 src/main/java/org/gcube/portlets/user/dataminermanager/client/resources/arrow_out.png delete mode 100644 src/main/java/org/gcube/portlets/user/dataminermanager/client/resources/arrow_redo.png delete mode 100644 src/main/java/org/gcube/portlets/user/dataminermanager/client/resources/connector2.png delete mode 100644 src/main/java/org/gcube/portlets/user/dataminermanager/client/resources/inputSpaceImporter.png delete mode 100644 src/main/java/org/gcube/portlets/user/dataminermanager/client/resources/inputSpaceMonitor.png delete mode 100644 src/main/java/org/gcube/portlets/user/dataminermanager/client/resources/logo.png delete mode 100644 src/main/java/org/gcube/portlets/user/dataminermanager/client/resources/map.png delete mode 100644 src/main/java/org/gcube/portlets/user/dataminermanager/client/resources/refresh.png diff --git a/pom.xml b/pom.xml index 52e2121..17355ad 100644 --- a/pom.xml +++ b/pom.xml @@ -106,7 +106,8 @@ home-library-model runtime - + + org.gcube.common common-authorization diff --git a/src/main/java/org/gcube/portlets/user/dataminermanager/client/bean/ComputationStatus.java b/src/main/java/org/gcube/portlets/user/dataminermanager/client/bean/ComputationStatus.java index 6ac53ad..177ef99 100644 --- a/src/main/java/org/gcube/portlets/user/dataminermanager/client/bean/ComputationStatus.java +++ b/src/main/java/org/gcube/portlets/user/dataminermanager/client/bean/ComputationStatus.java @@ -16,7 +16,7 @@ public class ComputationStatus implements Serializable { private static final long serialVersionUID = -1943128398882978439L; public enum Status { - ACCEPTED, RUNNING, COMPLETE, FAILED + ACCEPTED, RUNNING, COMPLETE, FAILED, CANCELLED; }; private double percentage; @@ -40,12 +40,12 @@ public class ComputationStatus implements Serializable { this.percentage = percentage; this.status = status; } - + public ComputationStatus(DataMinerServiceException error) { super(); this.percentage = 100f; this.status = Status.FAILED; - this.error=error; + this.error = error; } public boolean isComplete() { @@ -63,14 +63,19 @@ public class ComputationStatus implements Serializable { public boolean isAccepted() { return this.status == Status.ACCEPTED; } - + + public boolean isCancelled() { + return this.status == Status.CANCELLED; + } + public boolean isPaused() { return false; - //return this.status == Status.FAILED; + // return this.status == Status.FAILED; } public boolean isTerminated() { - return status == Status.COMPLETE || status == Status.FAILED; + return status == Status.COMPLETE || status == Status.FAILED + || status == Status.CANCELLED; } public double getPercentage() { diff --git a/src/main/java/org/gcube/portlets/user/dataminermanager/client/computations/ComputationValueImagePanel.java b/src/main/java/org/gcube/portlets/user/dataminermanager/client/computations/ComputationValueImagePanel.java index da61dbd..8c054d3 100644 --- a/src/main/java/org/gcube/portlets/user/dataminermanager/client/computations/ComputationValueImagePanel.java +++ b/src/main/java/org/gcube/portlets/user/dataminermanager/client/computations/ComputationValueImagePanel.java @@ -65,7 +65,7 @@ public class ComputationValueImagePanel extends SimpleContainer { v.add(saveImageBtn, new VerticalLayoutData(-1, -1, new Margins(0))); final Image img = new Image(computationValueImage.getValue()); - img.setPixelSize(480, 320); + img.setPixelSize(640, 480); v.add(img, new VerticalLayoutData(1, -1, new Margins(0))); } diff --git a/src/main/java/org/gcube/portlets/user/dataminermanager/client/custom/progress/OrangeProgressBar.css b/src/main/java/org/gcube/portlets/user/dataminermanager/client/custom/progress/OrangeProgressBar.css new file mode 100644 index 0000000..f98a880 --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/dataminermanager/client/custom/progress/OrangeProgressBar.css @@ -0,0 +1,50 @@ +/** +* +*/ +.progressWrapOrange { + border: 1px solid #ffd075; + overflow: hidden; +} + +@sprite .progressInnerOrange { + background-color: #f3ede0; + gwt-image: 'innerBarOrange'; + height: auto; + position: relative; +} + +@sprite .progressBarOrange { + background-color: #ffdf9f; + gwt-image: 'barOrange'; + background-repeat: repeat-x; + background-position: left center; + height: 18px; + border-top-color: #fdefd1; + border-bottom-color: #f9d793; + border-right-color: #ffdd97; +} + +.progressTextOrange { + color: #fff; + text-align: center; + font-size: 11px; + font-weight: bold; + font-family: sans-serif; + padding: 1px 5px; + overflow: hidden; + position: absolute; + z-index: 99; +} + +.progressTextBackOrange { + color: #ffaf0d!important; + z-index: 9 !important; +} + +@if user.agent ie6 ie8 ie9 { + .progressTextBackOrange { + line-height: 15px; + color: #ffaa00!important; + z-index: 9 !important; + } +} \ No newline at end of file diff --git a/src/main/java/org/gcube/portlets/user/dataminermanager/client/custom/progress/OrangeProgressBar.html b/src/main/java/org/gcube/portlets/user/dataminermanager/client/custom/progress/OrangeProgressBar.html new file mode 100644 index 0000000..cfefcb6 --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/dataminermanager/client/custom/progress/OrangeProgressBar.html @@ -0,0 +1,12 @@ +
+
+
+
+
{text}
+
+
+
{text}
+
+
+
+
diff --git a/src/main/java/org/gcube/portlets/user/dataminermanager/client/custom/progress/OrangeProgressBar.java b/src/main/java/org/gcube/portlets/user/dataminermanager/client/custom/progress/OrangeProgressBar.java new file mode 100644 index 0000000..5210840 --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/dataminermanager/client/custom/progress/OrangeProgressBar.java @@ -0,0 +1,18 @@ +package org.gcube.portlets.user.dataminermanager.client.custom.progress; + +import com.sencha.gxt.cell.core.client.ProgressBarCell; +import com.sencha.gxt.widget.core.client.ProgressBar; + +/** + * + * @author Giancarlo Panichi email: g.panichi@isti.cnr.it + * + */ +public class OrangeProgressBar extends ProgressBar { + + public OrangeProgressBar() { + super(new ProgressBarCell(new OrangeProgressBarAppearance())); + } + +} diff --git a/src/main/java/org/gcube/portlets/user/dataminermanager/client/custom/progress/OrangeProgressBarAppearance.java b/src/main/java/org/gcube/portlets/user/dataminermanager/client/custom/progress/OrangeProgressBarAppearance.java new file mode 100644 index 0000000..e71feeb --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/dataminermanager/client/custom/progress/OrangeProgressBarAppearance.java @@ -0,0 +1,132 @@ +package org.gcube.portlets.user.dataminermanager.client.custom.progress; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.resources.client.ClientBundle; +import com.google.gwt.resources.client.CssResource; +import com.google.gwt.resources.client.ImageResource; +import com.google.gwt.resources.client.ImageResource.ImageOptions; +import com.google.gwt.resources.client.ImageResource.RepeatStyle; +import com.google.gwt.safecss.shared.SafeStyles; +import com.google.gwt.safecss.shared.SafeStylesUtils; +import com.google.gwt.safehtml.shared.SafeHtml; +import com.google.gwt.safehtml.shared.SafeHtmlBuilder; +import com.google.gwt.safehtml.shared.SafeHtmlUtils; +import com.sencha.gxt.cell.core.client.ProgressBarCell.ProgressBarAppearance; +import com.sencha.gxt.cell.core.client.ProgressBarCell.ProgressBarAppearanceOptions; +import com.sencha.gxt.core.client.GXT; +import com.sencha.gxt.core.client.XTemplates; +import com.sencha.gxt.core.client.util.Format; + +/** + * + * @author Giancarlo Panichi email: g.panichi@isti.cnr.it + * + */ +public class OrangeProgressBarAppearance implements ProgressBarAppearance { + + public interface OrangeProgressBarResources { + + ImageResource barOrange(); + + ImageResource innerBarOrange(); + + OrangeProgressBarStyle style(); + + } + + public interface OrangeProgressBarStyle extends CssResource { + + String progressBarOrange(); + + String progressInnerOrange(); + + String progressTextOrange(); + + String progressTextBackOrange(); + + String progressWrapOrange(); + + } + + public interface OrangeProgressBarTemplate extends XTemplates { + + @XTemplate(source = "OrangeProgressBar.html") + SafeHtml render(SafeHtml text, OrangeProgressBarStyle style, + SafeStyles wrapStyles, SafeStyles progressBarStyles, + SafeStyles progressTextStyles, SafeStyles widthStyles); + + } + + public interface OrangeProgressBarDefaultResources extends + OrangeProgressBarResources, ClientBundle { + + @Source({ "OrangeProgressBar.css" }) + @Override + OrangeProgressBarStyle style(); + + @Source("orange-progress-bg.gif") + @ImageOptions(repeatStyle = RepeatStyle.Horizontal) + @Override + ImageResource barOrange(); + + @Source("orange-bg.gif") + @ImageOptions(repeatStyle = RepeatStyle.Horizontal) + @Override + ImageResource innerBarOrange(); + } + + private final OrangeProgressBarStyle style; + private OrangeProgressBarTemplate template; + + + public OrangeProgressBarAppearance() { + this( + GWT. create(OrangeProgressBarDefaultResources.class), + GWT. create(OrangeProgressBarTemplate.class)); + } + + public OrangeProgressBarAppearance(OrangeProgressBarResources resources, + OrangeProgressBarTemplate template) { + this.style = resources.style(); + this.style.ensureInjected(); + this.template = template; + } + + @Override + public void render(SafeHtmlBuilder sb, Double value, + ProgressBarAppearanceOptions options) { + value = value == null ? 0 : value; + double valueWidth = value * options.getWidth(); + + int vw = new Double(valueWidth).intValue(); + + String text = options.getProgressText(); + + if (text != null) { + int v = (int) Math.round(value * 100); + text = Format.substitute(text, v); + } + + SafeHtml txt; + if (text == null) { + txt = SafeHtmlUtils.fromSafeConstant(" "); + } else { + txt = SafeHtmlUtils.fromString(text); + } + + int adj = GXT.isIE() ? 4 : 2; + + SafeStyles wrapStyles = SafeStylesUtils.fromTrustedString("width:" + + (options.getWidth() - adj) + "px;"); + SafeStyles progressBarStyles = SafeStylesUtils + .fromTrustedString("width:" + vw + "px;"); + SafeStyles progressTextStyles = SafeStylesUtils + .fromTrustedString("width:" + Math.max(vw - 8, 0) + "px;"); + SafeStyles widthStyles = SafeStylesUtils.fromTrustedString("width:" + + (Math.max(0, options.getWidth() - adj)) + "px;"); + sb.append(template.render(txt, style, wrapStyles, progressBarStyles, + progressTextStyles, widthStyles)); + } + +} diff --git a/src/main/java/org/gcube/portlets/user/dataminermanager/client/custom/progress/orange-bg.gif b/src/main/java/org/gcube/portlets/user/dataminermanager/client/custom/progress/orange-bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..9bc56adc34616b051164d04faf23086d89561756 GIT binary patch literal 462 zcmZ?wbhEHbE->;uO57U{qW1{$6ww&`tk-yKKb(Y$=7#JzrK6+_5Jg2 zAoTLvhZo;Jy!!U>)%TCDzkhu5{nP6opWgoX{O-q>cR#;;`1$qy Uef#w5+vi{3 zzx@93_4ki&zkh!H^YiiWR9Njg^Uo#wPDgX)|Aaot=J#mUSTtB#`*M)s=a+X?!WJ>v0H!R zeR)^i{{27x*NZhZH%qj&w@Y?)_w;s4O_(@Qddk$Pax-Sml$Dt~Z?5dZMT_K@E?cIs za@8tD#nr2nl-6!utGsRdc9mVbcdM%I*{ycy@L~01$B%2AI&tjOIgOJS&Rjlz4c}{iR{SpcTkt>U#sW!?wlmG_ z2|`7Y9jT4Z+5$^GN;Vy7INB}Fo^fZ##)jkl@|+zqmO%|CC#y5Bh&j3GsTYGm@-ZGJ G25SKD2|)t@ literal 0 HcmV?d00001 diff --git a/src/main/java/org/gcube/portlets/user/dataminermanager/client/custom/progress/orange-progress-bg.gif b/src/main/java/org/gcube/portlets/user/dataminermanager/client/custom/progress/orange-progress-bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..8806af1887e121ca8a1d7ac61547f672af327418 GIT binary patch literal 99 zcmZ?wbhEHbWMoKSc+AJ}f3fxdrS|`qJN;Yk`G1AW|CMh4R{H*1<^OL@@V~X8|JH^7 z-x&FSOZ@+>N&mq>hXDvcdKp+GHk|Zay?4i^rI#dG1vp#`B|KKG%Xz&ohlRl!0NHCW AR{#J2 literal 0 HcmV?d00001 diff --git a/src/main/java/org/gcube/portlets/user/dataminermanager/client/dataspace/InputDataSetsPanel.java b/src/main/java/org/gcube/portlets/user/dataminermanager/client/dataspace/InputDataSetsPanel.java index ee565bc..f661762 100644 --- a/src/main/java/org/gcube/portlets/user/dataminermanager/client/dataspace/InputDataSetsPanel.java +++ b/src/main/java/org/gcube/portlets/user/dataminermanager/client/dataspace/InputDataSetsPanel.java @@ -379,7 +379,7 @@ public class InputDataSetsPanel extends FramedPanel { } } catch (Throwable e) { - Log.error("Error in ImputDataSetsPanel: " + e.getLocalizedMessage()); + Log.error("Error in InputDataSetsPanel: " + e.getLocalizedMessage()); e.printStackTrace(); } } diff --git a/src/main/java/org/gcube/portlets/user/dataminermanager/client/experiments/ComputationStatusPanel.java b/src/main/java/org/gcube/portlets/user/dataminermanager/client/experiments/ComputationStatusPanel.java index ae47435..7f7dfa3 100644 --- a/src/main/java/org/gcube/portlets/user/dataminermanager/client/experiments/ComputationStatusPanel.java +++ b/src/main/java/org/gcube/portlets/user/dataminermanager/client/experiments/ComputationStatusPanel.java @@ -7,6 +7,7 @@ import org.gcube.portlets.user.dataminermanager.client.bean.ComputationStatus; import org.gcube.portlets.user.dataminermanager.client.bean.ComputationStatus.Status; import org.gcube.portlets.user.dataminermanager.client.common.EventBusProvider; import org.gcube.portlets.user.dataminermanager.client.custom.progress.GreenProgressBar; +import org.gcube.portlets.user.dataminermanager.client.custom.progress.OrangeProgressBar; import org.gcube.portlets.user.dataminermanager.client.custom.progress.RedProgressBar; import org.gcube.portlets.user.dataminermanager.client.events.CancelComputationExecutionRequestEvent; import org.gcube.portlets.user.dataminermanager.client.rpc.DataMinerPortletServiceAsync; @@ -86,24 +87,25 @@ public class ComputationStatusPanel extends SimpleContainer { vert.add(new HtmlLayoutContainer("

Created, the id is " + computationId.getId() + " [link]

")); - - TextButton equivalentRequestBtn=new TextButton(); + + TextButton equivalentRequestBtn = new TextButton(); equivalentRequestBtn.setText("Show"); equivalentRequestBtn.addSelectHandler(new SelectHandler() { - + @Override public void onSelect(SelectEvent event) { showEquivalentRequestDialog(); - + } - }); - - FieldLabel equivalentRequestLabel=new FieldLabel(equivalentRequestBtn,"Equivalent Get Request"); + + FieldLabel equivalentRequestLabel = new FieldLabel( + equivalentRequestBtn, "Equivalent Get Request"); equivalentRequestLabel.setLabelWidth(140); - vert.add(equivalentRequestLabel, new VerticalLayoutData(-1, -1, new Margins(0))); - + vert.add(equivalentRequestLabel, new VerticalLayoutData(-1, -1, + new Margins(0))); + progressBar = new ProgressBar(); progressBar.updateProgress(0, "Starting..."); vert.add(progressBar, new VerticalLayoutData(1, -1, new Margins(20))); @@ -130,8 +132,9 @@ public class ComputationStatusPanel extends SimpleContainer { } private void showEquivalentRequestDialog() { - EquivalentRequestDialog equivalentRequestDialog=new EquivalentRequestDialog(computationId); - equivalentRequestDialog.show(); + EquivalentRequestDialog equivalentRequestDialog = new EquivalentRequestDialog( + computationId); + equivalentRequestDialog.show(); } private void cancelComputation() { @@ -172,7 +175,8 @@ public class ComputationStatusPanel extends SimpleContainer { if (computationStatus.getError() == null) { errorMessage = new String("Computation Failed!"); } else { - errorMessage = computationStatus.getError().getLocalizedMessage(); + errorMessage = computationStatus.getError() + .getLocalizedMessage(); } Info.display("Failed", "The computation " + computationId.getId() + " of " @@ -191,6 +195,26 @@ public class ComputationStatusPanel extends SimpleContainer { .setMarginBottom(36, Unit.PX); vert.insert(progressBar, index, new VerticalLayoutData(1, -1, new Margins(20))); + } else if (computationStatus.isCancelled()) { + Log.debug("Computation Cancelled"); + String errorMessage; + errorMessage = new String("Computation Cancelled!"); + Info.display("Info", "The computation " + computationId.getId() + + " of " + computationId.getOperatorName() + + " has been cancelled."); + UtilsGXT3.info("Info", + "The computation " + computationId.getId() + " of " + + computationId.getOperatorName() + + " has been cancelled.
" + errorMessage); + int index = vert.getWidgetIndex(progressBar); + vert.remove(index); + // TODO + progressBar = new OrangeProgressBar(); + progressBar.updateProgress(1, "Computation Cancelled"); + progressBar.getElement().getStyle() + .setMarginBottom(36, Unit.PX); + vert.insert(progressBar, index, new VerticalLayoutData(1, -1, + new Margins(20))); } } @@ -198,8 +222,6 @@ public class ComputationStatusPanel extends SimpleContainer { forceLayout(); } - - /** * */ @@ -218,23 +240,21 @@ public class ComputationStatusPanel extends SimpleContainer { } - - /** * @param computationStatus */ private void updateStatus(ComputationStatus computationStatus) { - Log.debug("Conputation Status Panel ::Update Status "+computationStatus); - if (computationStatus.getStatus().compareTo(Status.ACCEPTED)==0) + Log.debug("Conputation Status Panel ::Update Status " + + computationStatus); + if (computationStatus.getStatus().compareTo(Status.ACCEPTED) == 0) progressBar.updateText("Accepted..."); else { double percentage = computationStatus.getPercentage(); - if(percentage==0){ + if (percentage == 0) { progressBar.updateText("Running, 0% Complete"); } else { - progressBar.updateProgress(percentage/100, "Running, " - + percentage - + "% Complete"); + progressBar.updateProgress(percentage / 100, "Running, " + + percentage + "% Complete"); } } forceLayout(); @@ -267,12 +287,15 @@ public class ComputationStatusPanel extends SimpleContainer { @Override public void onSuccess( ComputationStatus computationStatus) { - if (computationStatus.isTerminated()) { - ComputationTimer.this.cancel(); - computationTerminated(computationId, - computationStatus); - } else - updateStatus(computationStatus); + Log.debug("ComputationStatus: "+computationStatus); + if (computationStatus != null) { + if (computationStatus.isTerminated()) { + ComputationTimer.this.cancel(); + computationTerminated(computationId, + computationStatus); + } else + updateStatus(computationStatus); + } } }); } diff --git a/src/main/java/org/gcube/portlets/user/dataminermanager/client/parametersfield/FileFld.java b/src/main/java/org/gcube/portlets/user/dataminermanager/client/parametersfield/FileFld.java index e187fda..97eb1ed 100644 --- a/src/main/java/org/gcube/portlets/user/dataminermanager/client/parametersfield/FileFld.java +++ b/src/main/java/org/gcube/portlets/user/dataminermanager/client/parametersfield/FileFld.java @@ -8,6 +8,8 @@ import java.util.Arrays; import java.util.List; import org.gcube.portlets.user.dataminermanager.client.DataMinerManager; +import org.gcube.portlets.user.dataminermanager.client.common.EventBusProvider; +import org.gcube.portlets.user.dataminermanager.client.events.SessionExpiredEvent; import org.gcube.portlets.user.dataminermanager.client.rpc.DataMinerPortletServiceAsync; import org.gcube.portlets.user.dataminermanager.client.util.UtilsGXT3; import org.gcube.portlets.user.dataminermanager.shared.exception.ExpiredSessionServiceException; @@ -20,6 +22,7 @@ import org.gcube.portlets.widgets.wsexplorer.shared.Item; import org.gcube.portlets.widgets.wsexplorer.shared.ItemType; import com.allen_sauer.gwt.log.client.Log; +import com.google.gwt.user.client.Window; import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.ui.Widget; import com.sencha.gxt.core.client.dom.XDOM; @@ -37,8 +40,8 @@ import com.sencha.gxt.widget.core.client.form.TextField; /** * - * @author Giancarlo Panichi - * email: g.panichi@isti.cnr.it + * @author Giancarlo Panichi email: g.panichi@isti.cnr.it * */ public class FileFld extends AbstractFld { @@ -56,23 +59,25 @@ public class FileFld extends AbstractFld { private HBoxLayoutContainer horiz; + private TextButton downloadButton; + /** * @param parameter */ public FileFld(Parameter parameter) { - super(parameter); + super(parameter); fileParameter = (FileParameter) parameter; - - SimpleContainer tabContainer=new SimpleContainer(); - vp=new VerticalLayoutContainer(); + + SimpleContainer tabContainer = new SimpleContainer(); + vp = new VerticalLayoutContainer(); init(); tabContainer.add(vp, new MarginData(new Margins(0))); - + fieldContainer = new SimpleContainer(); horiz = new HBoxLayoutContainer(); horiz.setPack(BoxLayoutPack.START); horiz.setEnableOverflow(false); - + HtmlLayoutContainer descr; if (fileParameter.getDescription() == null) { @@ -90,11 +95,10 @@ public class FileFld extends AbstractFld { fieldContainer.add(horiz); showNoSelectionField(); - + } - - - private void init(){ + + private void init() { List selectableTypes = new ArrayList(); selectableTypes.add(ItemType.EXTERNAL_FILE); @@ -114,7 +118,6 @@ public class FileFld extends AbstractFld { } else { retrieveFileInformation(item); - } } @@ -142,23 +145,21 @@ public class FileFld extends AbstractFld { wselectDialog.setZIndex(XDOM.getTopZIndex()); selectButton = new TextButton("Select File"); - selectButton.setIcon(DataMinerManager.resources.folderExplore()); + selectButton.setIcon(DataMinerManager.resources.folderExplore()); selectButton.addSelectHandler(new SelectEvent.SelectHandler() { - + @Override public void onSelect(SelectEvent event) { wselectDialog.show(); - + } }); selectButton.setToolTip("Select File"); - - - selectButton2 = new TextButton(""); + selectButton2 = new TextButton(""); selectButton2.setIcon(DataMinerManager.resources.folderExplore()); selectButton2.addSelectHandler(new SelectEvent.SelectHandler() { - + @Override public void onSelect(SelectEvent event) { wselectDialog.show(); @@ -169,21 +170,31 @@ public class FileFld extends AbstractFld { cancelButton = new TextButton(""); cancelButton.setIcon(DataMinerManager.resources.cancel()); cancelButton.addSelectHandler(new SelectEvent.SelectHandler() { - + @Override public void onSelect(SelectEvent event) { selectedFileItem = null; showNoSelectionField(); } }); - + + downloadButton = new TextButton(""); + downloadButton.setIcon(DataMinerManager.resources.fileDownload()); + downloadButton.addSelectHandler(new SelectEvent.SelectHandler() { + + @Override + public void onSelect(SelectEvent event) { + downloadFile(); + } + }); + } private void retrieveFileInformation(final Item item) { Log.debug("Retrieved: " + item); - final ItemDescription itemDescription = new ItemDescription(item.getId(), - item.getName(), item.getOwner(), item.getPath(), item.getType() - .name()); + final ItemDescription itemDescription = new ItemDescription( + item.getId(), item.getName(), item.getOwner(), item.getPath(), + item.getType().name()); DataMinerPortletServiceAsync.INSTANCE.getPublicLink(itemDescription, new AsyncCallback() { @@ -196,8 +207,7 @@ public class FileFld extends AbstractFld { UtilsGXT3.alert("Error", "Expired Session"); } else { - UtilsGXT3.alert( - "Error", + UtilsGXT3.alert("Error", "Error retrieving file informations: " + caught.getLocalizedMessage()); } @@ -214,10 +224,41 @@ public class FileFld extends AbstractFld { } }); - - } + private void downloadFile() { + if (selectedFileItem != null) { + DataMinerPortletServiceAsync.INSTANCE.getPublicLink( + selectedFileItem, new AsyncCallback() { + + @Override + public void onFailure(Throwable caught) { + if (caught instanceof ExpiredSessionServiceException) { + EventBusProvider.INSTANCE + .fireEvent(new SessionExpiredEvent()); + } else { + Log.error("Error downloading file: " + + caught.getLocalizedMessage()); + UtilsGXT3.alert("Error", + caught.getLocalizedMessage()); + } + caught.printStackTrace(); + + } + + @Override + public void onSuccess(String link) { + Log.debug("Retrieved link: " + link); + Window.open(link, selectedFileItem.getName(), ""); + } + + }); + + } else { + UtilsGXT3.info("Attention", "Select a file!"); + } + + } private void showNoSelectionField() { vp.clear(); @@ -228,24 +269,25 @@ public class FileFld extends AbstractFld { private void showFieldWithSelection() { String fileName = selectedFileItem.getName(); - - if(fileName==null|| fileName.isEmpty()){ - fileName="NoName"; + + if (fileName == null || fileName.isEmpty()) { + fileName = "NoName"; } - - TextField tableDescription=new TextField(); + + TextField tableDescription = new TextField(); tableDescription.setValue(fileName); tableDescription.setReadOnly(true); - - HBoxLayoutContainer h=new HBoxLayoutContainer(); - h.add(tableDescription,new BoxLayoutData(new Margins())); - h.add(selectButton2,new BoxLayoutData(new Margins())); - h.add(cancelButton,new BoxLayoutData(new Margins())); + + HBoxLayoutContainer h = new HBoxLayoutContainer(); + h.add(tableDescription, new BoxLayoutData(new Margins())); + h.add(selectButton2, new BoxLayoutData(new Margins())); + h.add(downloadButton, new BoxLayoutData(new Margins())); + h.add(cancelButton, new BoxLayoutData(new Margins())); vp.clear(); vp.add(h); vp.forceLayout(); fieldContainer.forceLayout(); - + } /** @@ -263,7 +305,8 @@ public class FileFld extends AbstractFld { @Override public String getValue() { - return (selectedFileItem == null) ? null : selectedFileItem.getPublicLink(); + return (selectedFileItem == null) ? null : selectedFileItem + .getPublicLink(); } } diff --git a/src/main/java/org/gcube/portlets/user/dataminermanager/client/parametersfield/TabItem.java b/src/main/java/org/gcube/portlets/user/dataminermanager/client/parametersfield/TabItem.java index ccf362d..1d940dd 100644 --- a/src/main/java/org/gcube/portlets/user/dataminermanager/client/parametersfield/TabItem.java +++ b/src/main/java/org/gcube/portlets/user/dataminermanager/client/parametersfield/TabItem.java @@ -5,17 +5,21 @@ import java.util.Arrays; import java.util.List; import org.gcube.portlets.user.dataminermanager.client.DataMinerManager; +import org.gcube.portlets.user.dataminermanager.client.common.EventBusProvider; +import org.gcube.portlets.user.dataminermanager.client.events.SessionExpiredEvent; import org.gcube.portlets.user.dataminermanager.client.rpc.DataMinerPortletServiceAsync; import org.gcube.portlets.user.dataminermanager.client.util.UtilsGXT3; import org.gcube.portlets.user.dataminermanager.shared.data.TableItemSimple; import org.gcube.portlets.user.dataminermanager.shared.exception.ExpiredSessionServiceException; import org.gcube.portlets.user.dataminermanager.shared.parameters.TabularParameter; +import org.gcube.portlets.user.dataminermanager.shared.workspace.ItemDescription; import org.gcube.portlets.widgets.wsexplorer.client.notification.WorkspaceExplorerSelectNotification.WorskpaceExplorerSelectNotificationListener; import org.gcube.portlets.widgets.wsexplorer.client.select.WorkspaceExplorerSelectDialog; import org.gcube.portlets.widgets.wsexplorer.shared.Item; import org.gcube.portlets.widgets.wsexplorer.shared.ItemType; import com.allen_sauer.gwt.log.client.Log; +import com.google.gwt.user.client.Window; import com.google.gwt.user.client.rpc.AsyncCallback; import com.sencha.gxt.core.client.dom.XDOM; import com.sencha.gxt.core.client.util.Margins; @@ -40,6 +44,8 @@ public class TabItem extends HBoxLayoutContainer { private TextButton removeBtn; private TextField tableDescription; private WorkspaceExplorerSelectDialog wselectDialog; + private TextButton downloadButton; + private ItemDescription itemDescriptionSelected; /** * @@ -74,6 +80,8 @@ public class TabItem extends HBoxLayoutContainer { selectButton.setToolTip("Select Data Set"); selectButton2 = new TextButton(""); + selectButton2.setIcon(DataMinerManager.resources.folderExplore()); + selectButton2.setToolTip("Select Another Data Set"); selectButton2.addSelectHandler(new SelectEvent.SelectHandler() { @Override @@ -81,15 +89,23 @@ public class TabItem extends HBoxLayoutContainer { wselectDialog.show(); } }); - - selectButton2.setIcon(DataMinerManager.resources.folderExplore()); - selectButton2.setToolTip("Select Another Data Set"); selectButton2.setVisible(false); + + + downloadButton = new TextButton(""); + downloadButton.setIcon(DataMinerManager.resources.fileDownload()); + downloadButton.addSelectHandler(new SelectEvent.SelectHandler() { + @Override + public void onSelect(SelectEvent event) { + downloadFile(); + } + }); + downloadButton.setVisible(false); + + addBtn = new TextButton(""); - addBtn.setIcon(DataMinerManager.resources.add()); - addBtn.addSelectHandler(new SelectEvent.SelectHandler() { @Override @@ -101,7 +117,6 @@ public class TabItem extends HBoxLayoutContainer { removeBtn = new TextButton(""); removeBtn.setIcon(DataMinerManager.resources.cancel()); - removeBtn.addSelectHandler(new SelectEvent.SelectHandler() { @Override @@ -113,18 +128,18 @@ public class TabItem extends HBoxLayoutContainer { }); removeBtn.setVisible(!first); + + setPack(BoxLayoutPack.START); setEnableOverflow(false); add(tableDescription, new BoxLayoutData(new Margins())); add(selectButton, new BoxLayoutData(new Margins())); add(selectButton2, new BoxLayoutData(new Margins())); + add(downloadButton, new BoxLayoutData(new Margins())); add(addBtn, new BoxLayoutData(new Margins())); add(removeBtn, new BoxLayoutData(new Margins())); - - - - + forceLayout(); } @@ -198,6 +213,11 @@ public class TabItem extends HBoxLayoutContainer { } private void retrieveTableInformation(Item item) { + Log.debug("Retrieved: " + item); + itemDescriptionSelected = new ItemDescription( + item.getId(), item.getName(), item.getOwner(), item.getPath(), + item.getType().name()); + DataMinerPortletServiceAsync.INSTANCE.retrieveTableInformation(item, new AsyncCallback() { @@ -226,6 +246,41 @@ public class TabItem extends HBoxLayoutContainer { }); } + + private void downloadFile() { + if (itemDescriptionSelected != null) { + DataMinerPortletServiceAsync.INSTANCE.getPublicLink( + itemDescriptionSelected, new AsyncCallback() { + + @Override + public void onFailure(Throwable caught) { + if (caught instanceof ExpiredSessionServiceException) { + EventBusProvider.INSTANCE + .fireEvent(new SessionExpiredEvent()); + } else { + Log.error("Error downloading table: " + + caught.getLocalizedMessage()); + UtilsGXT3.alert("Error", + caught.getLocalizedMessage()); + } + caught.printStackTrace(); + + } + + @Override + public void onSuccess(String link) { + Log.debug("Retrieved link: " + link); + Window.open(link, itemDescriptionSelected.getName(), ""); + } + + }); + + } else { + UtilsGXT3.info("Attention", "Select a Table!"); + } + + } + /** * */ @@ -242,6 +297,7 @@ public class TabItem extends HBoxLayoutContainer { tableDescription.setVisible(true); selectButton.setVisible(false); selectButton2.setVisible(true); + downloadButton.setVisible(true); parent.forceLayout(); } catch (Throwable e) { diff --git a/src/main/java/org/gcube/portlets/user/dataminermanager/client/parametersfield/TabularFld.java b/src/main/java/org/gcube/portlets/user/dataminermanager/client/parametersfield/TabularFld.java index cce29ce..00c0e57 100644 --- a/src/main/java/org/gcube/portlets/user/dataminermanager/client/parametersfield/TabularFld.java +++ b/src/main/java/org/gcube/portlets/user/dataminermanager/client/parametersfield/TabularFld.java @@ -8,6 +8,8 @@ import java.util.Arrays; import java.util.List; import org.gcube.portlets.user.dataminermanager.client.DataMinerManager; +import org.gcube.portlets.user.dataminermanager.client.common.EventBusProvider; +import org.gcube.portlets.user.dataminermanager.client.events.SessionExpiredEvent; import org.gcube.portlets.user.dataminermanager.client.events.TabularFldChangeEvent; import org.gcube.portlets.user.dataminermanager.client.events.TabularFldChangeEvent.HasTabularFldChangeEventHandler; import org.gcube.portlets.user.dataminermanager.client.events.TabularFldChangeEvent.TabularFldChangeEventHandler; @@ -17,6 +19,7 @@ import org.gcube.portlets.user.dataminermanager.shared.data.TableItemSimple; import org.gcube.portlets.user.dataminermanager.shared.exception.ExpiredSessionServiceException; import org.gcube.portlets.user.dataminermanager.shared.parameters.Parameter; import org.gcube.portlets.user.dataminermanager.shared.parameters.TabularParameter; +import org.gcube.portlets.user.dataminermanager.shared.workspace.ItemDescription; import org.gcube.portlets.widgets.wsexplorer.client.notification.WorkspaceExplorerSelectNotification.WorskpaceExplorerSelectNotificationListener; import org.gcube.portlets.widgets.wsexplorer.client.select.WorkspaceExplorerSelectDialog; import org.gcube.portlets.widgets.wsexplorer.shared.Item; @@ -25,6 +28,7 @@ import org.gcube.portlets.widgets.wsexplorer.shared.ItemType; import com.allen_sauer.gwt.log.client.Log; import com.google.gwt.event.shared.GwtEvent; import com.google.gwt.event.shared.HandlerRegistration; +import com.google.gwt.user.client.Window; import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.ui.Widget; import com.sencha.gxt.core.client.dom.XDOM; @@ -55,10 +59,13 @@ public class TabularFld extends AbstractFld implements private VerticalLayoutContainer vp; private WorkspaceExplorerSelectDialog wselectDialog; - private TextButton selectButton, selectButton2, cancelButton; + private TextButton selectButton, selectButton2, cancelButton, + downloadButton; private HtmlLayoutContainer templatesList; private TableItemSimple selectedTableItem = null; + private ItemDescription itemDescriptionSelected; private TabularParameter tabularParameter; + /** * @param parameter @@ -78,7 +85,8 @@ public class TabularFld extends AbstractFld implements showNoSelectionField(); } catch (Throwable e) { Log.error("TabularField: " + e.getLocalizedMessage()); - UtilsGXT3.alert("Error", "Error creating Tabular Field: "+e.getLocalizedMessage()); + UtilsGXT3.alert("Error", + "Error creating Tabular Field: " + e.getLocalizedMessage()); e.printStackTrace(); } } @@ -231,6 +239,7 @@ public class TabularFld extends AbstractFld implements selectButton2.setToolTip("Select Another Data Set"); cancelButton = new TextButton(""); + cancelButton.setIcon(DataMinerManager.resources.cancel()); cancelButton.addSelectHandler(new SelectEvent.SelectHandler() { @Override @@ -241,7 +250,15 @@ public class TabularFld extends AbstractFld implements } }); - cancelButton.setIcon(DataMinerManager.resources.cancel()); + downloadButton = new TextButton(""); + downloadButton.setIcon(DataMinerManager.resources.fileDownload()); + downloadButton.addSelectHandler(new SelectEvent.SelectHandler() { + + @Override + public void onSelect(SelectEvent event) { + downloadFile(); + } + }); } catch (Throwable e) { Log.error("TabularField init: " + e.getLocalizedMessage()); e.printStackTrace(); @@ -250,6 +267,12 @@ public class TabularFld extends AbstractFld implements } private void retrieveTableInformation(Item item) { + Log.debug("Retrieved: " + item); + itemDescriptionSelected = new ItemDescription( + item.getId(), item.getName(), item.getOwner(), item.getPath(), + item.getType().name()); + + DataMinerPortletServiceAsync.INSTANCE.retrieveTableInformation(item, new AsyncCallback() { @@ -277,6 +300,40 @@ public class TabularFld extends AbstractFld implements } }); } + + private void downloadFile() { + if (itemDescriptionSelected != null) { + DataMinerPortletServiceAsync.INSTANCE.getPublicLink( + itemDescriptionSelected, new AsyncCallback() { + + @Override + public void onFailure(Throwable caught) { + if (caught instanceof ExpiredSessionServiceException) { + EventBusProvider.INSTANCE + .fireEvent(new SessionExpiredEvent()); + } else { + Log.error("Error downloading table: " + + caught.getLocalizedMessage()); + UtilsGXT3.alert("Error", + caught.getLocalizedMessage()); + } + caught.printStackTrace(); + + } + + @Override + public void onSuccess(String link) { + Log.debug("Retrieved link: " + link); + Window.open(link, itemDescriptionSelected.getName(), ""); + } + + }); + + } else { + UtilsGXT3.info("Attention", "Select a Table!"); + } + + } /** * @@ -306,6 +363,7 @@ public class TabularFld extends AbstractFld implements HBoxLayoutContainer h = new HBoxLayoutContainer(); h.add(tableDescription, new BoxLayoutData(new Margins())); h.add(selectButton2, new BoxLayoutData(new Margins())); + h.add(downloadButton, new BoxLayoutData(new Margins())); h.add(cancelButton, new BoxLayoutData(new Margins())); vp.clear(); vp.add(h); diff --git a/src/main/java/org/gcube/portlets/user/dataminermanager/client/resources/Resources.java b/src/main/java/org/gcube/portlets/user/dataminermanager/client/resources/Resources.java index cb33929..adc9f33 100644 --- a/src/main/java/org/gcube/portlets/user/dataminermanager/client/resources/Resources.java +++ b/src/main/java/org/gcube/portlets/user/dataminermanager/client/resources/Resources.java @@ -1,23 +1,19 @@ package org.gcube.portlets.user.dataminermanager.client.resources; - import com.google.gwt.resources.client.ClientBundle; import com.google.gwt.resources.client.ImageResource; /** * - * @author Giancarlo Panichi - * email: g.panichi@isti.cnr.it + * @author Giancarlo Panichi email: g.panichi@isti.cnr.it * */ public interface Resources extends ClientBundle { - - @Source("logo.png") - ImageResource logo(); @Source("logoLittle.png") ImageResource logoLittle(); - + @Source("goBack.png") ImageResource goBack(); @@ -30,15 +26,9 @@ public interface Resources extends ClientBundle { @Source("inputSpace.png") ImageResource inputSpaceIcon(); - @Source("application_side_expand.png") - ImageResource addOperator(); - @Source("connector1.png") ImageResource workflowConnector1(); - @Source("connector2.png") - ImageResource workflowConnector2(); - @Source("triangle.png") ImageResource startComputation(); @@ -60,70 +50,31 @@ public interface Resources extends ClientBundle { @Source("add.png") ImageResource add(); - @Source("table.png") - ImageResource table(); - - @Source("refresh.png") - ImageResource refresh(); - - @Source("details.png") - ImageResource details(); - - @Source("tableResult.png") - ImageResource tableResult(); - @Source("menuItemComputations.png") ImageResource menuItemComputations(); - + @Source("menuItemExperiment.png") ImageResource menuItemExperiment(); - + @Source("menuItemDataspace.png") ImageResource menuItemInputspace(); @Source("table.png") ImageResource fileDownload(); // TODO change - @Source("ajax-loader.gif") - ImageResource loader(); - @Source("ajax-loader-big.gif") ImageResource loaderBig(); - + @Source("ajax-complete.gif") ImageResource loadingComplete(); - - @Source("inputSpaceImporter.png") - ImageResource inputSpaceImporter(); - - @Source("inputSpaceMonitor.png") - ImageResource inputSpaceMonitor(); @Source("save.png") ImageResource save(); - @Source("alert.png") - ImageResource error(); - - @Source("arrow_out.png") - ImageResource expand(); - - @Source("arrow_in.png") - ImageResource collapse(); - - @Source("application_view_list.png") - ImageResource groupBy(); - - @Source("map.png") - ImageResource map(); - @Source("user_green.png") ImageResource userPerspective(); - + @Source("monitor.png") ImageResource computationPerspective(); - @Source("arrow_redo.png") - ImageResource resubmit(); - } diff --git a/src/main/java/org/gcube/portlets/user/dataminermanager/client/resources/alert.png b/src/main/java/org/gcube/portlets/user/dataminermanager/client/resources/alert.png deleted file mode 100644 index 517725822ba2859be6811af489efc672fe4117df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 696 zcmV;p0!RIcP)uaKl`6H0#EMPSO}g$+@CEq-R{ewSv#FGPK-H!Tc2R3p2_kJF0cu`0*kJtV zjCsgq(?u;Ed+xn+&YijUnDKod{^#N8^`2pX!!LmWNFh!ze2F+%=KVx`#;wi}cP!HRj?vUiNxuPsBu{O~nOELXjlSf5~J5P%I&A zB-h4c)%3h7afr*1RT(5a!ohQN<71Ys0TMXehLPM^z5@17Z^8fgQ$x#zB eD000&0t^5S;vPyKd%pDm0000bXLFrOI}#XAMrnzM!yjS$@!NeFNp5HyTkm?RpyuK%q>=#nO`L` zH==;V1|c9pf>tvp`m*qu(YM#h+5@Fh#;&%E$O|J1=7!iLIYm)$u;VZno}ZxjRuP@|>+C(Q4%^EH7|#@HX#1eW147;PK_BBq1TB ztSj<@D99YKNph?(W`E3bY~OK?cAwzMa0QZtGz8KlA(A^$=I%s7L~>CS1&w->X#C+#Snv+#Q#Y8#3W?Shv&pgYxkM5>5!j*M^V=GM TxI=}Z00000NkvXXu0mjfz>*Jk diff --git a/src/main/java/org/gcube/portlets/user/dataminermanager/client/resources/application_view_list.png b/src/main/java/org/gcube/portlets/user/dataminermanager/client/resources/application_view_list.png deleted file mode 100644 index acc30b853b3740bad231e4daa8e9f5a81f3f757b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 473 zcmV;~0Ve*5P)x=~R!WME*cb6K0H8ItD70ARH|h P00000NkvXXu0mjfzPQHT diff --git a/src/main/java/org/gcube/portlets/user/dataminermanager/client/resources/arrow_in.png b/src/main/java/org/gcube/portlets/user/dataminermanager/client/resources/arrow_in.png deleted file mode 100644 index 745c65134db478a64016d63a7104e585452f2b9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 600 zcmV-e0;m0nP)PbXFR5;7s zk=srhQ51%Gi+LO^77wV16dAzbG@wAMB7&i`(b(8xDqyU&#ij;pOFf{D;3PUo6_qH7 z@zCD%DY)SY{?6Vev}G>5=v^;XviDy5`&RNV6#!MZ;uAv`-s;%-AVco=6~AW@oV#X; zoCz$&Z(d;jHilq%pcXjuFe4{!G(v;>9DU>S79m;;B2ox|%Nj+MJXx5%p2GUiG!j?S z2%Y&cbj&LR9?=RJ#?#^`7Ar|SI}E|PVW`sPXn8=Gxtzq(^&D1yr10dMQz3B4@Y_lP zuSye$7RF#%H`Lg#dZzwixa6krr|(Pf7aR(KLtwFRkwCIM1ACSQfoTSJFpr@l7akX# z@D=Rv9@rED+g2a?Hy@G7U^9C3eb%8a_?P-$1a5i9WKAS#+qN85)~E=vH{A*SvKG1z z?dVFiLHkbgJ49E`%y@DfW=~%tej1}mHwt<_YB9MVMN|yeVJaZ7Jh>K;f_N^45j&cq zYibm9%abEw2)<1>?5kF^y-^EP;Mg%$3H-V=jgh?XuO0tco$p(rOKHJp92n09(Vu4V zFxf1qxGkd?5d9d=dtu7-P^)33OCji3)S!K#g=w8v*PN>ytji{-6HO9rn%8%pKpR5(n-OJ3xTo| zzV{Az-rC_Vje#(D=jSF0=P$d$OcdrqWdZ50OISNyhHKXf!jg068_0ZrhDT>{L~4Gy zBdqY8Z{N|1SMT6qEsm9X5`57DGIJ6{tUiU*w*<03GFWKb!_-I5B@^$yqd8xVVYQKh zR0+dTu)vlxgG|$F-~JTf!pHvB;^}=nIGMw(LqWZ0Ajmc)rbZwghz$N6FuFDPw?M3V zxyd6>bK=mgT-5{T&WPHE+aleX_AmP13}~n2@i(LDRmJ8PMrCl_&@?^QbAJr{3Xe7{ zRYXL~lWa_vCNY#Ts)2%lP|*kDnyzJ7?dSAQ`{;tavxCB5aI&_5*@FmdS#$HE!Hso; z?9Gj1PKm*v6<|v1p?jjC$@D`cYYE)_AVDgN3~tc{;W|CxdRiyDU-Jm$-Iy+k=wIpu zaqU^Lc$`4uXdceI71qtpa9aZ_T0~1>NOA<)R1XMW9DzMQjIr$@2E+2ogl@2IS%W^B gtbN=AP4XIk0RxY;jV+3>Hvj+t07*qoM6N<$f-d$A%>V!Z diff --git a/src/main/java/org/gcube/portlets/user/dataminermanager/client/resources/arrow_redo.png b/src/main/java/org/gcube/portlets/user/dataminermanager/client/resources/arrow_redo.png deleted file mode 100644 index fdc394c7c59b83cc2b876abc41064c75eb365877..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 625 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 JPDHLkV1jO=<7of@ diff --git a/src/main/java/org/gcube/portlets/user/dataminermanager/client/resources/inputSpaceMonitor.png b/src/main/java/org/gcube/portlets/user/dataminermanager/client/resources/inputSpaceMonitor.png deleted file mode 100644 index 9b394e7e52fe768c23fd892b37a0ab3d2cc6172c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4520 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 diff --git a/src/main/java/org/gcube/portlets/user/dataminermanager/client/resources/map.png b/src/main/java/org/gcube/portlets/user/dataminermanager/client/resources/map.png deleted file mode 100644 index f90ef25ec7f1cb0fdae38d9fe2d9edeee9928ef1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 804 zcmV+<1Ka$GP)mbpQb1@7I~O+ue5CWtZi#AZox@gcwb{Xkx^Rf;Ty8yn6DWhJV4kC*wg94<7Vt zlteKm5+jKLV^qM1yt2HO4YZw^&a^Wfzb_m+@y40e_0^+M6ajz$03Zl}fU=sqfA9W} z@#^~O(a%3QB{YI^J_A4y)M^1_vjjn1H`Mc5t@6>y50A!C6seTL>`UqQ7p$DgY@K|> zQm^as;HM{#Qwj<3}(>R-AM4&+cd0t49%y2X`UaCBJg8YmB)K#uA{Z>9n zOp8>WCg#&r06`o8oz6gaIn`fY2FR)ssCr@3rc|5f%`bIJO$zbt__PK3gH51Sff`H}0ZWac9&q~*( zO@qNscV0VSU%X#sYO9)Qx4M=(eR(m}UFhondELHSnO2hr&mMO3 zv6gmw!P2y#u0c!?LPO88NyxOTj>XWm>*77F&55fo9Z?)iynObdfA;SdwVRl$W~G3* zEGt!2+1T-%ja32&!XdoMS_mM#IQK#{6D_nvjYu`GlvO3XdE)qYJJ;7WdKBPATcx`PH%P~GB7YQATl#LGch_eG$1Q5F)%QMP#j1A000McNliru z)&&<0GA=aZe<=U}010qNS#tmY3lRVS3lRZ-WM7d0000DMK}|sb0I`n?{9y$E00Rq2 zL_t(|+Fg@vNK;`H$IspFbZ#>@=caB8b(xA-D1{L=>w}c~A(CFCk_t*PjL4!01fd9v zq7P9Bp;RQ88AWeOmKY{e%Q8f_G~ecCx~7|Z(QV$%dplRI_;TULJ@?-8KleQU^E?Es zze@BMqmpne~CmksA0?)`(xd$l~gB{^|#!+*GBGODdOdP^uKsNC_Dd^SRkBL$F{cP;Jau=h$U!`%MP zFpyv8to}hWX&1hF@Ou%WTIrytrUM+KLX5_dK4cgi!-F=z5_Vi9mSXh z6e$*y+8Lbgm=nukQ+MC@(#HDA1{nSL7yNF2VD#0)DS!kdwjV$Y1Ste2h}kfP_(;_T zal(ubOQG10WF~5OMuMPG%$hlXpcdHqvj&qWCfU{zb{SrtR4j_`GSg68)$C*oM8(Kq z(}9YEpv?`(gn5J=nGJG3;~1NdVmygh5Vi}NPo#+gE?O(-5LdR>x}u%2);I z7H8;OVW|HEgKYUYfI53OFEQ_=EJ>FIf>5DnsK-G4Y3zaV zcWmqEBj`C_7MBaGze|xMBpunfWE}1t&d6TQg8-}(t~r#P<7^=j_e^nSde$Bwfd8=3 VG56oopK1UA002ovPDHLkV1k?=rmp}1 diff --git a/src/main/java/org/gcube/portlets/user/dataminermanager/server/DataMinerManagerServiceImpl.java b/src/main/java/org/gcube/portlets/user/dataminermanager/server/DataMinerManagerServiceImpl.java index 85b05e5..f32ec7e 100644 --- a/src/main/java/org/gcube/portlets/user/dataminermanager/server/DataMinerManagerServiceImpl.java +++ b/src/main/java/org/gcube/portlets/user/dataminermanager/server/DataMinerManagerServiceImpl.java @@ -368,10 +368,7 @@ public class DataMinerManagerServiceImpl extends RemoteServiceServlet implements HttpSession session = this.getThreadLocalRequest().getSession(); ASLSession aslSession = SessionUtil.getASLSession(session); logger.debug("CancelComputation(): " + itemDescription); - Map properties = StorageUtil.getProperties( - aslSession.getUsername(), itemDescription.getId()); - logger.debug("Properties: " + properties); - String compId = properties.get("computation_id"); + String compId = itemDescription.getName(); if(compId==null){ throw new ServiceException("Computation Id not found!"); } else { diff --git a/src/main/java/org/gcube/portlets/user/dataminermanager/server/smservice/SClient4WPS.java b/src/main/java/org/gcube/portlets/user/dataminermanager/server/smservice/SClient4WPS.java index dc674ec..35604b3 100644 --- a/src/main/java/org/gcube/portlets/user/dataminermanager/server/smservice/SClient4WPS.java +++ b/src/main/java/org/gcube/portlets/user/dataminermanager/server/smservice/SClient4WPS.java @@ -868,8 +868,7 @@ public class SClient4WPS extends SClient { .getExecuteResponse().getStatus(); if (statusType == null) { logger.debug("WPS FAILURE: Status Type is null"); - computationStatus = new ComputationStatus( - Status.FAILED, 100f); + computationStatus = null; } else { String failure = statusType.getProcessFailed() == null ? null @@ -935,9 +934,20 @@ public class SClient4WPS extends SClient { Status.RUNNING, statusd); } else { - logger.debug("WPS STATUS: Not Started, " - + statusType - .getProcessStarted()); + if (status == -1) { + logger.debug("WPS STATUS: Computation cancelled, " + + statusType + .getProcessStarted()); + computationStatus = new ComputationStatus( + Status.CANCELLED, + -1); + + } else { + + logger.debug("WPS STATUS: Not Started, " + + statusType + .getProcessStarted()); + } } } } @@ -1234,10 +1244,10 @@ public class SClient4WPS extends SClient { } if (userInputs.isEmpty()) { - logger.error("Attention no imputs parameters retrieved for this computation: " + logger.error("Attention no inputs parameters retrieved for this computation: " + computationProperties); throw new Exception( - "Attention no imputs parameters retrieved for this computation: " + "Attention no inputs parameters retrieved for this computation: " + computationProperties); } diff --git a/src/main/java/org/gcube/portlets/user/dataminermanager/server/storage/StorageUtil.java b/src/main/java/org/gcube/portlets/user/dataminermanager/server/storage/StorageUtil.java index 1f6784c..e566c28 100644 --- a/src/main/java/org/gcube/portlets/user/dataminermanager/server/storage/StorageUtil.java +++ b/src/main/java/org/gcube/portlets/user/dataminermanager/server/storage/StorageUtil.java @@ -43,7 +43,7 @@ public class StorageUtil { public static InputStream getStorageClientInputStream(String url) throws Exception { /* - * try { logger.debug("Get ImputStream from: "+url); SMPUrl smsHome = + * try { logger.debug("Get InputStream from: "+url); SMPUrl smsHome = * new SMPUrl(url); logger.debug("smsHome: [host:" + smsHome.getHost() + * " path:" + smsHome.getPath() + " ref:" + smsHome.getRef() + * " userinfo:" + smsHome.getUserInfo() + " ]"); URLConnection uc = @@ -51,9 +51,9 @@ public class StorageUtil { * uc.getInputStream(); return is; * * } catch (Exception e) { - * logger.error("Error retrieving imput stream from storage: ", e); + * logger.error("Error retrieving input stream from storage: ", e); * e.printStackTrace(); throw new Exception( - * "Error retrieving imput stream from storage: " + + * "Error retrieving input stream from storage: " + * e.getLocalizedMessage(), e); } */ @@ -150,7 +150,7 @@ public class StorageUtil { throw new ServiceException("Folder is not valid!"); } - return getImputStream(user, workSpaceItem); + return getInputStream(user, workSpaceItem); } catch (WorkspaceFolderNotFoundException | InternalErrorException | HomeNotFoundException | ItemNotFoundException e) { @@ -169,7 +169,7 @@ public class StorageUtil { * @return InputStream * @throws StatAlgoImporterServiceException */ - private static InputStream getImputStream(String user, WorkspaceItem wi) + private static InputStream getInputStream(String user, WorkspaceItem wi) throws ServiceException { InputStream is = null; try {