ref 11720: TDM - Update to StorageHUB
https://support.d4science.org/issues/11879 Updated to StorageHub git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/widgets/data-miner-manager-widget@169473 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
5801474f2a
commit
289d9b4276
|
@ -1,12 +1,12 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<classpath>
|
<classpath>
|
||||||
<classpathentry kind="src" output="target/data-miner-manager-widget-1.1.0-SNAPSHOT/WEB-INF/classes" path="src/main/java">
|
<classpathentry kind="src" output="target/data-miner-manager-widget-1.2.0-SNAPSHOT/WEB-INF/classes" path="src/main/java">
|
||||||
<attributes>
|
<attributes>
|
||||||
<attribute name="optional" value="true"/>
|
<attribute name="optional" value="true"/>
|
||||||
<attribute name="maven.pomderived" value="true"/>
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
</attributes>
|
</attributes>
|
||||||
</classpathentry>
|
</classpathentry>
|
||||||
<classpathentry excluding="**" kind="src" output="target/data-miner-manager-widget-1.1.0-SNAPSHOT/WEB-INF/classes" path="src/main/resources">
|
<classpathentry excluding="**" kind="src" output="target/data-miner-manager-widget-1.2.0-SNAPSHOT/WEB-INF/classes" path="src/main/resources">
|
||||||
<attributes>
|
<attributes>
|
||||||
<attribute name="maven.pomderived" value="true"/>
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
</attributes>
|
</attributes>
|
||||||
|
@ -33,5 +33,5 @@
|
||||||
</attributes>
|
</attributes>
|
||||||
</classpathentry>
|
</classpathentry>
|
||||||
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
||||||
<classpathentry kind="output" path="target/data-miner-manager-widget-1.1.0-SNAPSHOT/WEB-INF/classes"/>
|
<classpathentry kind="output" path="target/data-miner-manager-widget-1.2.0-SNAPSHOT/WEB-INF/classes"/>
|
||||||
</classpath>
|
</classpath>
|
||||||
|
|
|
@ -1,4 +1,9 @@
|
||||||
<ReleaseNotes>
|
<ReleaseNotes>
|
||||||
|
<Changeset component="org.gcube.portlets.widgets.data-miner-manager-widget.1-2-0"
|
||||||
|
date="2018-07-01">
|
||||||
|
<Change>Updated to support StorageHUB[ticket #11879]</Change>
|
||||||
|
<Change>Added support to netcdf files</Change>
|
||||||
|
</Changeset>
|
||||||
<Changeset component="org.gcube.portlets.widgets.data-miner-manager-widget.1-1-0"
|
<Changeset component="org.gcube.portlets.widgets.data-miner-manager-widget.1-1-0"
|
||||||
date="2017-06-12">
|
date="2017-06-12">
|
||||||
<Change>Support Java 8 compatibility [ticket #8471]</Change>
|
<Change>Support Java 8 compatibility [ticket #8471]</Change>
|
||||||
|
|
34
pom.xml
34
pom.xml
|
@ -12,7 +12,7 @@
|
||||||
|
|
||||||
<groupId>org.gcube.portlets.widgets</groupId>
|
<groupId>org.gcube.portlets.widgets</groupId>
|
||||||
<artifactId>data-miner-manager-widget</artifactId>
|
<artifactId>data-miner-manager-widget</artifactId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>1.2.0-SNAPSHOT</version>
|
||||||
|
|
||||||
<name>data-miner-manager-widget</name>
|
<name>data-miner-manager-widget</name>
|
||||||
<description>data-miner-manager-widget offers a unique access to perform data mining and statistical operations on heterogeneous data</description>
|
<description>data-miner-manager-widget offers a unique access to perform data mining and statistical operations on heterogeneous data</description>
|
||||||
|
@ -97,6 +97,14 @@
|
||||||
<scope>runtime</scope>
|
<scope>runtime</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<!-- StorageHub -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.gcube.common</groupId>
|
||||||
|
<artifactId>storagehub-client-library</artifactId>
|
||||||
|
<scope>runtime</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
<!-- Home Library -->
|
<!-- Home Library -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.gcube.common</groupId>
|
<groupId>org.gcube.common</groupId>
|
||||||
|
@ -221,6 +229,14 @@
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<!-- StorageHub -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.gcube.common</groupId>
|
||||||
|
<artifactId>storagehub-client-library</artifactId>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
<!-- Home Library -->
|
<!-- Home Library -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.gcube.common</groupId>
|
<groupId>org.gcube.common</groupId>
|
||||||
|
@ -274,13 +290,11 @@
|
||||||
<version>[1.2.0-SNAPSHOT, 2.0.0-SNAPSHOT)</version>
|
<version>[1.2.0-SNAPSHOT, 2.0.0-SNAPSHOT)</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- Workspace Explorer -->
|
<!-- Workspace Explorer -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.gcube.portlets.widgets</groupId>
|
<groupId>org.gcube.portlets.widgets</groupId>
|
||||||
<artifactId>workspace-explorer</artifactId>
|
<artifactId>workspace-explorer</artifactId>
|
||||||
<version>[1.4.0-SNAPSHOT, 2.0.0-SNAPSHOT)</version>
|
<version>[2.0.0-SNAPSHOT,3.0.0-SNAPSHOT)</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- Workspace Uploader -->
|
<!-- Workspace Uploader -->
|
||||||
|
@ -297,6 +311,14 @@
|
||||||
<version>[1.0.0-SNAPSHOT,2.0.0-SNAPSHOT)</version>
|
<version>[1.0.0-SNAPSHOT,2.0.0-SNAPSHOT)</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<!-- NetCDF Basic Widget -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.gcube.portlets.widgets</groupId>
|
||||||
|
<artifactId>netcdf-basic-widgets</artifactId>
|
||||||
|
<version>[1.0.0-SNAPSHOT,2.0.0-SNAPSHOT)</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
<!-- DataMinerManagerCL -->
|
<!-- DataMinerManagerCL -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.gcube.data.analysis</groupId>
|
<groupId>org.gcube.data.analysis</groupId>
|
||||||
|
@ -316,13 +338,13 @@
|
||||||
<artifactId>slf4j-api</artifactId>
|
<artifactId>slf4j-api</artifactId>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.slf4j</groupId>
|
<groupId>org.slf4j</groupId>
|
||||||
<artifactId>slf4j-log4j12</artifactId>
|
<artifactId>slf4j-log4j12</artifactId>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>junit</groupId>
|
<groupId>junit</groupId>
|
||||||
<artifactId>junit</artifactId>
|
<artifactId>junit</artifactId>
|
||||||
|
|
|
@ -2,8 +2,13 @@ package org.gcube.portlets.widgets.dataminermanagerwidget.client.computations;
|
||||||
|
|
||||||
import org.gcube.data.analysis.dataminermanagercl.shared.data.computations.ComputationValueFile;
|
import org.gcube.data.analysis.dataminermanagercl.shared.data.computations.ComputationValueFile;
|
||||||
import org.gcube.portlets.widgets.dataminermanagerwidget.client.DataMinerManagerPanel;
|
import org.gcube.portlets.widgets.dataminermanagerwidget.client.DataMinerManagerPanel;
|
||||||
|
import org.gcube.portlets.widgets.netcdfbasicwidgets.client.event.SelectVariableEvent;
|
||||||
|
import org.gcube.portlets.widgets.netcdfbasicwidgets.client.event.SelectVariableEvent.SelectVariableEventHandler;
|
||||||
|
import org.gcube.portlets.widgets.netcdfbasicwidgets.client.widgets.NetCDFPreviewDialog;
|
||||||
|
|
||||||
|
import com.google.gwt.core.client.GWT;
|
||||||
import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
|
import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
|
||||||
|
import com.sencha.gxt.core.client.dom.XDOM;
|
||||||
import com.sencha.gxt.core.client.util.Margins;
|
import com.sencha.gxt.core.client.util.Margins;
|
||||||
import com.sencha.gxt.widget.core.client.button.TextButton;
|
import com.sencha.gxt.widget.core.client.button.TextButton;
|
||||||
import com.sencha.gxt.widget.core.client.container.HtmlLayoutContainer;
|
import com.sencha.gxt.widget.core.client.container.HtmlLayoutContainer;
|
||||||
|
@ -58,9 +63,47 @@ public class ComputationValueFilePanel extends SimpleContainer {
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
TextButton netcdfButton = new TextButton("");
|
||||||
|
netcdfButton.setIcon(DataMinerManagerPanel.resources.netcdf());
|
||||||
|
netcdfButton.addSelectHandler(new SelectEvent.SelectHandler() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSelect(SelectEvent event) {
|
||||||
|
showNetCDFFile();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
lc.add(downloadBtn, new VerticalLayoutData(-1, -1, new Margins(0)));
|
lc.add(downloadBtn, new VerticalLayoutData(-1, -1, new Margins(0)));
|
||||||
|
if (computationValueFile.isNetcdf()) {
|
||||||
|
lc.add(netcdfButton, new VerticalLayoutData(-1, -1, new Margins(0)));
|
||||||
|
}
|
||||||
add(lc);
|
add(lc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void showNetCDFFile() {
|
||||||
|
if (computationValueFile != null && computationValueFile.getValue() != null && !computationValueFile.getValue().isEmpty()
|
||||||
|
&& computationValueFile.isNetcdf()) {
|
||||||
|
GWT.log("NetcdfBasicWidgetsManager");
|
||||||
|
|
||||||
|
// Example
|
||||||
|
SelectVariableEventHandler handler = new SelectVariableEventHandler() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onResponse(SelectVariableEvent event) {
|
||||||
|
GWT.log("SelectVariable Response: " + event);
|
||||||
|
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
NetCDFPreviewDialog netcdfDialog = new NetCDFPreviewDialog(computationValueFile.getValue());
|
||||||
|
netcdfDialog.addSelectVariableEventHandler(handler);
|
||||||
|
netcdfDialog.setZIndex(XDOM.getTopZIndex());
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,7 +24,7 @@ import org.gcube.portlets.widgets.dataminermanagerwidget.shared.workspace.ItemDe
|
||||||
import org.gcube.portlets.widgets.workspaceuploader.client.WorkspaceUploadNotification.WorskpaceUploadNotificationListener;
|
import org.gcube.portlets.widgets.workspaceuploader.client.WorkspaceUploadNotification.WorskpaceUploadNotificationListener;
|
||||||
import org.gcube.portlets.widgets.workspaceuploader.client.uploader.DialogUpload.UPLOAD_TYPE;
|
import org.gcube.portlets.widgets.workspaceuploader.client.uploader.DialogUpload.UPLOAD_TYPE;
|
||||||
import org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload;
|
import org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload;
|
||||||
import org.gcube.portlets.widgets.wsexplorer.client.explore.WorkspaceResourcesExplorerPanel;
|
import org.gcube.portlets.widgets.wsexplorer.client.explore.WorkspaceResourcesExplorerPanelPaginated;
|
||||||
import org.gcube.portlets.widgets.wsexplorer.client.notification.WorkspaceExplorerSelectNotification.WorskpaceExplorerSelectNotificationListener;
|
import org.gcube.portlets.widgets.wsexplorer.client.notification.WorkspaceExplorerSelectNotification.WorskpaceExplorerSelectNotificationListener;
|
||||||
import org.gcube.portlets.widgets.wsexplorer.client.view.grid.ItemsTable.DISPLAY_FIELD;
|
import org.gcube.portlets.widgets.wsexplorer.client.view.grid.ItemsTable.DISPLAY_FIELD;
|
||||||
import org.gcube.portlets.widgets.wsexplorer.shared.FilterCriteria;
|
import org.gcube.portlets.widgets.wsexplorer.shared.FilterCriteria;
|
||||||
|
@ -58,12 +58,13 @@ public class ComputationsExecutedPanel extends FramedPanel {
|
||||||
|
|
||||||
private Item selectedItem;
|
private Item selectedItem;
|
||||||
private MultipleDNDUpload dnd;
|
private MultipleDNDUpload dnd;
|
||||||
private WorkspaceResourcesExplorerPanel wsResourcesExplorerPanel;
|
private WorkspaceResourcesExplorerPanelPaginated wsResourcesExplorerPanel;
|
||||||
|
// private WorkspaceResourcesExplorerPanel wsResourcesExplorerPanel;
|
||||||
private TextButton btnShow;
|
private TextButton btnShow;
|
||||||
private TextButton btnDownload;
|
private TextButton btnDownload;
|
||||||
private TextButton btnDelete;
|
private TextButton btnDelete;
|
||||||
private TextButton btnRefresh;
|
private TextButton btnRefresh;
|
||||||
//private TextButton btnResubmit;
|
// private TextButton btnResubmit;
|
||||||
private TextButton btnCancel;
|
private TextButton btnCancel;
|
||||||
private VerticalLayoutContainer v;
|
private VerticalLayoutContainer v;
|
||||||
|
|
||||||
|
@ -92,15 +93,14 @@ public class ComputationsExecutedPanel extends FramedPanel {
|
||||||
|
|
||||||
private void bindToEvents() {
|
private void bindToEvents() {
|
||||||
|
|
||||||
EventBusProvider.INSTANCE.addHandler(UIStateEvent.TYPE,
|
EventBusProvider.INSTANCE.addHandler(UIStateEvent.TYPE, new UIStateEvent.UIStateEventHandler() {
|
||||||
new UIStateEvent.UIStateEventHandler() {
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onChange(UIStateEvent event) {
|
public void onChange(UIStateEvent event) {
|
||||||
manageStateEvents(event);
|
manageStateEvents(event);
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
EventBusProvider.INSTANCE.addHandler(DataMinerWorkAreaEvent.TYPE,
|
EventBusProvider.INSTANCE.addHandler(DataMinerWorkAreaEvent.TYPE,
|
||||||
new DataMinerWorkAreaEvent.DataMinerWorkAreaEventHandler() {
|
new DataMinerWorkAreaEvent.DataMinerWorkAreaEventHandler() {
|
||||||
|
@ -113,19 +113,16 @@ public class ComputationsExecutedPanel extends FramedPanel {
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
EventBusProvider.INSTANCE
|
EventBusProvider.INSTANCE.addHandler(RefreshDataMinerWorkAreaEvent.TYPE,
|
||||||
.addHandler(
|
new RefreshDataMinerWorkAreaEvent.RefreshDataMinerWorkAreaEventHandler() {
|
||||||
RefreshDataMinerWorkAreaEvent.TYPE,
|
|
||||||
new RefreshDataMinerWorkAreaEvent.RefreshDataMinerWorkAreaEventHandler() {
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onRefresh(
|
public void onRefresh(RefreshDataMinerWorkAreaEvent event) {
|
||||||
RefreshDataMinerWorkAreaEvent event) {
|
manageRefreshDataMinerWorkAreaEvents(event);
|
||||||
manageRefreshDataMinerWorkAreaEvents(event);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -150,8 +147,7 @@ public class ComputationsExecutedPanel extends FramedPanel {
|
||||||
|
|
||||||
private void manageDataMinerWorkAreaEvents(DataMinerWorkAreaEvent event) {
|
private void manageDataMinerWorkAreaEvents(DataMinerWorkAreaEvent event) {
|
||||||
|
|
||||||
Log.debug("ComputationsExecutedPanel recieved DataMinerWorkAreaEvent: "
|
Log.debug("ComputationsExecutedPanel recieved DataMinerWorkAreaEvent: " + event);
|
||||||
+ event);
|
|
||||||
if (event == null) {
|
if (event == null) {
|
||||||
Log.error("DataMinerWorkAreaEvent null");
|
Log.error("DataMinerWorkAreaEvent null");
|
||||||
return;
|
return;
|
||||||
|
@ -181,10 +177,8 @@ public class ComputationsExecutedPanel extends FramedPanel {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void manageRefreshDataMinerWorkAreaEvents(
|
private void manageRefreshDataMinerWorkAreaEvents(RefreshDataMinerWorkAreaEvent event) {
|
||||||
RefreshDataMinerWorkAreaEvent event) {
|
Log.debug("ComputationsExecutedPanel recieved RefreshDataMinerWorkAreaEvent: " + event);
|
||||||
Log.debug("ComputationsExecutedPanel recieved RefreshDataMinerWorkAreaEvent: "
|
|
||||||
+ event);
|
|
||||||
if (event == null) {
|
if (event == null) {
|
||||||
Log.error("RefreshDataMinerWorkAreaEvent null");
|
Log.error("RefreshDataMinerWorkAreaEvent null");
|
||||||
return;
|
return;
|
||||||
|
@ -204,17 +198,14 @@ public class ComputationsExecutedPanel extends FramedPanel {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void create(DataMinerWorkAreaEvent event) {
|
private void create(DataMinerWorkAreaEvent event) {
|
||||||
|
Log.debug("Create ComputationsExecutedPanel");
|
||||||
try {
|
try {
|
||||||
|
|
||||||
if (event == null
|
if (event == null || event.getDataMinerWorkArea() == null
|
||||||
|| event.getDataMinerWorkArea() == null
|
|
||||||
|| event.getDataMinerWorkArea().getComputations() == null
|
|| event.getDataMinerWorkArea().getComputations() == null
|
||||||
|| event.getDataMinerWorkArea().getComputations()
|
|| event.getDataMinerWorkArea().getComputations().getFolder() == null
|
||||||
.getFolder() == null
|
|| event.getDataMinerWorkArea().getComputations().getFolder().getId() == null
|
||||||
|| event.getDataMinerWorkArea().getComputations()
|
|| event.getDataMinerWorkArea().getComputations().getFolder().getId().isEmpty()) {
|
||||||
.getFolder().getId() == null
|
|
||||||
|| event.getDataMinerWorkArea().getComputations()
|
|
||||||
.getFolder().getId().isEmpty()) {
|
|
||||||
if (v != null) {
|
if (v != null) {
|
||||||
remove(v);
|
remove(v);
|
||||||
forceLayout();
|
forceLayout();
|
||||||
|
@ -224,18 +215,27 @@ public class ComputationsExecutedPanel extends FramedPanel {
|
||||||
}
|
}
|
||||||
|
|
||||||
List<String> showProperties = new ArrayList<String>();
|
List<String> showProperties = new ArrayList<String>();
|
||||||
for (ComputationsPropertiesType computationsProperties : ComputationsPropertiesType
|
for (ComputationsPropertiesType computationsProperties : ComputationsPropertiesType.values()) {
|
||||||
.values()) {
|
|
||||||
showProperties.add(computationsProperties.getLabel());
|
showProperties.add(computationsProperties.getLabel());
|
||||||
}
|
}
|
||||||
FilterCriteria filterCriteria = new FilterCriteria();
|
FilterCriteria filterCriteria = new FilterCriteria();
|
||||||
Map<String, String> map = new HashMap<String, String>();
|
Map<String, String> map = new HashMap<String, String>();
|
||||||
filterCriteria.setRequiredProperties(map);
|
filterCriteria.setRequiredProperties(map);
|
||||||
|
|
||||||
wsResourcesExplorerPanel = new WorkspaceResourcesExplorerPanel(
|
/*
|
||||||
event.getDataMinerWorkArea().getComputations().getFolder()
|
* wsResourcesExplorerPanel = new WorkspaceResourcesExplorerPanel(
|
||||||
.getId(), false, showProperties, filterCriteria,
|
* event.getDataMinerWorkArea().getComputations().getFolder()
|
||||||
true, DISPLAY_FIELD.CREATION_DATE);
|
* .getId(), false, showProperties, filterCriteria, true,
|
||||||
|
* DISPLAY_FIELD.CREATION_DATE);
|
||||||
|
*/
|
||||||
|
Log.debug("Create wsResourcesExplorerPanel for Computations: ["
|
||||||
|
+ event.getDataMinerWorkArea().getComputations().getFolder().getId() + ", false, " + showProperties
|
||||||
|
+ ", " + filterCriteria + ", true, " + DISPLAY_FIELD.CREATION_DATE + "]");
|
||||||
|
|
||||||
|
wsResourcesExplorerPanel = new WorkspaceResourcesExplorerPanelPaginated(
|
||||||
|
event.getDataMinerWorkArea().getComputations().getFolder().getId(), false, showProperties,
|
||||||
|
filterCriteria, true, DISPLAY_FIELD.CREATION_DATE);
|
||||||
|
Log.debug("Created wsResourcesExplorerPanel");
|
||||||
WorskpaceExplorerSelectNotificationListener wsResourceExplorerListener = new WorskpaceExplorerSelectNotificationListener() {
|
WorskpaceExplorerSelectNotificationListener wsResourceExplorerListener = new WorskpaceExplorerSelectNotificationListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onSelectedItem(Item item) {
|
public void onSelectedItem(Item item) {
|
||||||
|
@ -260,10 +260,10 @@ public class ComputationsExecutedPanel extends FramedPanel {
|
||||||
selectedItem = null;
|
selectedItem = null;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
Log.debug("Add WorkspaceExplorerSelectNotificationListener");
|
||||||
wsResourcesExplorerPanel
|
wsResourcesExplorerPanel.addWorkspaceExplorerSelectNotificationListener(wsResourceExplorerListener);
|
||||||
.addWorkspaceExplorerSelectNotificationListener(wsResourceExplorerListener);
|
wsResourcesExplorerPanel.ensureDebugId("wsResourceExplorerPanelComputaions");
|
||||||
wsResourcesExplorerPanel.ensureDebugId("wsResourceExplorerPanel");
|
Log.debug("Set Height to internal SCROLL 300");
|
||||||
wsResourcesExplorerPanel.setHeightToInternalScroll(300);
|
wsResourcesExplorerPanel.setHeightToInternalScroll(300);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -273,18 +273,17 @@ public class ComputationsExecutedPanel extends FramedPanel {
|
||||||
* vResourcesExplorerContainer.add(wsResourcesExplorerPanel, new
|
* vResourcesExplorerContainer.add(wsResourcesExplorerPanel, new
|
||||||
* VerticalLayoutData(1, -1, new Margins(0)));
|
* VerticalLayoutData(1, -1, new Margins(0)));
|
||||||
*/
|
*/
|
||||||
|
Log.debug("Define DND for Computations");
|
||||||
// DND
|
// DND
|
||||||
|
|
||||||
dnd = new MultipleDNDUpload();
|
dnd = new MultipleDNDUpload();
|
||||||
dnd.setParameters(event.getDataMinerWorkArea().getComputations()
|
dnd.setParameters(event.getDataMinerWorkArea().getComputations().getFolder().getId(), UPLOAD_TYPE.File);
|
||||||
.getFolder().getId(), UPLOAD_TYPE.File);
|
|
||||||
dnd.addUniqueContainer(wsResourcesExplorerPanel);
|
dnd.addUniqueContainer(wsResourcesExplorerPanel);
|
||||||
WorskpaceUploadNotificationListener workspaceUploaderListener = new WorskpaceUploadNotificationListener() {
|
WorskpaceUploadNotificationListener workspaceUploaderListener = new WorskpaceUploadNotificationListener() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onUploadCompleted(String parentId, String itemId) {
|
public void onUploadCompleted(String parentId, String itemId) {
|
||||||
Log.debug("Upload completed: [parentID: " + parentId
|
Log.debug("Upload completed: [parentID: " + parentId + ", itemId: " + itemId + "]");
|
||||||
+ ", itemId: " + itemId + "]");
|
|
||||||
wsResourcesExplorerPanel.refreshRootFolderView();
|
wsResourcesExplorerPanel.refreshRootFolderView();
|
||||||
forceLayout();
|
forceLayout();
|
||||||
|
|
||||||
|
@ -292,22 +291,18 @@ public class ComputationsExecutedPanel extends FramedPanel {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onUploadAborted(String parentId, String itemId) {
|
public void onUploadAborted(String parentId, String itemId) {
|
||||||
Log.debug("Upload Aborted: [parentID: " + parentId
|
Log.debug("Upload Aborted: [parentID: " + parentId + ", itemId: " + itemId + "]");
|
||||||
+ ", itemId: " + itemId + "]");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onError(String parentId, String itemId,
|
public void onError(String parentId, String itemId, Throwable throwable) {
|
||||||
Throwable throwable) {
|
Log.debug("Upload Error: [parentID: " + parentId + ", itemId: " + itemId + "]");
|
||||||
Log.debug("Upload Error: [parentID: " + parentId
|
|
||||||
+ ", itemId: " + itemId + "]");
|
|
||||||
throwable.printStackTrace();
|
throwable.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onOverwriteCompleted(String parentId, String itemId) {
|
public void onOverwriteCompleted(String parentId, String itemId) {
|
||||||
Log.debug("Upload Override Completed: [parentID: "
|
Log.debug("Upload Override Completed: [parentID: " + parentId + ", itemId: " + itemId + "]");
|
||||||
+ parentId + ", itemId: " + itemId + "]");
|
|
||||||
wsResourcesExplorerPanel.refreshRootFolderView();
|
wsResourcesExplorerPanel.refreshRootFolderView();
|
||||||
forceLayout();
|
forceLayout();
|
||||||
}
|
}
|
||||||
|
@ -372,19 +367,19 @@ public class ComputationsExecutedPanel extends FramedPanel {
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
/*btnResubmit = new TextButton("Resubmit");
|
/*
|
||||||
btnResubmit.setIcon(DataMinerManagerPanel.resources.resubmit());
|
* btnResubmit = new TextButton("Resubmit");
|
||||||
btnResubmit.setScale(ButtonScale.SMALL);
|
* btnResubmit.setIcon(DataMinerManagerPanel.resources.resubmit());
|
||||||
btnResubmit.setIconAlign(IconAlign.LEFT);
|
* btnResubmit.setScale(ButtonScale.SMALL);
|
||||||
btnResubmit.setToolTip("Resubmit");
|
* btnResubmit.setIconAlign(IconAlign.LEFT);
|
||||||
btnResubmit.addSelectHandler(new SelectHandler() {
|
* btnResubmit.setToolTip("Resubmit");
|
||||||
|
* btnResubmit.addSelectHandler(new SelectHandler() {
|
||||||
@Override
|
*
|
||||||
public void onSelect(SelectEvent event) {
|
* @Override public void onSelect(SelectEvent event) {
|
||||||
resubmitComputation();
|
* resubmitComputation(); }
|
||||||
}
|
*
|
||||||
|
* });
|
||||||
});*/
|
*/
|
||||||
|
|
||||||
btnCancel = new TextButton("Cancel");
|
btnCancel = new TextButton("Cancel");
|
||||||
btnCancel.setIcon(DataMinerManagerPanel.resources.cancelCircle());
|
btnCancel.setIcon(DataMinerManagerPanel.resources.cancelCircle());
|
||||||
|
@ -405,7 +400,7 @@ public class ComputationsExecutedPanel extends FramedPanel {
|
||||||
toolBar.add(btnDownload, new BoxLayoutData(new Margins(0)));
|
toolBar.add(btnDownload, new BoxLayoutData(new Margins(0)));
|
||||||
toolBar.add(btnDelete, new BoxLayoutData(new Margins(0)));
|
toolBar.add(btnDelete, new BoxLayoutData(new Margins(0)));
|
||||||
toolBar.add(btnRefresh, new BoxLayoutData(new Margins(0)));
|
toolBar.add(btnRefresh, new BoxLayoutData(new Margins(0)));
|
||||||
//toolBar.add(btnResubmit, new BoxLayoutData(new Margins(0)));
|
// toolBar.add(btnResubmit, new BoxLayoutData(new Margins(0)));
|
||||||
toolBar.add(btnCancel, new BoxLayoutData(new Margins(0)));
|
toolBar.add(btnCancel, new BoxLayoutData(new Margins(0)));
|
||||||
|
|
||||||
v = new VerticalLayoutContainer();
|
v = new VerticalLayoutContainer();
|
||||||
|
@ -418,11 +413,9 @@ public class ComputationsExecutedPanel extends FramedPanel {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onResize(ResizeEvent event) {
|
public void onResize(ResizeEvent event) {
|
||||||
int scrollBarHeight = event.getHeight()
|
int scrollBarHeight = event.getHeight() - toolBar.getElement().getHeight(false);
|
||||||
- toolBar.getElement().getHeight(false);
|
|
||||||
Log.debug("ScrollBarHeight: " + scrollBarHeight);
|
Log.debug("ScrollBarHeight: " + scrollBarHeight);
|
||||||
wsResourcesExplorerPanel
|
wsResourcesExplorerPanel.setHeightToInternalScroll(scrollBarHeight);
|
||||||
.setHeightToInternalScroll(scrollBarHeight);
|
|
||||||
forceLayout();
|
forceLayout();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -437,7 +430,13 @@ public class ComputationsExecutedPanel extends FramedPanel {
|
||||||
|
|
||||||
private void refreshWSResourceExplorerPanel() {
|
private void refreshWSResourceExplorerPanel() {
|
||||||
if (wsResourcesExplorerPanel != null) {
|
if (wsResourcesExplorerPanel != null) {
|
||||||
wsResourcesExplorerPanel.refreshRootFolderView();
|
try {
|
||||||
|
// wsResourcesExplorerPanel.hardRefresh();
|
||||||
|
wsResourcesExplorerPanel.refreshRootFolderView();
|
||||||
|
} catch (Exception e) {
|
||||||
|
Log.error("Error retrieving data: " + e.getLocalizedMessage());
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -458,12 +457,10 @@ public class ComputationsExecutedPanel extends FramedPanel {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void deleteItem(SelectEvent event) {
|
private void deleteItem(SelectEvent event) {
|
||||||
ItemDescription itemDescription = new ItemDescription(
|
ItemDescription itemDescription = new ItemDescription(selectedItem.getId(), selectedItem.getName(),
|
||||||
selectedItem.getId(), selectedItem.getName(),
|
selectedItem.getOwner(), selectedItem.getPath(), selectedItem.getType().name());
|
||||||
selectedItem.getOwner(), selectedItem.getPath(), selectedItem
|
DeleteItemRequestEvent deleteItemEvent = new DeleteItemRequestEvent(DataMinerWorkAreaElementType.Computations,
|
||||||
.getType().name());
|
itemDescription);
|
||||||
DeleteItemRequestEvent deleteItemEvent = new DeleteItemRequestEvent(
|
|
||||||
DataMinerWorkAreaElementType.Computations, itemDescription);
|
|
||||||
EventBusProvider.INSTANCE.fireEvent(deleteItemEvent);
|
EventBusProvider.INSTANCE.fireEvent(deleteItemEvent);
|
||||||
Log.debug("Fired: " + deleteItemEvent);
|
Log.debug("Fired: " + deleteItemEvent);
|
||||||
}
|
}
|
||||||
|
@ -471,13 +468,10 @@ public class ComputationsExecutedPanel extends FramedPanel {
|
||||||
private void showComputation() {
|
private void showComputation() {
|
||||||
if (selectedItem != null) {
|
if (selectedItem != null) {
|
||||||
|
|
||||||
final ItemDescription itemDescription = new ItemDescription(
|
final ItemDescription itemDescription = new ItemDescription(selectedItem.getId(), selectedItem.getName(),
|
||||||
selectedItem.getId(), selectedItem.getName(),
|
selectedItem.getOwner(), selectedItem.getPath(), selectedItem.getType().name());
|
||||||
selectedItem.getOwner(), selectedItem.getPath(),
|
|
||||||
selectedItem.getType().name());
|
|
||||||
|
|
||||||
ComputationDataRequestEvent event = new ComputationDataRequestEvent(
|
ComputationDataRequestEvent event = new ComputationDataRequestEvent(itemDescription);
|
||||||
itemDescription);
|
|
||||||
EventBusProvider.INSTANCE.fireEvent(event);
|
EventBusProvider.INSTANCE.fireEvent(event);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
@ -491,53 +485,41 @@ public class ComputationsExecutedPanel extends FramedPanel {
|
||||||
if (selectedItem.isFolder()) {
|
if (selectedItem.isFolder()) {
|
||||||
StringBuilder actionUrl = new StringBuilder();
|
StringBuilder actionUrl = new StringBuilder();
|
||||||
actionUrl.append(GWT.getModuleBaseURL());
|
actionUrl.append(GWT.getModuleBaseURL());
|
||||||
actionUrl
|
actionUrl.append(Constants.DOWNLOAD_FOLDER_SERVLET + "?"
|
||||||
.append(Constants.DOWNLOAD_FOLDER_SERVLET
|
+ Constants.DOWNLOAD_FOLDER_SERVLET_ITEM_ID_PARAMETER + "=" + selectedItem.getId() + "&"
|
||||||
+ "?"
|
+ Constants.DOWNLOAD_FOLDER_SERVLET_FOLDER_NAME_PARAMETER + "=" + selectedItem.getName() + "&"
|
||||||
+ Constants.DOWNLOAD_FOLDER_SERVLET_ITEM_ID_PARAMETER
|
+ Constants.CURR_GROUP_ID + "=" + GCubeClientContext.getCurrentContextId());
|
||||||
+ "="
|
|
||||||
+ selectedItem.getId()
|
|
||||||
+ "&"
|
|
||||||
+ Constants.DOWNLOAD_FOLDER_SERVLET_FOLDER_NAME_PARAMETER
|
|
||||||
+ "=" + selectedItem.getName() + "&"
|
|
||||||
+ Constants.CURR_GROUP_ID + "="
|
|
||||||
+ GCubeClientContext.getCurrentContextId());
|
|
||||||
|
|
||||||
Log.debug("Retrieved link: " + actionUrl);
|
Log.debug("Retrieved link: " + actionUrl);
|
||||||
Window.open(actionUrl.toString(), selectedItem.getName(), "");
|
Window.open(actionUrl.toString(), selectedItem.getName(), "");
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
final ItemDescription itemDescription = new ItemDescription(
|
final ItemDescription itemDescription = new ItemDescription(selectedItem.getId(),
|
||||||
selectedItem.getId(), selectedItem.getName(),
|
selectedItem.getName(), selectedItem.getOwner(), selectedItem.getPath(),
|
||||||
selectedItem.getOwner(), selectedItem.getPath(),
|
|
||||||
selectedItem.getType().name());
|
selectedItem.getType().name());
|
||||||
|
|
||||||
DataMinerPortletServiceAsync.INSTANCE.getPublicLink(
|
DataMinerPortletServiceAsync.INSTANCE.getPublicLink(itemDescription, new AsyncCallback<String>() {
|
||||||
itemDescription, new AsyncCallback<String>() {
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onFailure(Throwable caught) {
|
public void onFailure(Throwable caught) {
|
||||||
if (caught instanceof SessionExpiredServiceException) {
|
if (caught instanceof SessionExpiredServiceException) {
|
||||||
EventBusProvider.INSTANCE
|
EventBusProvider.INSTANCE.fireEvent(new SessionExpiredEvent());
|
||||||
.fireEvent(new SessionExpiredEvent());
|
} else {
|
||||||
} else {
|
Log.error("Error open file: " + caught.getLocalizedMessage());
|
||||||
Log.error("Error open file: "
|
UtilsGXT3.alert("Error", caught.getLocalizedMessage());
|
||||||
+ caught.getLocalizedMessage());
|
}
|
||||||
UtilsGXT3.alert("Error",
|
caught.printStackTrace();
|
||||||
caught.getLocalizedMessage());
|
|
||||||
}
|
|
||||||
caught.printStackTrace();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(String link) {
|
public void onSuccess(String link) {
|
||||||
Log.debug("Retrieved link: " + link);
|
Log.debug("Retrieved link: " + link);
|
||||||
Window.open(link, itemDescription.getName(), "");
|
Window.open(link, itemDescription.getName(), "");
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
UtilsGXT3.info("Attention", "Select a file!");
|
UtilsGXT3.info("Attention", "Select a file!");
|
||||||
|
@ -547,10 +529,8 @@ public class ComputationsExecutedPanel extends FramedPanel {
|
||||||
|
|
||||||
private void cancelComputation() {
|
private void cancelComputation() {
|
||||||
if (selectedItem != null) {
|
if (selectedItem != null) {
|
||||||
ItemDescription itemDescription = new ItemDescription(
|
ItemDescription itemDescription = new ItemDescription(selectedItem.getId(), selectedItem.getName(),
|
||||||
selectedItem.getId(), selectedItem.getName(),
|
selectedItem.getOwner(), selectedItem.getPath(), selectedItem.getType().name());
|
||||||
selectedItem.getOwner(), selectedItem.getPath(),
|
|
||||||
selectedItem.getType().name());
|
|
||||||
CancelExecutionFromComputationsRequestEvent cancelComputationEvent = new CancelExecutionFromComputationsRequestEvent(
|
CancelExecutionFromComputationsRequestEvent cancelComputationEvent = new CancelExecutionFromComputationsRequestEvent(
|
||||||
itemDescription);
|
itemDescription);
|
||||||
EventBusProvider.INSTANCE.fireEvent(cancelComputationEvent);
|
EventBusProvider.INSTANCE.fireEvent(cancelComputationEvent);
|
||||||
|
@ -560,20 +540,18 @@ public class ComputationsExecutedPanel extends FramedPanel {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*private void resubmitComputation() {
|
/*
|
||||||
if (selectedItem != null) {
|
* private void resubmitComputation() { if (selectedItem != null) {
|
||||||
ItemDescription itemDescription = new ItemDescription(
|
* ItemDescription itemDescription = new ItemDescription(
|
||||||
selectedItem.getId(), selectedItem.getName(),
|
* selectedItem.getId(), selectedItem.getName(), selectedItem.getOwner(),
|
||||||
selectedItem.getOwner(), selectedItem.getPath(),
|
* selectedItem.getPath(), selectedItem.getType().name());
|
||||||
selectedItem.getType().name());
|
* ResubmitComputationExecutionRequestEvent resubmitComputationEvent = new
|
||||||
ResubmitComputationExecutionRequestEvent resubmitComputationEvent = new ResubmitComputationExecutionRequestEvent(
|
* ResubmitComputationExecutionRequestEvent( itemDescription);
|
||||||
itemDescription);
|
* EventBusProvider.INSTANCE.fireEvent(resubmitComputationEvent);
|
||||||
EventBusProvider.INSTANCE.fireEvent(resubmitComputationEvent);
|
* Log.debug("Fired: " + resubmitComputationEvent); } else {
|
||||||
Log.debug("Fired: " + resubmitComputationEvent);
|
* UtilsGXT3.info("Attention", "Select a computation!"); }
|
||||||
} else {
|
*
|
||||||
UtilsGXT3.info("Attention", "Select a computation!");
|
* }
|
||||||
}
|
*/
|
||||||
|
|
||||||
}*/
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,7 +22,7 @@ import org.gcube.portlets.widgets.dataminermanagerwidget.shared.workspace.ItemDe
|
||||||
import org.gcube.portlets.widgets.workspaceuploader.client.WorkspaceUploadNotification.WorskpaceUploadNotificationListener;
|
import org.gcube.portlets.widgets.workspaceuploader.client.WorkspaceUploadNotification.WorskpaceUploadNotificationListener;
|
||||||
import org.gcube.portlets.widgets.workspaceuploader.client.uploader.DialogUpload.UPLOAD_TYPE;
|
import org.gcube.portlets.widgets.workspaceuploader.client.uploader.DialogUpload.UPLOAD_TYPE;
|
||||||
import org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload;
|
import org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload;
|
||||||
import org.gcube.portlets.widgets.wsexplorer.client.explore.WorkspaceResourcesExplorerPanel;
|
import org.gcube.portlets.widgets.wsexplorer.client.explore.WorkspaceResourcesExplorerPanelPaginated;
|
||||||
import org.gcube.portlets.widgets.wsexplorer.client.notification.WorkspaceExplorerSelectNotification.WorskpaceExplorerSelectNotificationListener;
|
import org.gcube.portlets.widgets.wsexplorer.client.notification.WorkspaceExplorerSelectNotification.WorskpaceExplorerSelectNotificationListener;
|
||||||
import org.gcube.portlets.widgets.wsexplorer.client.view.grid.ItemsTable.DISPLAY_FIELD;
|
import org.gcube.portlets.widgets.wsexplorer.client.view.grid.ItemsTable.DISPLAY_FIELD;
|
||||||
import org.gcube.portlets.widgets.wsexplorer.shared.FilterCriteria;
|
import org.gcube.portlets.widgets.wsexplorer.shared.FilterCriteria;
|
||||||
|
@ -56,7 +56,8 @@ public class InputDataSetsPanel extends FramedPanel {
|
||||||
|
|
||||||
private Item selectedItem;
|
private Item selectedItem;
|
||||||
private MultipleDNDUpload dnd;
|
private MultipleDNDUpload dnd;
|
||||||
private WorkspaceResourcesExplorerPanel wsResourcesExplorerPanel;
|
private WorkspaceResourcesExplorerPanelPaginated wsResourcesExplorerPanel;
|
||||||
|
// private WorkspaceResourcesExplorerPanel wsResourcesExplorerPanel;
|
||||||
private TextButton btnDownload;
|
private TextButton btnDownload;
|
||||||
private TextButton btnDelete;
|
private TextButton btnDelete;
|
||||||
private TextButton btnRefresh;
|
private TextButton btnRefresh;
|
||||||
|
@ -87,15 +88,14 @@ public class InputDataSetsPanel extends FramedPanel {
|
||||||
|
|
||||||
private void bindToEvents() {
|
private void bindToEvents() {
|
||||||
|
|
||||||
EventBusProvider.INSTANCE.addHandler(UIStateEvent.TYPE,
|
EventBusProvider.INSTANCE.addHandler(UIStateEvent.TYPE, new UIStateEvent.UIStateEventHandler() {
|
||||||
new UIStateEvent.UIStateEventHandler() {
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onChange(UIStateEvent event) {
|
public void onChange(UIStateEvent event) {
|
||||||
manageStateEvents(event);
|
manageStateEvents(event);
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
EventBusProvider.INSTANCE.addHandler(DataMinerWorkAreaEvent.TYPE,
|
EventBusProvider.INSTANCE.addHandler(DataMinerWorkAreaEvent.TYPE,
|
||||||
new DataMinerWorkAreaEvent.DataMinerWorkAreaEventHandler() {
|
new DataMinerWorkAreaEvent.DataMinerWorkAreaEventHandler() {
|
||||||
|
@ -108,19 +108,16 @@ public class InputDataSetsPanel extends FramedPanel {
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
EventBusProvider.INSTANCE
|
EventBusProvider.INSTANCE.addHandler(RefreshDataMinerWorkAreaEvent.TYPE,
|
||||||
.addHandler(
|
new RefreshDataMinerWorkAreaEvent.RefreshDataMinerWorkAreaEventHandler() {
|
||||||
RefreshDataMinerWorkAreaEvent.TYPE,
|
|
||||||
new RefreshDataMinerWorkAreaEvent.RefreshDataMinerWorkAreaEventHandler() {
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onRefresh(
|
public void onRefresh(RefreshDataMinerWorkAreaEvent event) {
|
||||||
RefreshDataMinerWorkAreaEvent event) {
|
manageRefreshDataMinerWorkAreaEvents(event);
|
||||||
manageRefreshDataMinerWorkAreaEvents(event);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -143,8 +140,7 @@ public class InputDataSetsPanel extends FramedPanel {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void manageDataMinerWorkAreaEvents(DataMinerWorkAreaEvent event) {
|
private void manageDataMinerWorkAreaEvents(DataMinerWorkAreaEvent event) {
|
||||||
Log.debug("InputDataSetsPanel recieved DataMinerWorkAreaEvent: "
|
Log.debug("InputDataSetsPanel recieved DataMinerWorkAreaEvent: " + event);
|
||||||
+ event);
|
|
||||||
if (event == null) {
|
if (event == null) {
|
||||||
Log.error("DataMinerWorkAreaEvent");
|
Log.error("DataMinerWorkAreaEvent");
|
||||||
return;
|
return;
|
||||||
|
@ -173,10 +169,8 @@ public class InputDataSetsPanel extends FramedPanel {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void manageRefreshDataMinerWorkAreaEvents(
|
private void manageRefreshDataMinerWorkAreaEvents(RefreshDataMinerWorkAreaEvent event) {
|
||||||
RefreshDataMinerWorkAreaEvent event) {
|
Log.debug("InputDataSetsPanel recieved RefreshDataMinerWorkAreaEvent: " + event);
|
||||||
Log.debug("InputDataSetsPanel recieved RefreshDataMinerWorkAreaEvent: "
|
|
||||||
+ event);
|
|
||||||
if (event == null) {
|
if (event == null) {
|
||||||
Log.error("RefreshDataMinerWorkAreaEvent");
|
Log.error("RefreshDataMinerWorkAreaEvent");
|
||||||
return;
|
return;
|
||||||
|
@ -197,17 +191,14 @@ public class InputDataSetsPanel extends FramedPanel {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void create(DataMinerWorkAreaEvent event) {
|
private void create(DataMinerWorkAreaEvent event) {
|
||||||
|
Log.debug("Create InputDataSetsPanel");
|
||||||
try {
|
try {
|
||||||
|
|
||||||
if (event == null
|
if (event == null || event.getDataMinerWorkArea() == null
|
||||||
|| event.getDataMinerWorkArea() == null
|
|
||||||
|| event.getDataMinerWorkArea().getInputDataSets() == null
|
|| event.getDataMinerWorkArea().getInputDataSets() == null
|
||||||
|| event.getDataMinerWorkArea().getInputDataSets()
|
|| event.getDataMinerWorkArea().getInputDataSets().getFolder() == null
|
||||||
.getFolder() == null
|
|| event.getDataMinerWorkArea().getInputDataSets().getFolder().getId() == null
|
||||||
|| event.getDataMinerWorkArea().getInputDataSets()
|
|| event.getDataMinerWorkArea().getInputDataSets().getFolder().getId().isEmpty()) {
|
||||||
.getFolder().getId() == null
|
|
||||||
|| event.getDataMinerWorkArea().getInputDataSets()
|
|
||||||
.getFolder().getId().isEmpty()) {
|
|
||||||
if (v != null) {
|
if (v != null) {
|
||||||
remove(v);
|
remove(v);
|
||||||
forceLayout();
|
forceLayout();
|
||||||
|
@ -217,18 +208,20 @@ public class InputDataSetsPanel extends FramedPanel {
|
||||||
}
|
}
|
||||||
|
|
||||||
List<String> showProperties = new ArrayList<String>();
|
List<String> showProperties = new ArrayList<String>();
|
||||||
for (DataSpacePropertiesType dataSpaceProperties : DataSpacePropertiesType
|
for (DataSpacePropertiesType dataSpaceProperties : DataSpacePropertiesType.values()) {
|
||||||
.values()) {
|
|
||||||
showProperties.add(dataSpaceProperties.getLabel());
|
showProperties.add(dataSpaceProperties.getLabel());
|
||||||
}
|
}
|
||||||
FilterCriteria filterCriteria = new FilterCriteria();
|
FilterCriteria filterCriteria = new FilterCriteria();
|
||||||
Map<String, String> map = new HashMap<String, String>();
|
Map<String, String> map = new HashMap<String, String>();
|
||||||
filterCriteria.setRequiredProperties(map);
|
filterCriteria.setRequiredProperties(map);
|
||||||
|
|
||||||
wsResourcesExplorerPanel = new WorkspaceResourcesExplorerPanel(
|
Log.debug("Create wsResourcesExplorerPanel for Input: ["
|
||||||
event.getDataMinerWorkArea().getInputDataSets().getFolder()
|
+ event.getDataMinerWorkArea().getInputDataSets().getFolder().getId() + ", false, " + showProperties
|
||||||
.getId(), false, showProperties, filterCriteria,
|
+ ", " + filterCriteria + ", true, " + DISPLAY_FIELD.CREATION_DATE + "]");
|
||||||
true, DISPLAY_FIELD.CREATION_DATE);
|
|
||||||
|
wsResourcesExplorerPanel = new WorkspaceResourcesExplorerPanelPaginated(
|
||||||
|
event.getDataMinerWorkArea().getInputDataSets().getFolder().getId(), false, showProperties,
|
||||||
|
filterCriteria, true, DISPLAY_FIELD.CREATION_DATE);
|
||||||
WorskpaceExplorerSelectNotificationListener wsResourceExplorerListener = new WorskpaceExplorerSelectNotificationListener() {
|
WorskpaceExplorerSelectNotificationListener wsResourceExplorerListener = new WorskpaceExplorerSelectNotificationListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onSelectedItem(Item item) {
|
public void onSelectedItem(Item item) {
|
||||||
|
@ -254,23 +247,22 @@ public class InputDataSetsPanel extends FramedPanel {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
wsResourcesExplorerPanel
|
wsResourcesExplorerPanel.addWorkspaceExplorerSelectNotificationListener(wsResourceExplorerListener);
|
||||||
.addWorkspaceExplorerSelectNotificationListener(wsResourceExplorerListener);
|
wsResourcesExplorerPanel.ensureDebugId("wsResourceExplorerPanelForInput");
|
||||||
wsResourcesExplorerPanel.ensureDebugId("wsResourceExplorerPanel");
|
|
||||||
wsResourcesExplorerPanel.setHeightToInternalScroll(300);
|
wsResourcesExplorerPanel.setHeightToInternalScroll(300);
|
||||||
|
|
||||||
|
Log.debug("Define DND for InputDataSetsPanel");
|
||||||
|
|
||||||
// DND
|
// DND
|
||||||
|
|
||||||
dnd = new MultipleDNDUpload();
|
dnd = new MultipleDNDUpload();
|
||||||
dnd.setParameters(event.getDataMinerWorkArea().getInputDataSets()
|
dnd.setParameters(event.getDataMinerWorkArea().getInputDataSets().getFolder().getId(), UPLOAD_TYPE.File);
|
||||||
.getFolder().getId(), UPLOAD_TYPE.File);
|
|
||||||
dnd.addUniqueContainer(wsResourcesExplorerPanel);
|
dnd.addUniqueContainer(wsResourcesExplorerPanel);
|
||||||
WorskpaceUploadNotificationListener workspaceUploaderListener = new WorskpaceUploadNotificationListener() {
|
WorskpaceUploadNotificationListener workspaceUploaderListener = new WorskpaceUploadNotificationListener() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onUploadCompleted(String parentId, String itemId) {
|
public void onUploadCompleted(String parentId, String itemId) {
|
||||||
Log.debug("Upload completed: [parentID: " + parentId
|
Log.debug("Upload completed: [parentID: " + parentId + ", itemId: " + itemId + "]");
|
||||||
+ ", itemId: " + itemId + "]");
|
|
||||||
wsResourcesExplorerPanel.refreshRootFolderView();
|
wsResourcesExplorerPanel.refreshRootFolderView();
|
||||||
forceLayout();
|
forceLayout();
|
||||||
|
|
||||||
|
@ -278,22 +270,18 @@ public class InputDataSetsPanel extends FramedPanel {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onUploadAborted(String parentId, String itemId) {
|
public void onUploadAborted(String parentId, String itemId) {
|
||||||
Log.debug("Upload Aborted: [parentID: " + parentId
|
Log.debug("Upload Aborted: [parentID: " + parentId + ", itemId: " + itemId + "]");
|
||||||
+ ", itemId: " + itemId + "]");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onError(String parentId, String itemId,
|
public void onError(String parentId, String itemId, Throwable throwable) {
|
||||||
Throwable throwable) {
|
Log.debug("Upload Error: [parentID: " + parentId + ", itemId: " + itemId + "]");
|
||||||
Log.debug("Upload Error: [parentID: " + parentId
|
|
||||||
+ ", itemId: " + itemId + "]");
|
|
||||||
throwable.printStackTrace();
|
throwable.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onOverwriteCompleted(String parentId, String itemId) {
|
public void onOverwriteCompleted(String parentId, String itemId) {
|
||||||
Log.debug("Upload Override Completed: [parentID: "
|
Log.debug("Upload Override Completed: [parentID: " + parentId + ", itemId: " + itemId + "]");
|
||||||
+ parentId + ", itemId: " + itemId + "]");
|
|
||||||
wsResourcesExplorerPanel.refreshRootFolderView();
|
wsResourcesExplorerPanel.refreshRootFolderView();
|
||||||
forceLayout();
|
forceLayout();
|
||||||
}
|
}
|
||||||
|
@ -360,26 +348,30 @@ public class InputDataSetsPanel extends FramedPanel {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onResize(ResizeEvent event) {
|
public void onResize(ResizeEvent event) {
|
||||||
int scrollBarHeight = event.getHeight()
|
int scrollBarHeight = event.getHeight() - toolBar.getElement().getHeight(false);
|
||||||
- toolBar.getElement().getHeight(false);
|
|
||||||
Log.debug("ScrollBarHeight: " + scrollBarHeight);
|
Log.debug("ScrollBarHeight: " + scrollBarHeight);
|
||||||
wsResourcesExplorerPanel
|
wsResourcesExplorerPanel.setHeightToInternalScroll(scrollBarHeight);
|
||||||
.setHeightToInternalScroll(scrollBarHeight);
|
|
||||||
forceLayout();
|
forceLayout();
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
forceLayout();
|
forceLayout();
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Throwable e) {
|
||||||
Log.error("Error opening wsResourceExplorerPanel");
|
Log.error("Error opening wsResourceExplorerPanel: " + e.getLocalizedMessage(), e);
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void refreshWSResourceExplorerPanel() {
|
private void refreshWSResourceExplorerPanel() {
|
||||||
if (wsResourcesExplorerPanel != null) {
|
if (wsResourcesExplorerPanel != null) {
|
||||||
wsResourcesExplorerPanel.refreshRootFolderView();
|
try {
|
||||||
|
// wsResourcesExplorerPanel.hardRefresh();
|
||||||
|
wsResourcesExplorerPanel.refreshRootFolderView();
|
||||||
|
} catch (Exception e) {
|
||||||
|
Log.error("Error retrieving data: " + e.getLocalizedMessage());
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -400,14 +392,18 @@ public class InputDataSetsPanel extends FramedPanel {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void deleteItem(SelectEvent event) {
|
private void deleteItem(SelectEvent event) {
|
||||||
ItemDescription itemDescription = new ItemDescription(
|
Log.debug("Selected Item: " + selectedItem);
|
||||||
selectedItem.getId(), selectedItem.getName(),
|
if (selectedItem != null) {
|
||||||
selectedItem.getOwner(), selectedItem.getPath(), selectedItem
|
|
||||||
.getType().name());
|
ItemDescription itemDescription = new ItemDescription(selectedItem.getId(), selectedItem.getName(),
|
||||||
DeleteItemRequestEvent deleteItemEvent = new DeleteItemRequestEvent(
|
selectedItem.getOwner(), selectedItem.getPath(), selectedItem.getType().name());
|
||||||
DataMinerWorkAreaElementType.InputDataSets, itemDescription);
|
DeleteItemRequestEvent deleteItemEvent = new DeleteItemRequestEvent(
|
||||||
EventBusProvider.INSTANCE.fireEvent(deleteItemEvent);
|
DataMinerWorkAreaElementType.InputDataSets, itemDescription);
|
||||||
Log.debug("Fired: " + deleteItemEvent);
|
EventBusProvider.INSTANCE.fireEvent(deleteItemEvent);
|
||||||
|
Log.debug("Fired: " + deleteItemEvent);
|
||||||
|
} else {
|
||||||
|
UtilsGXT3.info("Attention", "Select a item!");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void downloadFile() {
|
private void downloadFile() {
|
||||||
|
@ -415,52 +411,40 @@ public class InputDataSetsPanel extends FramedPanel {
|
||||||
if (selectedItem.isFolder()) {
|
if (selectedItem.isFolder()) {
|
||||||
StringBuilder actionUrl = new StringBuilder();
|
StringBuilder actionUrl = new StringBuilder();
|
||||||
actionUrl.append(GWT.getModuleBaseURL());
|
actionUrl.append(GWT.getModuleBaseURL());
|
||||||
actionUrl
|
actionUrl.append(Constants.DOWNLOAD_FOLDER_SERVLET + "?"
|
||||||
.append(Constants.DOWNLOAD_FOLDER_SERVLET
|
+ Constants.DOWNLOAD_FOLDER_SERVLET_ITEM_ID_PARAMETER + "=" + selectedItem.getId() + "&"
|
||||||
+ "?"
|
+ Constants.DOWNLOAD_FOLDER_SERVLET_FOLDER_NAME_PARAMETER + "=" + selectedItem.getName() + "&"
|
||||||
+ Constants.DOWNLOAD_FOLDER_SERVLET_ITEM_ID_PARAMETER
|
+ Constants.CURR_GROUP_ID + "=" + GCubeClientContext.getCurrentContextId());
|
||||||
+ "="
|
|
||||||
+ selectedItem.getId()
|
|
||||||
+ "&"
|
|
||||||
+ Constants.DOWNLOAD_FOLDER_SERVLET_FOLDER_NAME_PARAMETER
|
|
||||||
+ "=" + selectedItem.getName() + "&"
|
|
||||||
+ Constants.CURR_GROUP_ID + "="
|
|
||||||
+ GCubeClientContext.getCurrentContextId());
|
|
||||||
|
|
||||||
Log.debug("Retrieved link: " + actionUrl);
|
Log.debug("Retrieved link: " + actionUrl);
|
||||||
Window.open(actionUrl.toString(), selectedItem.getName(), "");
|
Window.open(actionUrl.toString(), selectedItem.getName(), "");
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
final ItemDescription itemDescription = new ItemDescription(
|
final ItemDescription itemDescription = new ItemDescription(selectedItem.getId(),
|
||||||
selectedItem.getId(), selectedItem.getName(),
|
selectedItem.getName(), selectedItem.getOwner(), selectedItem.getPath(),
|
||||||
selectedItem.getOwner(), selectedItem.getPath(),
|
|
||||||
selectedItem.getType().name());
|
selectedItem.getType().name());
|
||||||
|
|
||||||
DataMinerPortletServiceAsync.INSTANCE.getPublicLink(
|
DataMinerPortletServiceAsync.INSTANCE.getPublicLink(itemDescription, new AsyncCallback<String>() {
|
||||||
itemDescription, new AsyncCallback<String>() {
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onFailure(Throwable caught) {
|
public void onFailure(Throwable caught) {
|
||||||
if (caught instanceof SessionExpiredServiceException) {
|
if (caught instanceof SessionExpiredServiceException) {
|
||||||
EventBusProvider.INSTANCE
|
EventBusProvider.INSTANCE.fireEvent(new SessionExpiredEvent());
|
||||||
.fireEvent(new SessionExpiredEvent());
|
} else {
|
||||||
} else {
|
Log.error("Error open file: " + caught.getLocalizedMessage());
|
||||||
Log.error("Error open file: "
|
UtilsGXT3.alert("Error", caught.getLocalizedMessage());
|
||||||
+ caught.getLocalizedMessage());
|
}
|
||||||
UtilsGXT3.alert("Error",
|
caught.printStackTrace();
|
||||||
caught.getLocalizedMessage());
|
|
||||||
}
|
|
||||||
caught.printStackTrace();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(String link) {
|
public void onSuccess(String link) {
|
||||||
Log.debug("Retrieved link: " + link);
|
Log.debug("Retrieved link: " + link);
|
||||||
Window.open(link, itemDescription.getName(), "");
|
Window.open(link, itemDescription.getName(), "");
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
UtilsGXT3.info("Attention", "Select a file!");
|
UtilsGXT3.info("Attention", "Select a file!");
|
||||||
|
|
|
@ -22,7 +22,7 @@ import org.gcube.portlets.widgets.dataminermanagerwidget.shared.workspace.ItemDe
|
||||||
import org.gcube.portlets.widgets.workspaceuploader.client.WorkspaceUploadNotification.WorskpaceUploadNotificationListener;
|
import org.gcube.portlets.widgets.workspaceuploader.client.WorkspaceUploadNotification.WorskpaceUploadNotificationListener;
|
||||||
import org.gcube.portlets.widgets.workspaceuploader.client.uploader.DialogUpload.UPLOAD_TYPE;
|
import org.gcube.portlets.widgets.workspaceuploader.client.uploader.DialogUpload.UPLOAD_TYPE;
|
||||||
import org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload;
|
import org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload;
|
||||||
import org.gcube.portlets.widgets.wsexplorer.client.explore.WorkspaceResourcesExplorerPanel;
|
import org.gcube.portlets.widgets.wsexplorer.client.explore.WorkspaceResourcesExplorerPanelPaginated;
|
||||||
import org.gcube.portlets.widgets.wsexplorer.client.notification.WorkspaceExplorerSelectNotification.WorskpaceExplorerSelectNotificationListener;
|
import org.gcube.portlets.widgets.wsexplorer.client.notification.WorkspaceExplorerSelectNotification.WorskpaceExplorerSelectNotificationListener;
|
||||||
import org.gcube.portlets.widgets.wsexplorer.client.view.grid.ItemsTable.DISPLAY_FIELD;
|
import org.gcube.portlets.widgets.wsexplorer.client.view.grid.ItemsTable.DISPLAY_FIELD;
|
||||||
import org.gcube.portlets.widgets.wsexplorer.shared.FilterCriteria;
|
import org.gcube.portlets.widgets.wsexplorer.shared.FilterCriteria;
|
||||||
|
@ -56,7 +56,9 @@ public class OutputDataSetsPanel extends FramedPanel {
|
||||||
|
|
||||||
private Item selectedItem;
|
private Item selectedItem;
|
||||||
private MultipleDNDUpload dnd;
|
private MultipleDNDUpload dnd;
|
||||||
private WorkspaceResourcesExplorerPanel wsResourcesExplorerPanel;
|
|
||||||
|
private WorkspaceResourcesExplorerPanelPaginated wsResourcesExplorerPanel;
|
||||||
|
// private WorkspaceResourcesExplorerPanel wsResourcesExplorerPanel;
|
||||||
private TextButton btnDownload;
|
private TextButton btnDownload;
|
||||||
private TextButton btnDelete;
|
private TextButton btnDelete;
|
||||||
private TextButton btnRefresh;
|
private TextButton btnRefresh;
|
||||||
|
@ -86,15 +88,14 @@ public class OutputDataSetsPanel extends FramedPanel {
|
||||||
|
|
||||||
private void bindToEvents() {
|
private void bindToEvents() {
|
||||||
|
|
||||||
EventBusProvider.INSTANCE.addHandler(UIStateEvent.TYPE,
|
EventBusProvider.INSTANCE.addHandler(UIStateEvent.TYPE, new UIStateEvent.UIStateEventHandler() {
|
||||||
new UIStateEvent.UIStateEventHandler() {
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onChange(UIStateEvent event) {
|
public void onChange(UIStateEvent event) {
|
||||||
manageStateEvents(event);
|
manageStateEvents(event);
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
EventBusProvider.INSTANCE.addHandler(DataMinerWorkAreaEvent.TYPE,
|
EventBusProvider.INSTANCE.addHandler(DataMinerWorkAreaEvent.TYPE,
|
||||||
new DataMinerWorkAreaEvent.DataMinerWorkAreaEventHandler() {
|
new DataMinerWorkAreaEvent.DataMinerWorkAreaEventHandler() {
|
||||||
|
@ -107,19 +108,16 @@ public class OutputDataSetsPanel extends FramedPanel {
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
EventBusProvider.INSTANCE
|
EventBusProvider.INSTANCE.addHandler(RefreshDataMinerWorkAreaEvent.TYPE,
|
||||||
.addHandler(
|
new RefreshDataMinerWorkAreaEvent.RefreshDataMinerWorkAreaEventHandler() {
|
||||||
RefreshDataMinerWorkAreaEvent.TYPE,
|
|
||||||
new RefreshDataMinerWorkAreaEvent.RefreshDataMinerWorkAreaEventHandler() {
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onRefresh(
|
public void onRefresh(RefreshDataMinerWorkAreaEvent event) {
|
||||||
RefreshDataMinerWorkAreaEvent event) {
|
manageRefreshDataMinerWorkAreaEvents(event);
|
||||||
manageRefreshDataMinerWorkAreaEvents(event);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -142,8 +140,7 @@ public class OutputDataSetsPanel extends FramedPanel {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void manageDataMinerWorkAreaEvents(DataMinerWorkAreaEvent event) {
|
private void manageDataMinerWorkAreaEvents(DataMinerWorkAreaEvent event) {
|
||||||
Log.debug("OutputDataSetsPanel recieved DataMinerWorkAreaEvent: "
|
Log.debug("OutputDataSetsPanel recieved DataMinerWorkAreaEvent: " + event);
|
||||||
+ event);
|
|
||||||
if (event == null) {
|
if (event == null) {
|
||||||
Log.error("DataMinerWorkAreaEvent");
|
Log.error("DataMinerWorkAreaEvent");
|
||||||
return;
|
return;
|
||||||
|
@ -172,10 +169,8 @@ public class OutputDataSetsPanel extends FramedPanel {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void manageRefreshDataMinerWorkAreaEvents(
|
private void manageRefreshDataMinerWorkAreaEvents(RefreshDataMinerWorkAreaEvent event) {
|
||||||
RefreshDataMinerWorkAreaEvent event) {
|
Log.debug("OutputDataSetsPanel recieved RefreshDataMinerWorkAreaEvent: " + event);
|
||||||
Log.debug("OutputDataSetsPanel recieved RefreshDataMinerWorkAreaEvent: "
|
|
||||||
+ event);
|
|
||||||
if (event == null) {
|
if (event == null) {
|
||||||
Log.error("RefreshDataMinerWorkAreaEvent");
|
Log.error("RefreshDataMinerWorkAreaEvent");
|
||||||
return;
|
return;
|
||||||
|
@ -195,17 +190,14 @@ public class OutputDataSetsPanel extends FramedPanel {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void create(DataMinerWorkAreaEvent event) {
|
private void create(DataMinerWorkAreaEvent event) {
|
||||||
|
Log.debug("Create OutputDataSetsPanel");
|
||||||
try {
|
try {
|
||||||
|
|
||||||
if (event == null
|
if (event == null || event.getDataMinerWorkArea() == null
|
||||||
|| event.getDataMinerWorkArea() == null
|
|
||||||
|| event.getDataMinerWorkArea().getOutputDataSets() == null
|
|| event.getDataMinerWorkArea().getOutputDataSets() == null
|
||||||
|| event.getDataMinerWorkArea().getOutputDataSets()
|
|| event.getDataMinerWorkArea().getOutputDataSets().getFolder() == null
|
||||||
.getFolder() == null
|
|| event.getDataMinerWorkArea().getOutputDataSets().getFolder().getId() == null
|
||||||
|| event.getDataMinerWorkArea().getOutputDataSets()
|
|| event.getDataMinerWorkArea().getOutputDataSets().getFolder().getId().isEmpty()) {
|
||||||
.getFolder().getId() == null
|
|
||||||
|| event.getDataMinerWorkArea().getOutputDataSets()
|
|
||||||
.getFolder().getId().isEmpty()) {
|
|
||||||
if (v != null) {
|
if (v != null) {
|
||||||
remove(v);
|
remove(v);
|
||||||
forceLayout();
|
forceLayout();
|
||||||
|
@ -215,17 +207,18 @@ public class OutputDataSetsPanel extends FramedPanel {
|
||||||
}
|
}
|
||||||
|
|
||||||
List<String> showProperties = new ArrayList<String>();
|
List<String> showProperties = new ArrayList<String>();
|
||||||
for (DataSpacePropertiesType dataSpaceProperties : DataSpacePropertiesType
|
for (DataSpacePropertiesType dataSpaceProperties : DataSpacePropertiesType.values()) {
|
||||||
.values()) {
|
|
||||||
showProperties.add(dataSpaceProperties.getLabel());
|
showProperties.add(dataSpaceProperties.getLabel());
|
||||||
}
|
}
|
||||||
FilterCriteria filterCriteria = new FilterCriteria();
|
FilterCriteria filterCriteria = new FilterCriteria();
|
||||||
Map<String, String> map = new HashMap<String, String>();
|
Map<String, String> map = new HashMap<String, String>();
|
||||||
filterCriteria.setRequiredProperties(map);
|
filterCriteria.setRequiredProperties(map);
|
||||||
|
|
||||||
wsResourcesExplorerPanel = new WorkspaceResourcesExplorerPanel(
|
Log.debug("Create wsResourcesExplorerPanel for Output: ["
|
||||||
event.getDataMinerWorkArea().getOutputDataSets()
|
+ event.getDataMinerWorkArea().getOutputDataSets().getFolder().getId() + ", false, "
|
||||||
.getFolder().getId(), false, showProperties,
|
+ showProperties + ", " + filterCriteria + ", true, " + DISPLAY_FIELD.CREATION_DATE + "]");
|
||||||
|
wsResourcesExplorerPanel = new WorkspaceResourcesExplorerPanelPaginated(
|
||||||
|
event.getDataMinerWorkArea().getOutputDataSets().getFolder().getId(), false, showProperties,
|
||||||
filterCriteria, true, DISPLAY_FIELD.CREATION_DATE);
|
filterCriteria, true, DISPLAY_FIELD.CREATION_DATE);
|
||||||
|
|
||||||
WorskpaceExplorerSelectNotificationListener wsResourceExplorerListener = new WorskpaceExplorerSelectNotificationListener() {
|
WorskpaceExplorerSelectNotificationListener wsResourceExplorerListener = new WorskpaceExplorerSelectNotificationListener() {
|
||||||
|
@ -253,23 +246,22 @@ public class OutputDataSetsPanel extends FramedPanel {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
wsResourcesExplorerPanel
|
wsResourcesExplorerPanel.addWorkspaceExplorerSelectNotificationListener(wsResourceExplorerListener);
|
||||||
.addWorkspaceExplorerSelectNotificationListener(wsResourceExplorerListener);
|
wsResourcesExplorerPanel.ensureDebugId("wsResourceExplorerPanelForOutput");
|
||||||
wsResourcesExplorerPanel.ensureDebugId("wsResourceExplorerPanel");
|
|
||||||
wsResourcesExplorerPanel.setHeightToInternalScroll(300);
|
wsResourcesExplorerPanel.setHeightToInternalScroll(300);
|
||||||
|
|
||||||
|
Log.debug("Define DND for InputDataSetsPanel");
|
||||||
|
|
||||||
// DND
|
// DND
|
||||||
|
|
||||||
dnd = new MultipleDNDUpload();
|
dnd = new MultipleDNDUpload();
|
||||||
dnd.setParameters(event.getDataMinerWorkArea().getOutputDataSets()
|
dnd.setParameters(event.getDataMinerWorkArea().getOutputDataSets().getFolder().getId(), UPLOAD_TYPE.File);
|
||||||
.getFolder().getId(), UPLOAD_TYPE.File);
|
|
||||||
dnd.addUniqueContainer(wsResourcesExplorerPanel);
|
dnd.addUniqueContainer(wsResourcesExplorerPanel);
|
||||||
WorskpaceUploadNotificationListener workspaceUploaderListener = new WorskpaceUploadNotificationListener() {
|
WorskpaceUploadNotificationListener workspaceUploaderListener = new WorskpaceUploadNotificationListener() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onUploadCompleted(String parentId, String itemId) {
|
public void onUploadCompleted(String parentId, String itemId) {
|
||||||
Log.debug("Upload completed: [parentID: " + parentId
|
Log.debug("Upload completed: [parentID: " + parentId + ", itemId: " + itemId + "]");
|
||||||
+ ", itemId: " + itemId + "]");
|
|
||||||
wsResourcesExplorerPanel.refreshRootFolderView();
|
wsResourcesExplorerPanel.refreshRootFolderView();
|
||||||
forceLayout();
|
forceLayout();
|
||||||
|
|
||||||
|
@ -277,22 +269,18 @@ public class OutputDataSetsPanel extends FramedPanel {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onUploadAborted(String parentId, String itemId) {
|
public void onUploadAborted(String parentId, String itemId) {
|
||||||
Log.debug("Upload Aborted: [parentID: " + parentId
|
Log.debug("Upload Aborted: [parentID: " + parentId + ", itemId: " + itemId + "]");
|
||||||
+ ", itemId: " + itemId + "]");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onError(String parentId, String itemId,
|
public void onError(String parentId, String itemId, Throwable throwable) {
|
||||||
Throwable throwable) {
|
Log.debug("Upload Error: [parentID: " + parentId + ", itemId: " + itemId + "]");
|
||||||
Log.debug("Upload Error: [parentID: " + parentId
|
|
||||||
+ ", itemId: " + itemId + "]");
|
|
||||||
throwable.printStackTrace();
|
throwable.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onOverwriteCompleted(String parentId, String itemId) {
|
public void onOverwriteCompleted(String parentId, String itemId) {
|
||||||
Log.debug("Upload Override Completed: [parentID: "
|
Log.debug("Upload Override Completed: [parentID: " + parentId + ", itemId: " + itemId + "]");
|
||||||
+ parentId + ", itemId: " + itemId + "]");
|
|
||||||
wsResourcesExplorerPanel.refreshRootFolderView();
|
wsResourcesExplorerPanel.refreshRootFolderView();
|
||||||
forceLayout();
|
forceLayout();
|
||||||
}
|
}
|
||||||
|
@ -358,26 +346,31 @@ public class OutputDataSetsPanel extends FramedPanel {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onResize(ResizeEvent event) {
|
public void onResize(ResizeEvent event) {
|
||||||
int scrollBarHeight = event.getHeight()
|
int scrollBarHeight = event.getHeight() - toolBar.getElement().getHeight(false);
|
||||||
- toolBar.getElement().getHeight(false);
|
|
||||||
Log.debug("ScrollBarHeight: " + scrollBarHeight);
|
Log.debug("ScrollBarHeight: " + scrollBarHeight);
|
||||||
wsResourcesExplorerPanel
|
wsResourcesExplorerPanel.setHeightToInternalScroll(scrollBarHeight);
|
||||||
.setHeightToInternalScroll(scrollBarHeight);
|
|
||||||
forceLayout();
|
forceLayout();
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
forceLayout();
|
forceLayout();
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Throwable e) {
|
||||||
Log.error("Error opening wsResourceExplorerPanel");
|
Log.error("Error opening wsResourceExplorerPanel: " + e.getLocalizedMessage(), e);
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void refreshWSResourceExplorerPanel() {
|
private void refreshWSResourceExplorerPanel() {
|
||||||
if (wsResourcesExplorerPanel != null) {
|
if (wsResourcesExplorerPanel != null) {
|
||||||
wsResourcesExplorerPanel.refreshRootFolderView();
|
try {
|
||||||
|
wsResourcesExplorerPanel.refreshRootFolderView();
|
||||||
|
|
||||||
|
// wsResourcesExplorerPanel.hardRefresh();
|
||||||
|
} catch (Exception e) {
|
||||||
|
Log.error("Error retrieving data: " + e.getLocalizedMessage());
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -392,21 +385,24 @@ public class OutputDataSetsPanel extends FramedPanel {
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
Log.error("Error in OutputDataSetsPanel: "
|
Log.error("Error in OutputDataSetsPanel: " + e.getLocalizedMessage());
|
||||||
+ e.getLocalizedMessage());
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void deleteItem(SelectEvent event) {
|
private void deleteItem(SelectEvent event) {
|
||||||
ItemDescription itemDescription = new ItemDescription(
|
Log.debug("Selected Item: " + selectedItem);
|
||||||
selectedItem.getId(), selectedItem.getName(),
|
if (selectedItem != null) {
|
||||||
selectedItem.getOwner(), selectedItem.getPath(), selectedItem
|
|
||||||
.getType().name());
|
ItemDescription itemDescription = new ItemDescription(selectedItem.getId(), selectedItem.getName(),
|
||||||
DeleteItemRequestEvent deleteItemEvent = new DeleteItemRequestEvent(
|
selectedItem.getOwner(), selectedItem.getPath(), selectedItem.getType().name());
|
||||||
DataMinerWorkAreaElementType.OutputDataSets, itemDescription);
|
DeleteItemRequestEvent deleteItemEvent = new DeleteItemRequestEvent(
|
||||||
EventBusProvider.INSTANCE.fireEvent(deleteItemEvent);
|
DataMinerWorkAreaElementType.OutputDataSets, itemDescription);
|
||||||
Log.debug("Fired: " + deleteItemEvent);
|
EventBusProvider.INSTANCE.fireEvent(deleteItemEvent);
|
||||||
|
Log.debug("Fired: " + deleteItemEvent);
|
||||||
|
} else {
|
||||||
|
UtilsGXT3.info("Attention", "Select a item!");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void downloadFile() {
|
private void downloadFile() {
|
||||||
|
@ -414,51 +410,39 @@ public class OutputDataSetsPanel extends FramedPanel {
|
||||||
if (selectedItem.isFolder()) {
|
if (selectedItem.isFolder()) {
|
||||||
StringBuilder actionUrl = new StringBuilder();
|
StringBuilder actionUrl = new StringBuilder();
|
||||||
actionUrl.append(GWT.getModuleBaseURL());
|
actionUrl.append(GWT.getModuleBaseURL());
|
||||||
actionUrl
|
actionUrl.append(Constants.DOWNLOAD_FOLDER_SERVLET + "?"
|
||||||
.append(Constants.DOWNLOAD_FOLDER_SERVLET
|
+ Constants.DOWNLOAD_FOLDER_SERVLET_ITEM_ID_PARAMETER + "=" + selectedItem.getId() + "&"
|
||||||
+ "?"
|
+ Constants.DOWNLOAD_FOLDER_SERVLET_FOLDER_NAME_PARAMETER + "=" + selectedItem.getName() + "&"
|
||||||
+ Constants.DOWNLOAD_FOLDER_SERVLET_ITEM_ID_PARAMETER
|
+ Constants.CURR_GROUP_ID + "=" + GCubeClientContext.getCurrentContextId());
|
||||||
+ "="
|
|
||||||
+ selectedItem.getId()
|
|
||||||
+ "&"
|
|
||||||
+ Constants.DOWNLOAD_FOLDER_SERVLET_FOLDER_NAME_PARAMETER
|
|
||||||
+ "=" + selectedItem.getName() + "&"
|
|
||||||
+ Constants.CURR_GROUP_ID + "="
|
|
||||||
+ GCubeClientContext.getCurrentContextId());
|
|
||||||
|
|
||||||
Log.debug("Retrieved link: " + actionUrl);
|
Log.debug("Retrieved link: " + actionUrl);
|
||||||
Window.open(actionUrl.toString(), selectedItem.getName(), "");
|
Window.open(actionUrl.toString(), selectedItem.getName(), "");
|
||||||
} else {
|
} else {
|
||||||
final ItemDescription itemDescription = new ItemDescription(
|
final ItemDescription itemDescription = new ItemDescription(selectedItem.getId(),
|
||||||
selectedItem.getId(), selectedItem.getName(),
|
selectedItem.getName(), selectedItem.getOwner(), selectedItem.getPath(),
|
||||||
selectedItem.getOwner(), selectedItem.getPath(),
|
|
||||||
selectedItem.getType().name());
|
selectedItem.getType().name());
|
||||||
|
|
||||||
DataMinerPortletServiceAsync.INSTANCE.getPublicLink(
|
DataMinerPortletServiceAsync.INSTANCE.getPublicLink(itemDescription, new AsyncCallback<String>() {
|
||||||
itemDescription, new AsyncCallback<String>() {
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onFailure(Throwable caught) {
|
public void onFailure(Throwable caught) {
|
||||||
if (caught instanceof SessionExpiredServiceException) {
|
if (caught instanceof SessionExpiredServiceException) {
|
||||||
EventBusProvider.INSTANCE
|
EventBusProvider.INSTANCE.fireEvent(new SessionExpiredEvent());
|
||||||
.fireEvent(new SessionExpiredEvent());
|
} else {
|
||||||
} else {
|
Log.error("Error open file: " + caught.getLocalizedMessage());
|
||||||
Log.error("Error open file: "
|
UtilsGXT3.alert("Error", caught.getLocalizedMessage());
|
||||||
+ caught.getLocalizedMessage());
|
}
|
||||||
UtilsGXT3.alert("Error",
|
caught.printStackTrace();
|
||||||
caught.getLocalizedMessage());
|
|
||||||
}
|
|
||||||
caught.printStackTrace();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(String link) {
|
public void onSuccess(String link) {
|
||||||
Log.debug("Retrieved link: " + link);
|
Log.debug("Retrieved link: " + link);
|
||||||
Window.open(link, itemDescription.getName(), "");
|
Window.open(link, itemDescription.getName(), "");
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -104,59 +104,66 @@ public class OperatorsPanel extends FramedPanel {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void manageOperatorsClassificationEvent(OperatorsClassificationEvent event) {
|
private void manageOperatorsClassificationEvent(OperatorsClassificationEvent event) {
|
||||||
if (event.getOperatorsClassificationRequestType().compareTo(OperatorsClassificationRequestType.ByName) == 0) {
|
try {
|
||||||
if (currentClassificationName.compareTo(event.getClassificationName()) == 0) {
|
|
||||||
waitMessage(false);
|
|
||||||
if (event.getOperatorsClassification() != null) {
|
|
||||||
operatorsClassification = event.getOperatorsClassification();
|
|
||||||
operators.clear();
|
|
||||||
operators.addAll(event.getOperatorsClassification().getOperators());
|
|
||||||
String operatorId = event.getOperatorId();
|
|
||||||
|
|
||||||
Log.debug("ShowCategoriesList");
|
if (event.getOperatorsClassificationRequestType()
|
||||||
List<OperatorCategoryPanel> categoryPanels = mapCategoriesPanels.get(currentClassificationName);
|
.compareTo(OperatorsClassificationRequestType.ByName) == 0) {
|
||||||
if (categoryPanels == null) {
|
if (currentClassificationName.compareTo(event.getClassificationName()) == 0) {
|
||||||
categoryPanels = new ArrayList<OperatorCategoryPanel>();
|
waitMessage(false);
|
||||||
if (operatorsClassification != null) {
|
if (event.getOperatorsClassification() != null) {
|
||||||
for (OperatorCategory cat : operatorsClassification.getOperatorCategories()) {
|
operatorsClassification = event.getOperatorsClassification();
|
||||||
categoryPanels.add(new OperatorCategoryPanel(handler, cat));
|
operators.clear();
|
||||||
|
operators.addAll(event.getOperatorsClassification().getOperators());
|
||||||
|
String operatorId = event.getOperatorId();
|
||||||
|
|
||||||
|
Log.debug("ShowCategoriesList");
|
||||||
|
List<OperatorCategoryPanel> categoryPanels = mapCategoriesPanels.get(currentClassificationName);
|
||||||
|
if (categoryPanels == null) {
|
||||||
|
categoryPanels = new ArrayList<OperatorCategoryPanel>();
|
||||||
|
if (operatorsClassification != null) {
|
||||||
|
for (OperatorCategory cat : operatorsClassification.getOperatorCategories()) {
|
||||||
|
categoryPanels.add(new OperatorCategoryPanel(handler, cat));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
mapCategoriesPanels.put(currentClassificationName, categoryPanels);
|
||||||
}
|
}
|
||||||
mapCategoriesPanels.put(currentClassificationName, categoryPanels);
|
|
||||||
}
|
|
||||||
|
|
||||||
v.clear();
|
v.clear();
|
||||||
for (OperatorCategoryPanel panel : categoryPanels) {
|
for (OperatorCategoryPanel panel : categoryPanels) {
|
||||||
v.add(panel);
|
v.add(panel);
|
||||||
|
|
||||||
}
|
|
||||||
view = View.CATEGORIES;
|
|
||||||
if (operatorId != null && !operatorId.isEmpty()) {
|
|
||||||
OperatorCategory operatorCategoryDefault = null;
|
|
||||||
Operator operatorDefault = null;
|
|
||||||
for (Operator op : operators) {
|
|
||||||
if (op.getId().compareTo(operatorId) == 0) {
|
|
||||||
operatorDefault = op;
|
|
||||||
operatorCategoryDefault = op.getCategory();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (operatorCategoryDefault != null) {
|
view = View.CATEGORIES;
|
||||||
for (OperatorCategoryPanel opCategoryPanel : categoryPanels) {
|
if (operatorId != null && !operatorId.isEmpty()) {
|
||||||
if (opCategoryPanel.getCategory().compareTo(operatorCategoryDefault) == 0) {
|
OperatorCategory operatorCategoryDefault = null;
|
||||||
opCategoryPanel.setOperatorDefault(operatorDefault);
|
Operator operatorDefault = null;
|
||||||
|
for (Operator op : operators) {
|
||||||
|
if (op.getId().compareTo(operatorId) == 0) {
|
||||||
|
operatorDefault = op;
|
||||||
|
operatorCategoryDefault = op.getCategory();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
if (operatorCategoryDefault != null) {
|
||||||
|
for (OperatorCategoryPanel opCategoryPanel : categoryPanels) {
|
||||||
|
if (opCategoryPanel.getCategory().compareTo(operatorCategoryDefault) == 0) {
|
||||||
|
opCategoryPanel.setOperatorDefault(operatorDefault);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
forceLayout();
|
||||||
}
|
}
|
||||||
|
|
||||||
forceLayout();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
} catch (Throwable e) {
|
||||||
|
Log.error("Error in OperatorsPanel: " + e.getLocalizedMessage(), e);
|
||||||
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,12 +19,16 @@ import org.gcube.portlets.widgets.dataminermanagerwidget.client.tr.TabularResour
|
||||||
import org.gcube.portlets.widgets.dataminermanagerwidget.client.util.UtilsGXT3;
|
import org.gcube.portlets.widgets.dataminermanagerwidget.client.util.UtilsGXT3;
|
||||||
import org.gcube.portlets.widgets.dataminermanagerwidget.shared.exception.SessionExpiredServiceException;
|
import org.gcube.portlets.widgets.dataminermanagerwidget.shared.exception.SessionExpiredServiceException;
|
||||||
import org.gcube.portlets.widgets.dataminermanagerwidget.shared.workspace.ItemDescription;
|
import org.gcube.portlets.widgets.dataminermanagerwidget.shared.workspace.ItemDescription;
|
||||||
|
import org.gcube.portlets.widgets.netcdfbasicwidgets.client.event.SelectVariableEvent;
|
||||||
|
import org.gcube.portlets.widgets.netcdfbasicwidgets.client.event.SelectVariableEvent.SelectVariableEventHandler;
|
||||||
|
import org.gcube.portlets.widgets.netcdfbasicwidgets.client.widgets.NetCDFPreviewDialog;
|
||||||
import org.gcube.portlets.widgets.wsexplorer.client.notification.WorkspaceExplorerSelectNotification.WorskpaceExplorerSelectNotificationListener;
|
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.client.select.WorkspaceExplorerSelectDialog;
|
||||||
import org.gcube.portlets.widgets.wsexplorer.shared.Item;
|
import org.gcube.portlets.widgets.wsexplorer.shared.Item;
|
||||||
import org.gcube.portlets.widgets.wsexplorer.shared.ItemType;
|
import org.gcube.portlets.widgets.wsexplorer.shared.ItemType;
|
||||||
|
|
||||||
import com.allen_sauer.gwt.log.client.Log;
|
import com.allen_sauer.gwt.log.client.Log;
|
||||||
|
import com.google.gwt.core.client.GWT;
|
||||||
import com.google.gwt.user.client.Window;
|
import com.google.gwt.user.client.Window;
|
||||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||||
import com.google.gwt.user.client.ui.Widget;
|
import com.google.gwt.user.client.ui.Widget;
|
||||||
|
@ -61,6 +65,7 @@ public class FileFld extends AbstractFld {
|
||||||
private TextButton selectTRButton2;
|
private TextButton selectTRButton2;
|
||||||
private TextButton cancelButton;
|
private TextButton cancelButton;
|
||||||
private TextButton downloadButton;
|
private TextButton downloadButton;
|
||||||
|
private TextButton netcdfButton;
|
||||||
|
|
||||||
private ItemDescription selectedFileItem = null;
|
private ItemDescription selectedFileItem = null;
|
||||||
private TabularResourceData tabularResourceData;
|
private TabularResourceData tabularResourceData;
|
||||||
|
@ -120,14 +125,20 @@ public class FileFld extends AbstractFld {
|
||||||
|
|
||||||
HtmlLayoutContainer descr;
|
HtmlLayoutContainer descr;
|
||||||
|
|
||||||
if (fileParameter.getDescription() == null) {
|
if (fileParameter.getDescription() == null || fileParameter.getDescription().isEmpty()) {
|
||||||
descr = new HtmlLayoutContainer("<p style='margin-left:5px !important;'></p>");
|
descr = new HtmlLayoutContainer("<p style='margin-left:5px !important;'></p>");
|
||||||
descr.addStyleName("workflow-fieldDescription");
|
descr.addStyleName("workflow-fieldDescription");
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
descr = new HtmlLayoutContainer(
|
if (fileParameter.isNetcdf()) {
|
||||||
"<p style='margin-left:5px !important;'>" + fileParameter.getDescription() + "</p>");
|
String des = fileParameter.getDescription().replaceFirst("\\[NETCDF\\]", "");
|
||||||
descr.addStyleName("workflow-fieldDescription");
|
descr = new HtmlLayoutContainer("<p style='margin-left:5px !important;'>" + des + "</p>");
|
||||||
|
descr.addStyleName("workflow-fieldDescription");
|
||||||
|
} else {
|
||||||
|
descr = new HtmlLayoutContainer(
|
||||||
|
"<p style='margin-left:5px !important;'>" + fileParameter.getDescription() + "</p>");
|
||||||
|
descr.addStyleName("workflow-fieldDescription");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
horiz.add(tabContainer, new BoxLayoutData(new Margins()));
|
horiz.add(tabContainer, new BoxLayoutData(new Margins()));
|
||||||
|
@ -252,6 +263,16 @@ public class FileFld extends AbstractFld {
|
||||||
});
|
});
|
||||||
downloadButton.setToolTip("Download File");
|
downloadButton.setToolTip("Download File");
|
||||||
|
|
||||||
|
netcdfButton = new TextButton("");
|
||||||
|
netcdfButton.setIcon(DataMinerManagerPanel.resources.netcdf());
|
||||||
|
netcdfButton.addSelectHandler(new SelectEvent.SelectHandler() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSelect(SelectEvent event) {
|
||||||
|
showNetCDFFile();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void useTabularResource() {
|
private void useTabularResource() {
|
||||||
|
@ -261,7 +282,7 @@ public class FileFld extends AbstractFld {
|
||||||
selectedFileItem.setPublicLink(tabularResourceData.getTabularResourceId());
|
selectedFileItem.setPublicLink(tabularResourceData.getTabularResourceId());
|
||||||
showFieldWithTRSelection();
|
showFieldWithTRSelection();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void retrieveFileInformation(final Item item) {
|
private void retrieveFileInformation(final Item item) {
|
||||||
Log.debug("Retrieved: " + item);
|
Log.debug("Retrieved: " + item);
|
||||||
final ItemDescription itemDescription = new ItemDescription(item.getId(), item.getName(), item.getOwner(),
|
final ItemDescription itemDescription = new ItemDescription(item.getId(), item.getName(), item.getOwner(),
|
||||||
|
@ -323,6 +344,27 @@ public class FileFld extends AbstractFld {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void showNetCDFFile() {
|
||||||
|
if (selectedFileItem != null) {
|
||||||
|
GWT.log("NetcdfBasicWidgetsManager");
|
||||||
|
|
||||||
|
// Example
|
||||||
|
SelectVariableEventHandler handler = new SelectVariableEventHandler() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onResponse(SelectVariableEvent event) {
|
||||||
|
GWT.log("SelectVariable Response: " + event);
|
||||||
|
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
NetCDFPreviewDialog netcdfDialog = new NetCDFPreviewDialog(selectedFileItem.getPublicLink());
|
||||||
|
netcdfDialog.addSelectVariableEventHandler(handler);
|
||||||
|
netcdfDialog.setZIndex(XDOM.getTopZIndex());
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void showNoSelectionField() {
|
private void showNoSelectionField() {
|
||||||
vp.clear();
|
vp.clear();
|
||||||
vp.add(selectTRButton);
|
vp.add(selectTRButton);
|
||||||
|
@ -347,6 +389,9 @@ public class FileFld extends AbstractFld {
|
||||||
h.add(selectTRButton2, new BoxLayoutData(new Margins()));
|
h.add(selectTRButton2, new BoxLayoutData(new Margins()));
|
||||||
h.add(selectButton2, new BoxLayoutData(new Margins()));
|
h.add(selectButton2, new BoxLayoutData(new Margins()));
|
||||||
h.add(downloadButton, new BoxLayoutData(new Margins()));
|
h.add(downloadButton, new BoxLayoutData(new Margins()));
|
||||||
|
if (fileParameter.isNetcdf()) {
|
||||||
|
h.add(netcdfButton, new BoxLayoutData(new Margins()));
|
||||||
|
}
|
||||||
h.add(cancelButton, new BoxLayoutData(new Margins()));
|
h.add(cancelButton, new BoxLayoutData(new Margins()));
|
||||||
vp.clear();
|
vp.clear();
|
||||||
vp.add(h);
|
vp.add(h);
|
||||||
|
|
|
@ -89,6 +89,9 @@ public interface Resources extends ClientBundle {
|
||||||
|
|
||||||
@Source("download.png")
|
@Source("download.png")
|
||||||
ImageResource download();
|
ImageResource download();
|
||||||
|
|
||||||
|
@Source("show.png")
|
||||||
|
ImageResource netcdf();
|
||||||
|
|
||||||
@Source("cancel_circle.png")
|
@Source("cancel_circle.png")
|
||||||
ImageResource cancelCircle();
|
ImageResource cancelCircle();
|
||||||
|
|
|
@ -3,8 +3,13 @@ package org.gcube.portlets.widgets.dataminermanagerwidget.client.widgets;
|
||||||
import org.gcube.data.analysis.dataminermanagercl.shared.data.computations.ComputationId;
|
import org.gcube.data.analysis.dataminermanagercl.shared.data.computations.ComputationId;
|
||||||
import org.gcube.data.analysis.dataminermanagercl.shared.data.output.FileResource;
|
import org.gcube.data.analysis.dataminermanagercl.shared.data.output.FileResource;
|
||||||
import org.gcube.portlets.widgets.dataminermanagerwidget.client.DataMinerManagerPanel;
|
import org.gcube.portlets.widgets.dataminermanagerwidget.client.DataMinerManagerPanel;
|
||||||
|
import org.gcube.portlets.widgets.netcdfbasicwidgets.client.event.SelectVariableEvent;
|
||||||
|
import org.gcube.portlets.widgets.netcdfbasicwidgets.client.event.SelectVariableEvent.SelectVariableEventHandler;
|
||||||
|
import org.gcube.portlets.widgets.netcdfbasicwidgets.client.widgets.NetCDFPreviewDialog;
|
||||||
|
|
||||||
|
import com.google.gwt.core.client.GWT;
|
||||||
import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
|
import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
|
||||||
|
import com.sencha.gxt.core.client.dom.XDOM;
|
||||||
import com.sencha.gxt.core.client.util.Margins;
|
import com.sencha.gxt.core.client.util.Margins;
|
||||||
import com.sencha.gxt.widget.core.client.button.TextButton;
|
import com.sencha.gxt.widget.core.client.button.TextButton;
|
||||||
import com.sencha.gxt.widget.core.client.container.HtmlLayoutContainer;
|
import com.sencha.gxt.widget.core.client.container.HtmlLayoutContainer;
|
||||||
|
@ -59,8 +64,43 @@ public class FileViewer extends SimpleContainer {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
TextButton netcdfButton = new TextButton("");
|
||||||
|
netcdfButton.setIcon(DataMinerManagerPanel.resources.netcdf());
|
||||||
|
netcdfButton.addSelectHandler(new SelectEvent.SelectHandler() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSelect(SelectEvent event) {
|
||||||
|
showNetCDFFile();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
lc.add(downloadBtn, new VerticalLayoutData(-1, -1, new Margins(0)));
|
lc.add(downloadBtn, new VerticalLayoutData(-1, -1, new Margins(0)));
|
||||||
|
if (fileResource.isNetcdf()) {
|
||||||
|
lc.add(netcdfButton, new VerticalLayoutData(-1, -1, new Margins(0)));
|
||||||
|
}
|
||||||
add(lc);
|
add(lc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void showNetCDFFile() {
|
||||||
|
if (fileResource != null && fileResource.getUrl() != null && !fileResource.getUrl().isEmpty()
|
||||||
|
&& fileResource.isNetcdf()) {
|
||||||
|
GWT.log("NetcdfBasicWidgetsManager");
|
||||||
|
|
||||||
|
// Example
|
||||||
|
SelectVariableEventHandler handler = new SelectVariableEventHandler() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onResponse(SelectVariableEvent event) {
|
||||||
|
GWT.log("SelectVariable Response: " + event);
|
||||||
|
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
NetCDFPreviewDialog netcdfDialog = new NetCDFPreviewDialog(fileResource.getUrl());
|
||||||
|
netcdfDialog.addSelectVariableEventHandler(handler);
|
||||||
|
netcdfDialog.setZIndex(XDOM.getTopZIndex());
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,6 +21,11 @@
|
||||||
<inherits
|
<inherits
|
||||||
name='org.gcube.portlets.widgets.openlayerbasicwidgets.olbasicwidgets' />
|
name='org.gcube.portlets.widgets.openlayerbasicwidgets.olbasicwidgets' />
|
||||||
|
|
||||||
|
<!-- NetCDF Basic Widgets -->
|
||||||
|
<inherits
|
||||||
|
name='org.gcube.portlets.widgets.netcdfbasicwidgets.netcdfbasicwidgets' />
|
||||||
|
|
||||||
|
|
||||||
<!-- DataMiner Manager CL -->
|
<!-- DataMiner Manager CL -->
|
||||||
<inherits
|
<inherits
|
||||||
name='org.gcube.data.analysis.dataminermanagercl.dataminermanagercl' />
|
name='org.gcube.data.analysis.dataminermanagercl.dataminermanagercl' />
|
||||||
|
|
|
@ -17,8 +17,8 @@ import org.gcube.data.analysis.dataminermanagercl.shared.parameters.Parameter;
|
||||||
import org.gcube.data.analysis.dataminermanagercl.shared.process.ComputationStatus;
|
import org.gcube.data.analysis.dataminermanagercl.shared.process.ComputationStatus;
|
||||||
import org.gcube.data.analysis.dataminermanagercl.shared.process.Operator;
|
import org.gcube.data.analysis.dataminermanagercl.shared.process.Operator;
|
||||||
import org.gcube.data.analysis.dataminermanagercl.shared.process.OperatorsClassification;
|
import org.gcube.data.analysis.dataminermanagercl.shared.process.OperatorsClassification;
|
||||||
|
import org.gcube.portlets.widgets.dataminermanagerwidget.server.storage.StorageUtil;
|
||||||
import org.gcube.portlets.widgets.dataminermanagerwidget.server.util.DataMinerWorkAreaManager;
|
import org.gcube.portlets.widgets.dataminermanagerwidget.server.util.DataMinerWorkAreaManager;
|
||||||
import org.gcube.portlets.widgets.dataminermanagerwidget.server.util.StorageUtil;
|
|
||||||
import org.gcube.portlets.widgets.dataminermanagerwidget.server.util.TableReader;
|
import org.gcube.portlets.widgets.dataminermanagerwidget.server.util.TableReader;
|
||||||
import org.gcube.portlets.widgets.dataminermanagerwidget.shared.exception.ServiceException;
|
import org.gcube.portlets.widgets.dataminermanagerwidget.shared.exception.ServiceException;
|
||||||
import org.gcube.portlets.widgets.dataminermanagerwidget.shared.session.UserInfo;
|
import org.gcube.portlets.widgets.dataminermanagerwidget.shared.session.UserInfo;
|
||||||
|
@ -167,7 +167,8 @@ public class DataMinerManagerServiceImpl extends RemoteServiceServlet implements
|
||||||
HttpServletRequest httpRequest = this.getThreadLocalRequest();
|
HttpServletRequest httpRequest = this.getThreadLocalRequest();
|
||||||
ServiceCredentials serviceCredentials = SessionUtil
|
ServiceCredentials serviceCredentials = SessionUtil
|
||||||
.getServiceCredentials(httpRequest);
|
.getServiceCredentials(httpRequest);
|
||||||
Map<String, String> properties = StorageUtil.getProperties(
|
StorageUtil storageUtil = new StorageUtil();
|
||||||
|
Map<String, String> properties = storageUtil.getProperties(
|
||||||
serviceCredentials.getUserName(), itemDescription.getId());
|
serviceCredentials.getUserName(), itemDescription.getId());
|
||||||
logger.debug("Properties: " + properties);
|
logger.debug("Properties: " + properties);
|
||||||
|
|
||||||
|
@ -220,7 +221,8 @@ public class DataMinerManagerServiceImpl extends RemoteServiceServlet implements
|
||||||
ServiceCredentials serviceCredentials = SessionUtil
|
ServiceCredentials serviceCredentials = SessionUtil
|
||||||
.getServiceCredentials(httpRequest);
|
.getServiceCredentials(httpRequest);
|
||||||
logger.debug("DeleteItem(): " + itemDescription);
|
logger.debug("DeleteItem(): " + itemDescription);
|
||||||
StorageUtil.deleteItem(serviceCredentials.getUserName(),
|
StorageUtil storageUtil = new StorageUtil();
|
||||||
|
storageUtil.deleteItem(serviceCredentials.getUserName(),
|
||||||
itemDescription.getId());
|
itemDescription.getId());
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -284,7 +286,8 @@ public class DataMinerManagerServiceImpl extends RemoteServiceServlet implements
|
||||||
ServiceCredentials serviceCredentials = SessionUtil
|
ServiceCredentials serviceCredentials = SessionUtil
|
||||||
.getServiceCredentials(httpRequest);
|
.getServiceCredentials(httpRequest);
|
||||||
logger.debug("GetPublicLink(): " + itemDescription);
|
logger.debug("GetPublicLink(): " + itemDescription);
|
||||||
String link = StorageUtil.getPublicLink(
|
StorageUtil storageUtil = new StorageUtil();
|
||||||
|
String link = storageUtil.getPublicLink(
|
||||||
serviceCredentials.getUserName(), itemDescription.getId());
|
serviceCredentials.getUserName(), itemDescription.getId());
|
||||||
|
|
||||||
return link;
|
return link;
|
||||||
|
@ -355,7 +358,8 @@ public class DataMinerManagerServiceImpl extends RemoteServiceServlet implements
|
||||||
ServiceCredentials serviceCredentials = SessionUtil
|
ServiceCredentials serviceCredentials = SessionUtil
|
||||||
.getServiceCredentials(httpRequest);
|
.getServiceCredentials(httpRequest);
|
||||||
logger.debug("OutputDataByComputationItemt(): " + itemDescription);
|
logger.debug("OutputDataByComputationItemt(): " + itemDescription);
|
||||||
Map<String, String> properties = StorageUtil.getProperties(
|
StorageUtil storageUtil = new StorageUtil();
|
||||||
|
Map<String, String> properties = storageUtil.getProperties(
|
||||||
serviceCredentials.getUserName(), itemDescription.getId());
|
serviceCredentials.getUserName(), itemDescription.getId());
|
||||||
|
|
||||||
logger.debug("Properties: " + properties);
|
logger.debug("Properties: " + properties);
|
||||||
|
|
|
@ -3,7 +3,11 @@ package org.gcube.portlets.widgets.dataminermanagerwidget.server;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
|
import java.nio.file.Files;
|
||||||
|
import java.nio.file.Path;
|
||||||
|
import java.nio.file.StandardCopyOption;
|
||||||
|
|
||||||
import javax.servlet.ServletException;
|
import javax.servlet.ServletException;
|
||||||
import javax.servlet.http.HttpServlet;
|
import javax.servlet.http.HttpServlet;
|
||||||
|
@ -13,7 +17,7 @@ import javax.servlet.http.HttpSession;
|
||||||
|
|
||||||
import org.apache.commons.io.IOUtils;
|
import org.apache.commons.io.IOUtils;
|
||||||
import org.gcube.data.analysis.dataminermanagercl.server.util.ServiceCredentials;
|
import org.gcube.data.analysis.dataminermanagercl.server.util.ServiceCredentials;
|
||||||
import org.gcube.portlets.widgets.dataminermanagerwidget.server.util.StorageUtil;
|
import org.gcube.portlets.widgets.dataminermanagerwidget.server.storage.StorageUtil;
|
||||||
import org.gcube.portlets.widgets.dataminermanagerwidget.shared.Constants;
|
import org.gcube.portlets.widgets.dataminermanagerwidget.shared.Constants;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
@ -106,15 +110,21 @@ public class DownloadFolderServlet extends HttpServlet {
|
||||||
.getParameter(Constants.DOWNLOAD_FOLDER_SERVLET_FOLDER_NAME_PARAMETER);
|
.getParameter(Constants.DOWNLOAD_FOLDER_SERVLET_FOLDER_NAME_PARAMETER);
|
||||||
logger.debug("Request: [itemId=" + itemId + ", folderName="
|
logger.debug("Request: [itemId=" + itemId + ", folderName="
|
||||||
+ folderName + "]");
|
+ folderName + "]");
|
||||||
|
StorageUtil storageUtil=new StorageUtil();
|
||||||
File tmpZip = StorageUtil.zipFolder(
|
InputStream is = storageUtil.zipFolder(
|
||||||
serviceCredentials.getUserName(), itemId);
|
serviceCredentials.getUserName(), itemId);
|
||||||
|
Path tempFile = Files.createTempFile("dataMinerWidgetDownload", ".zip");
|
||||||
|
Files.copy(is, tempFile, StandardCopyOption.REPLACE_EXISTING);
|
||||||
|
File tmpZip= tempFile.toFile();
|
||||||
|
|
||||||
response.setHeader("Content-Disposition", "attachment; filename=\""
|
response.setHeader("Content-Disposition", "attachment; filename=\""
|
||||||
+ folderName + ".zip\"");
|
+ folderName + ".zip\"");
|
||||||
response.setContentType("application/zip");
|
response.setContentType("application/zip");
|
||||||
response.setHeader("Content-Length",
|
response.setHeader("Content-Length",
|
||||||
String.valueOf(tmpZip.length()));
|
String.valueOf(tmpZip.length()));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
OutputStream out = response.getOutputStream();
|
OutputStream out = response.getOutputStream();
|
||||||
|
|
||||||
FileInputStream fileTmpZip = new FileInputStream(tmpZip);
|
FileInputStream fileTmpZip = new FileInputStream(tmpZip);
|
||||||
|
@ -122,7 +132,7 @@ public class DownloadFolderServlet extends HttpServlet {
|
||||||
out.flush();
|
out.flush();
|
||||||
out.close();
|
out.close();
|
||||||
fileTmpZip.close();
|
fileTmpZip.close();
|
||||||
tmpZip.delete();
|
Files.delete(tempFile);
|
||||||
return;
|
return;
|
||||||
|
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
|
|
|
@ -0,0 +1,229 @@
|
||||||
|
package org.gcube.portlets.widgets.dataminermanagerwidget.server.storage;
|
||||||
|
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.net.URL;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.gcube.common.storagehub.client.StreamDescriptor;
|
||||||
|
import org.gcube.common.storagehub.client.dsl.FileContainer;
|
||||||
|
import org.gcube.common.storagehub.client.dsl.ItemContainer;
|
||||||
|
import org.gcube.common.storagehub.client.dsl.ListResolver;
|
||||||
|
import org.gcube.common.storagehub.client.dsl.OpenResolver;
|
||||||
|
import org.gcube.common.storagehub.client.dsl.StorageHubClient;
|
||||||
|
import org.gcube.common.storagehub.model.Metadata;
|
||||||
|
import org.gcube.common.storagehub.model.items.FolderItem;
|
||||||
|
import org.gcube.common.storagehub.model.items.Item;
|
||||||
|
import org.gcube.portlets.widgets.dataminermanagerwidget.shared.exception.ServiceException;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Giancarlo Panichi
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class StorageUtil {
|
||||||
|
|
||||||
|
private static Logger logger = LoggerFactory.getLogger(StorageUtil.class);
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param user
|
||||||
|
* user
|
||||||
|
* @param itemId
|
||||||
|
* item id
|
||||||
|
* @return map properties
|
||||||
|
* @throws ServiceException
|
||||||
|
* service exception
|
||||||
|
*/
|
||||||
|
public Map<String, String> getProperties(String user, String itemId) throws ServiceException {
|
||||||
|
try {
|
||||||
|
StorageHubClient shc = new StorageHubClient();
|
||||||
|
Item item = shc.open(itemId).asItem().get();
|
||||||
|
Metadata metadata = item.getPropertyMap();
|
||||||
|
Map<String, String> itemMap = new HashMap<String, String>();
|
||||||
|
Map<String, Object> metadataMap = metadata.getValues();
|
||||||
|
for (String key : metadataMap.keySet()) {
|
||||||
|
String s = String.valueOf(metadataMap.get(key));
|
||||||
|
itemMap.put(key, s);
|
||||||
|
}
|
||||||
|
return itemMap;
|
||||||
|
|
||||||
|
} catch (Throwable e) {
|
||||||
|
logger.error("Error retrieving properties: " + e.getLocalizedMessage(), e);
|
||||||
|
throw new ServiceException(e.getLocalizedMessage(), e);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param user
|
||||||
|
* user
|
||||||
|
* @param itemId
|
||||||
|
* item id
|
||||||
|
* @return input stream
|
||||||
|
* @throws ServiceException
|
||||||
|
* service exception
|
||||||
|
*/
|
||||||
|
public InputStream getInputStreamForItemOnWorkspace(String user, String itemId) throws ServiceException {
|
||||||
|
try {
|
||||||
|
logger.debug("getInputStreamForItemOnWorkspace: [user=" + user + ", itemId=" + itemId + "]");
|
||||||
|
StorageHubClient shc = new StorageHubClient();
|
||||||
|
FileContainer fileContainer = shc.open(itemId).asFile();
|
||||||
|
StreamDescriptor streamDescriptor = fileContainer.download();
|
||||||
|
return streamDescriptor.getStream();
|
||||||
|
|
||||||
|
} catch (Throwable e) {
|
||||||
|
logger.error("Error retrieving InputStream for File: " + e.getLocalizedMessage(), e);
|
||||||
|
throw new ServiceException(e.getLocalizedMessage(), e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param user
|
||||||
|
* user
|
||||||
|
* @param itemId
|
||||||
|
* item id
|
||||||
|
* @return public link
|
||||||
|
* @throws ServiceException
|
||||||
|
* service exception
|
||||||
|
*/
|
||||||
|
public String getPublicLink(String user, String itemId) throws ServiceException {
|
||||||
|
try {
|
||||||
|
logger.debug("getPublicLink: [user=" + user + ", itemId=" + itemId + "]");
|
||||||
|
StorageHubClient shc = new StorageHubClient();
|
||||||
|
URL url = shc.open(itemId).asFile().getPublicLink();
|
||||||
|
return url.toString();
|
||||||
|
|
||||||
|
} catch (Throwable e) {
|
||||||
|
logger.error("Error retrieving public link: " + e.getLocalizedMessage(), e);
|
||||||
|
throw new ServiceException(e.getLocalizedMessage(), e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param user
|
||||||
|
* user
|
||||||
|
* @param folderId
|
||||||
|
* folder id
|
||||||
|
* @return input stream
|
||||||
|
* @throws ServiceException
|
||||||
|
* service exception
|
||||||
|
*/
|
||||||
|
public InputStream zipFolder(String user, String folderId) throws ServiceException {
|
||||||
|
try {
|
||||||
|
logger.debug("zipFolder: [user=" + user + ", folderId=" + folderId + "]");
|
||||||
|
StorageHubClient shc = new StorageHubClient();
|
||||||
|
OpenResolver openResolver = shc.open(folderId);
|
||||||
|
|
||||||
|
ItemContainer<Item> itemContainer = openResolver.asItem();
|
||||||
|
Item item = itemContainer.get();
|
||||||
|
if (item instanceof FolderItem) {
|
||||||
|
StreamDescriptor streamDescriptor = openResolver.asFolder().download();
|
||||||
|
InputStream is = streamDescriptor.getStream();
|
||||||
|
return is;
|
||||||
|
} else {
|
||||||
|
throw new ServiceException("Is not a valid folder!");
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (Throwable e) {
|
||||||
|
logger.error("Error in zip Folder: " + e.getLocalizedMessage(), e);
|
||||||
|
throw new ServiceException(e.getLocalizedMessage(), e);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param user
|
||||||
|
* user
|
||||||
|
* @param itemName
|
||||||
|
* item name
|
||||||
|
* @return workspace item
|
||||||
|
* @throws ServiceException
|
||||||
|
* service exception
|
||||||
|
*/
|
||||||
|
public Item getItemInRootFolderOnWorkspace(String user, String itemName) throws ServiceException {
|
||||||
|
try {
|
||||||
|
logger.debug("GetItemInRootFolder: [user=" + user + ", itemName=" + itemName + "]");
|
||||||
|
StorageHubClient shc = new StorageHubClient();
|
||||||
|
ListResolver listResolver = shc.getWSRoot().findByName(itemName);
|
||||||
|
List<? extends Item> items = listResolver.getItems();
|
||||||
|
|
||||||
|
if (items != null && !items.isEmpty()) {
|
||||||
|
return items.get(0);
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (Throwable e) {
|
||||||
|
logger.error("Error in get Item in RootFolder: " + e.getLocalizedMessage(), e);
|
||||||
|
throw new ServiceException(e.getLocalizedMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param user
|
||||||
|
* user
|
||||||
|
* @param folderId
|
||||||
|
* folder id
|
||||||
|
* @param itemName
|
||||||
|
* item name
|
||||||
|
* @return workspace item
|
||||||
|
* @throws ServiceException
|
||||||
|
* service exception
|
||||||
|
*/
|
||||||
|
public Item getItemInFolderOnWorkspace(String user, String folderId, String itemName) throws ServiceException {
|
||||||
|
try {
|
||||||
|
logger.debug("GetItemInFolder: [user=" + user + ", folderId=" + folderId + ", itemName=" + itemName + "]");
|
||||||
|
StorageHubClient shc = new StorageHubClient();
|
||||||
|
ListResolver listResolver = shc.open(folderId).asFolder().findByName(itemName);
|
||||||
|
List<? extends Item> items = listResolver.getItems();
|
||||||
|
|
||||||
|
if (items != null && !items.isEmpty()) {
|
||||||
|
return items.get(0);
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (Throwable e) {
|
||||||
|
logger.error("Error in get Item in Folder: " + e.getLocalizedMessage(), e);
|
||||||
|
throw new ServiceException(e.getLocalizedMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param user
|
||||||
|
* user
|
||||||
|
* @param itemId
|
||||||
|
* item id
|
||||||
|
* @throws ServiceException
|
||||||
|
* service exception
|
||||||
|
*/
|
||||||
|
public void deleteItem(String user, String itemId) throws ServiceException {
|
||||||
|
try {
|
||||||
|
logger.debug("User: " + user + ", ItemId:" + itemId);
|
||||||
|
StorageHubClient shc = new StorageHubClient();
|
||||||
|
OpenResolver openResolver = shc.open(itemId);
|
||||||
|
|
||||||
|
ItemContainer<Item> itemContainer = openResolver.asItem();
|
||||||
|
itemContainer.delete();
|
||||||
|
|
||||||
|
return;
|
||||||
|
} catch (Throwable e) {
|
||||||
|
logger.error("Error deleting Item: " + e.getLocalizedMessage(), e);
|
||||||
|
throw new ServiceException(e.getLocalizedMessage());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -1,8 +1,8 @@
|
||||||
package org.gcube.portlets.widgets.dataminermanagerwidget.server.util;
|
package org.gcube.portlets.widgets.dataminermanagerwidget.server.util;
|
||||||
|
|
||||||
|
import org.gcube.common.storagehub.model.items.Item;
|
||||||
import org.gcube.common.homelibrary.home.workspace.WorkspaceItem;
|
|
||||||
import org.gcube.data.analysis.dataminermanagercl.server.util.ServiceCredentials;
|
import org.gcube.data.analysis.dataminermanagercl.server.util.ServiceCredentials;
|
||||||
|
import org.gcube.portlets.widgets.dataminermanagerwidget.server.storage.StorageUtil;
|
||||||
import org.gcube.portlets.widgets.dataminermanagerwidget.shared.exception.ServiceException;
|
import org.gcube.portlets.widgets.dataminermanagerwidget.shared.exception.ServiceException;
|
||||||
import org.gcube.portlets.widgets.dataminermanagerwidget.shared.workspace.Computations;
|
import org.gcube.portlets.widgets.dataminermanagerwidget.shared.workspace.Computations;
|
||||||
import org.gcube.portlets.widgets.dataminermanagerwidget.shared.workspace.DataMinerWorkArea;
|
import org.gcube.portlets.widgets.dataminermanagerwidget.shared.workspace.DataMinerWorkArea;
|
||||||
|
@ -24,8 +24,7 @@ public class DataMinerWorkAreaManager {
|
||||||
private static final String COMPUTED_DATA_FOLDER = "Output Data Sets";
|
private static final String COMPUTED_DATA_FOLDER = "Output Data Sets";
|
||||||
private static final String COMPUTATIONS_FOLDER = "Computations";
|
private static final String COMPUTATIONS_FOLDER = "Computations";
|
||||||
|
|
||||||
public static final Logger logger = LoggerFactory
|
public static final Logger logger = LoggerFactory.getLogger(DataMinerWorkAreaManager.class);
|
||||||
.getLogger(DataMinerWorkAreaManager.class);
|
|
||||||
|
|
||||||
private ServiceCredentials serviceCredentials;
|
private ServiceCredentials serviceCredentials;
|
||||||
|
|
||||||
|
@ -35,10 +34,10 @@ public class DataMinerWorkAreaManager {
|
||||||
|
|
||||||
public DataMinerWorkArea getDataMinerWorkArea() throws ServiceException {
|
public DataMinerWorkArea getDataMinerWorkArea() throws ServiceException {
|
||||||
DataMinerWorkArea dataMinerWorkArea = null;
|
DataMinerWorkArea dataMinerWorkArea = null;
|
||||||
|
StorageUtil storageUtil = new StorageUtil();
|
||||||
try {
|
try {
|
||||||
WorkspaceItem wiDataMinerFolder = StorageUtil
|
Item wiDataMinerFolder = storageUtil.getItemInRootFolderOnWorkspace(serviceCredentials.getUserName(),
|
||||||
.getItemInRootFolderOnWorkspace(serviceCredentials.getUserName(),
|
DATA_MINER_FOLDER);
|
||||||
DATA_MINER_FOLDER);
|
|
||||||
|
|
||||||
if (wiDataMinerFolder == null) {
|
if (wiDataMinerFolder == null) {
|
||||||
dataMinerWorkArea = new DataMinerWorkArea(null);
|
dataMinerWorkArea = new DataMinerWorkArea(null);
|
||||||
|
@ -46,13 +45,9 @@ public class DataMinerWorkAreaManager {
|
||||||
} else {
|
} else {
|
||||||
ItemDescription dataMinerWorkAreaFolder = null;
|
ItemDescription dataMinerWorkAreaFolder = null;
|
||||||
|
|
||||||
dataMinerWorkAreaFolder = new ItemDescription(
|
dataMinerWorkAreaFolder = new ItemDescription(wiDataMinerFolder.getId(), wiDataMinerFolder.getName(),
|
||||||
wiDataMinerFolder.getId(), wiDataMinerFolder.getName(),
|
wiDataMinerFolder.getOwner(), wiDataMinerFolder.getPath(), null);
|
||||||
wiDataMinerFolder.getOwner().getPortalLogin(),
|
dataMinerWorkArea = new DataMinerWorkArea(dataMinerWorkAreaFolder);
|
||||||
wiDataMinerFolder.getPath(), wiDataMinerFolder
|
|
||||||
.getType().name());
|
|
||||||
dataMinerWorkArea = new DataMinerWorkArea(
|
|
||||||
dataMinerWorkAreaFolder);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -65,18 +60,12 @@ public class DataMinerWorkAreaManager {
|
||||||
|
|
||||||
InputDataSets inputDataSets = null;
|
InputDataSets inputDataSets = null;
|
||||||
try {
|
try {
|
||||||
WorkspaceItem wiImportedDataFolder = StorageUtil
|
Item wiImportedDataFolder = storageUtil.getItemInFolderOnWorkspace(serviceCredentials.getUserName(),
|
||||||
.getItemInFolderOnWorkspace(serviceCredentials.getUserName(),
|
dataMinerWorkArea.getDataMinerWorkAreaFolder().getId(), IMPORTED_DATA_FOLDER);
|
||||||
dataMinerWorkArea.getDataMinerWorkAreaFolder()
|
|
||||||
.getId(), IMPORTED_DATA_FOLDER);
|
|
||||||
ItemDescription importedDataFolder = null;
|
ItemDescription importedDataFolder = null;
|
||||||
|
|
||||||
importedDataFolder = new ItemDescription(
|
importedDataFolder = new ItemDescription(wiImportedDataFolder.getId(), wiImportedDataFolder.getName(),
|
||||||
wiImportedDataFolder.getId(),
|
wiImportedDataFolder.getOwner(), wiImportedDataFolder.getPath(), null);
|
||||||
wiImportedDataFolder.getName(), wiImportedDataFolder
|
|
||||||
.getOwner().getPortalLogin(),
|
|
||||||
wiImportedDataFolder.getPath(), wiImportedDataFolder
|
|
||||||
.getType().name());
|
|
||||||
|
|
||||||
inputDataSets = new InputDataSets(importedDataFolder);
|
inputDataSets = new InputDataSets(importedDataFolder);
|
||||||
|
|
||||||
|
@ -87,18 +76,12 @@ public class DataMinerWorkAreaManager {
|
||||||
|
|
||||||
OutputDataSets outputDataSets = null;
|
OutputDataSets outputDataSets = null;
|
||||||
try {
|
try {
|
||||||
WorkspaceItem wiComputedDataFolder = StorageUtil
|
Item wiComputedDataFolder = storageUtil.getItemInFolderOnWorkspace(serviceCredentials.getUserName(),
|
||||||
.getItemInFolderOnWorkspace(serviceCredentials.getUserName(),
|
dataMinerWorkArea.getDataMinerWorkAreaFolder().getId(), COMPUTED_DATA_FOLDER);
|
||||||
dataMinerWorkArea.getDataMinerWorkAreaFolder()
|
|
||||||
.getId(), COMPUTED_DATA_FOLDER);
|
|
||||||
ItemDescription computedDataFolder = null;
|
ItemDescription computedDataFolder = null;
|
||||||
|
|
||||||
computedDataFolder = new ItemDescription(
|
computedDataFolder = new ItemDescription(wiComputedDataFolder.getId(), wiComputedDataFolder.getName(),
|
||||||
wiComputedDataFolder.getId(),
|
wiComputedDataFolder.getOwner(), wiComputedDataFolder.getPath(), null);
|
||||||
wiComputedDataFolder.getName(), wiComputedDataFolder
|
|
||||||
.getOwner().getPortalLogin(),
|
|
||||||
wiComputedDataFolder.getPath(), wiComputedDataFolder
|
|
||||||
.getType().name());
|
|
||||||
outputDataSets = new OutputDataSets(computedDataFolder);
|
outputDataSets = new OutputDataSets(computedDataFolder);
|
||||||
|
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
|
@ -108,18 +91,14 @@ public class DataMinerWorkAreaManager {
|
||||||
|
|
||||||
Computations computations = null;
|
Computations computations = null;
|
||||||
try {
|
try {
|
||||||
WorkspaceItem wiComputationsDataFolder = StorageUtil
|
Item wiComputationsDataFolder = storageUtil.getItemInFolderOnWorkspace(
|
||||||
.getItemInFolderOnWorkspace(serviceCredentials.getUserName(),
|
serviceCredentials.getUserName(), dataMinerWorkArea.getDataMinerWorkAreaFolder().getId(),
|
||||||
dataMinerWorkArea.getDataMinerWorkAreaFolder()
|
COMPUTATIONS_FOLDER);
|
||||||
.getId(), COMPUTATIONS_FOLDER);
|
|
||||||
ItemDescription computationsDataFolder = null;
|
ItemDescription computationsDataFolder = null;
|
||||||
|
|
||||||
computationsDataFolder = new ItemDescription(
|
computationsDataFolder = new ItemDescription(wiComputationsDataFolder.getId(),
|
||||||
wiComputationsDataFolder.getId(),
|
wiComputationsDataFolder.getName(), wiComputationsDataFolder.getOwner(),
|
||||||
wiComputationsDataFolder.getName(),
|
wiComputationsDataFolder.getPath(), null);
|
||||||
wiComputationsDataFolder.getOwner().getPortalLogin(),
|
|
||||||
wiComputationsDataFolder.getPath(),
|
|
||||||
wiComputationsDataFolder.getType().name());
|
|
||||||
computations = new Computations(computationsDataFolder);
|
computations = new Computations(computationsDataFolder);
|
||||||
|
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
|
|
|
@ -1,288 +0,0 @@
|
||||||
package org.gcube.portlets.widgets.dataminermanagerwidget.server.util;
|
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.InputStream;
|
|
||||||
import java.text.SimpleDateFormat;
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import org.gcube.common.homelibrary.home.HomeLibrary;
|
|
||||||
import org.gcube.common.homelibrary.home.workspace.Properties;
|
|
||||||
import org.gcube.common.homelibrary.home.workspace.Workspace;
|
|
||||||
import org.gcube.common.homelibrary.home.workspace.WorkspaceFolder;
|
|
||||||
import org.gcube.common.homelibrary.home.workspace.WorkspaceItem;
|
|
||||||
import org.gcube.common.homelibrary.util.zip.ZipUtil;
|
|
||||||
import org.gcube.contentmanagement.blobstorage.service.IClient;
|
|
||||||
import org.gcube.contentmanager.storageclient.wrapper.AccessType;
|
|
||||||
import org.gcube.contentmanager.storageclient.wrapper.MemoryType;
|
|
||||||
import org.gcube.contentmanager.storageclient.wrapper.StorageClient;
|
|
||||||
import org.gcube.portlets.widgets.dataminermanagerwidget.shared.exception.ServiceException;
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @author Giancarlo Panichi
|
|
||||||
*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public class StorageUtil {
|
|
||||||
|
|
||||||
private static Logger logger = LoggerFactory.getLogger(StorageUtil.class);
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param user
|
|
||||||
* user
|
|
||||||
* @param itemId
|
|
||||||
* item id
|
|
||||||
* @return map
|
|
||||||
* @throws ServiceException
|
|
||||||
* service exception
|
|
||||||
*/
|
|
||||||
public static Map<String, String> getProperties(String user, String itemId) throws ServiceException {
|
|
||||||
try {
|
|
||||||
Workspace ws = HomeLibrary.getUserWorkspace(user);
|
|
||||||
|
|
||||||
WorkspaceItem workSpaceItem = ws.getItem(itemId);
|
|
||||||
Properties properties = workSpaceItem.getProperties();
|
|
||||||
|
|
||||||
return properties.getProperties();
|
|
||||||
|
|
||||||
} catch (Throwable e) {
|
|
||||||
logger.error(e.getLocalizedMessage());
|
|
||||||
e.printStackTrace();
|
|
||||||
throw new ServiceException(e.getLocalizedMessage());
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param user
|
|
||||||
* User
|
|
||||||
* @param itemId
|
|
||||||
* Item id
|
|
||||||
* @return InputStream
|
|
||||||
* @throws ServiceException
|
|
||||||
* service exception
|
|
||||||
*/
|
|
||||||
public static InputStream getInputStreamForItemOnWorkspace(String user, String itemId) throws ServiceException {
|
|
||||||
Workspace ws;
|
|
||||||
try {
|
|
||||||
ws = HomeLibrary.getUserWorkspace(user);
|
|
||||||
|
|
||||||
WorkspaceItem workSpaceItem = ws.getItem(itemId);
|
|
||||||
if (workSpaceItem.isFolder()) {
|
|
||||||
throw new ServiceException("Folder is not valid!");
|
|
||||||
}
|
|
||||||
|
|
||||||
return getInputStream(user, workSpaceItem);
|
|
||||||
|
|
||||||
} catch (Throwable e) {
|
|
||||||
logger.error(e.getLocalizedMessage());
|
|
||||||
e.printStackTrace();
|
|
||||||
throw new ServiceException(e.getLocalizedMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param user
|
|
||||||
* User
|
|
||||||
* @param wi
|
|
||||||
* WorkspaceItem
|
|
||||||
* @return InputStream
|
|
||||||
* @throws ServiceException
|
|
||||||
* service exception
|
|
||||||
*/
|
|
||||||
private static InputStream getInputStream(String user, WorkspaceItem wi) throws ServiceException {
|
|
||||||
InputStream is = null;
|
|
||||||
try {
|
|
||||||
|
|
||||||
org.gcube.common.homelibrary.home.workspace.folder.items.File gcubeItem = ((org.gcube.common.homelibrary.home.workspace.folder.items.File) wi);
|
|
||||||
is = gcubeItem.getData();
|
|
||||||
return is;
|
|
||||||
|
|
||||||
} catch (Throwable e) {
|
|
||||||
logger.error("Error retrieving InputStream from storage", e);
|
|
||||||
e.printStackTrace();
|
|
||||||
throw new ServiceException("Error retrieving file from storage: " + e.getLocalizedMessage(), e);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param user
|
|
||||||
* User
|
|
||||||
* @param itemId
|
|
||||||
* Item id
|
|
||||||
* @return link
|
|
||||||
* @throws ServiceException
|
|
||||||
* service exception
|
|
||||||
*/
|
|
||||||
public static String getPublicLink(String user, String itemId) throws ServiceException {
|
|
||||||
Workspace ws;
|
|
||||||
try {
|
|
||||||
ws = HomeLibrary.getUserWorkspace(user);
|
|
||||||
|
|
||||||
WorkspaceItem workSpaceItem = ws.getItem(itemId);
|
|
||||||
if (workSpaceItem.isFolder()) {
|
|
||||||
throw new ServiceException("Attention this is a folder!");
|
|
||||||
}
|
|
||||||
|
|
||||||
return workSpaceItem.getPublicLink(false);
|
|
||||||
|
|
||||||
} catch (Throwable e) {
|
|
||||||
logger.error("Error retrieving public link: " + e.getLocalizedMessage());
|
|
||||||
e.printStackTrace();
|
|
||||||
throw new ServiceException(e.getLocalizedMessage());
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param user
|
|
||||||
* user
|
|
||||||
* @param folderId
|
|
||||||
* folder id
|
|
||||||
* @return File
|
|
||||||
* @throws ServiceException
|
|
||||||
* service exception
|
|
||||||
*/
|
|
||||||
public static File zipFolder(String user, String folderId) throws ServiceException {
|
|
||||||
Workspace ws;
|
|
||||||
try {
|
|
||||||
logger.debug("zipFolder: [user=" + user + ", folderId=" + folderId + "]");
|
|
||||||
ws = HomeLibrary.getUserWorkspace(user);
|
|
||||||
|
|
||||||
WorkspaceItem workSpaceItem = ws.getItem(folderId);
|
|
||||||
if (!workSpaceItem.isFolder()) {
|
|
||||||
throw new ServiceException("Item is not valid folder!");
|
|
||||||
}
|
|
||||||
|
|
||||||
WorkspaceFolder folder = (WorkspaceFolder) workSpaceItem;
|
|
||||||
|
|
||||||
File fileZip = ZipUtil.zipFolder(folder);
|
|
||||||
|
|
||||||
return fileZip;
|
|
||||||
|
|
||||||
} catch (Throwable e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
throw new ServiceException(e.getLocalizedMessage());
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param user
|
|
||||||
* user
|
|
||||||
* @param itemName
|
|
||||||
* item name
|
|
||||||
* @return workspace item
|
|
||||||
* @throws ServiceException
|
|
||||||
* service exception
|
|
||||||
*/
|
|
||||||
public static WorkspaceItem getItemInRootFolderOnWorkspace(String user, String itemName) throws ServiceException {
|
|
||||||
Workspace ws;
|
|
||||||
try {
|
|
||||||
ws = HomeLibrary.getUserWorkspace(user);
|
|
||||||
|
|
||||||
WorkspaceItem item = ws.find(itemName, ws.getRoot().getId());
|
|
||||||
|
|
||||||
return item;
|
|
||||||
|
|
||||||
} catch (Throwable e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
throw new ServiceException(e.getLocalizedMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param user
|
|
||||||
* user
|
|
||||||
* @param folderId
|
|
||||||
* folder id
|
|
||||||
* @param itemName
|
|
||||||
* item name
|
|
||||||
* @return workspace item
|
|
||||||
* @throws ServiceException
|
|
||||||
* service exception
|
|
||||||
*/
|
|
||||||
public static WorkspaceItem getItemInFolderOnWorkspace(String user, String folderId, String itemName)
|
|
||||||
throws ServiceException {
|
|
||||||
Workspace ws;
|
|
||||||
try {
|
|
||||||
ws = HomeLibrary.getUserWorkspace(user);
|
|
||||||
|
|
||||||
WorkspaceItem item = ws.find(itemName, folderId);
|
|
||||||
|
|
||||||
return item;
|
|
||||||
|
|
||||||
} catch (Throwable e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
throw new ServiceException(e.getLocalizedMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param user
|
|
||||||
* user
|
|
||||||
* @param itemId
|
|
||||||
* item id
|
|
||||||
* @throws ServiceException
|
|
||||||
* service exception
|
|
||||||
*/
|
|
||||||
public static void deleteItem(String user, String itemId) throws ServiceException {
|
|
||||||
Workspace ws;
|
|
||||||
try {
|
|
||||||
logger.debug("User: " + user + ", ItemId:" + itemId);
|
|
||||||
ws = HomeLibrary.getUserWorkspace(user);
|
|
||||||
|
|
||||||
ws.removeItems(itemId);
|
|
||||||
|
|
||||||
return;
|
|
||||||
} catch (Throwable e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
throw new ServiceException(e.getLocalizedMessage());
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param is
|
|
||||||
* input stream
|
|
||||||
* @return public link
|
|
||||||
* @throws ServiceException
|
|
||||||
* service exception
|
|
||||||
*/
|
|
||||||
public static String saveOnStorageInTemporalFile(InputStream is) throws ServiceException {
|
|
||||||
try {
|
|
||||||
logger.debug("SaveOnStorageInTemporalFile()");
|
|
||||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_HHmmss");
|
|
||||||
Double v = Math.random() * 10000;
|
|
||||||
String tempFile = "P_" + sdf.format(new Date()) + "_" + v.intValue() + ".xml";
|
|
||||||
String remotePath = "/DataMiner/AlgoritmsParameters/" + tempFile;
|
|
||||||
IClient client = new StorageClient("DataAnalysis", "DataMiner", "DataMiner", AccessType.PUBLIC,
|
|
||||||
MemoryType.VOLATILE).getClient();
|
|
||||||
String storageId = client.put(true).LFile(is).RFile(remotePath);
|
|
||||||
logger.debug("Storage id: " + storageId);
|
|
||||||
String publicLink = client.getHttpUrl().RFile(remotePath);
|
|
||||||
logger.debug("Storage public link: " + publicLink);
|
|
||||||
return publicLink;
|
|
||||||
|
|
||||||
} catch (Throwable e) {
|
|
||||||
logger.error(e.getLocalizedMessage());
|
|
||||||
e.printStackTrace();
|
|
||||||
throw new ServiceException(e.getLocalizedMessage(), e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -12,6 +12,7 @@ import net.sf.csv4j.CSVReader;
|
||||||
import org.gcube.data.analysis.dataminermanagercl.server.util.ServiceCredentials;
|
import org.gcube.data.analysis.dataminermanagercl.server.util.ServiceCredentials;
|
||||||
import org.gcube.data.analysis.dataminermanagercl.shared.data.ColumnItem;
|
import org.gcube.data.analysis.dataminermanagercl.shared.data.ColumnItem;
|
||||||
import org.gcube.data.analysis.dataminermanagercl.shared.data.TableItemSimple;
|
import org.gcube.data.analysis.dataminermanagercl.shared.data.TableItemSimple;
|
||||||
|
import org.gcube.portlets.widgets.dataminermanagerwidget.server.storage.StorageUtil;
|
||||||
import org.gcube.portlets.widgets.dataminermanagerwidget.shared.exception.ServiceException;
|
import org.gcube.portlets.widgets.dataminermanagerwidget.shared.exception.ServiceException;
|
||||||
import org.gcube.portlets.widgets.wsexplorer.shared.Item;
|
import org.gcube.portlets.widgets.wsexplorer.shared.Item;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
|
@ -35,15 +36,16 @@ public class TableReader {
|
||||||
}
|
}
|
||||||
|
|
||||||
public TableItemSimple getTableItemSimple() throws ServiceException {
|
public TableItemSimple getTableItemSimple() throws ServiceException {
|
||||||
|
StorageUtil storageUtil = new StorageUtil();
|
||||||
InputStream is = StorageUtil.getInputStreamForItemOnWorkspace(
|
|
||||||
|
InputStream is = storageUtil.getInputStreamForItemOnWorkspace(
|
||||||
serviceCredentials.getUserName(), item.getId());
|
serviceCredentials.getUserName(), item.getId());
|
||||||
Reader fileReader = new InputStreamReader(is);
|
Reader fileReader = new InputStreamReader(is);
|
||||||
CSVReader csvReader = new CSVReader(fileReader);
|
CSVReader csvReader = new CSVReader(fileReader);
|
||||||
List<String> firstLine = getFirstLine(csvReader, false);
|
List<String> firstLine = getFirstLine(csvReader, false);
|
||||||
ArrayList<String> columns = new ArrayList<String>(firstLine);
|
ArrayList<String> columns = new ArrayList<String>(firstLine);
|
||||||
|
|
||||||
String publicLink=StorageUtil.getPublicLink(serviceCredentials.getUserName(), item.getId());
|
String publicLink=storageUtil.getPublicLink(serviceCredentials.getUserName(), item.getId());
|
||||||
|
|
||||||
TableItemSimple tableItemSimple=new TableItemSimple(publicLink,item.getName(), item.getType().name());
|
TableItemSimple tableItemSimple=new TableItemSimple(publicLink,item.getName(), item.getType().name());
|
||||||
ArrayList<ColumnItem> columnItemList=new ArrayList<ColumnItem>();
|
ArrayList<ColumnItem> columnItemList=new ArrayList<ColumnItem>();
|
||||||
|
|
|
@ -18,7 +18,7 @@ public class Constants {
|
||||||
|
|
||||||
public static final String DEFAULT_USER = "giancarlo.panichi";
|
public static final String DEFAULT_USER = "giancarlo.panichi";
|
||||||
public final static String DEFAULT_SCOPE = "/gcube/devNext/NextNext";
|
public final static String DEFAULT_SCOPE = "/gcube/devNext/NextNext";
|
||||||
public final static String DEFAULT_TOKEN = "ae1208f0-210d-47c9-9b24-d3f2dfcce05f-98187548";
|
public final static String DEFAULT_TOKEN = "";
|
||||||
|
|
||||||
public static final String DEFAULT_ROLE = "OrganizationMember";
|
public static final String DEFAULT_ROLE = "OrganizationMember";
|
||||||
// public final static String DEFAULT_SCOPE = "/gcube/devNext";
|
// public final static String DEFAULT_SCOPE = "/gcube/devNext";
|
||||||
|
|
|
@ -20,7 +20,12 @@
|
||||||
<!-- OpenLayer Basic Widgets -->
|
<!-- OpenLayer Basic Widgets -->
|
||||||
<inherits
|
<inherits
|
||||||
name='org.gcube.portlets.widgets.openlayerbasicwidgets.olbasicwidgets' />
|
name='org.gcube.portlets.widgets.openlayerbasicwidgets.olbasicwidgets' />
|
||||||
|
|
||||||
|
<!-- NetCDF Basic Widgets -->
|
||||||
|
<inherits
|
||||||
|
name='org.gcube.portlets.widgets.netcdfbasicwidgets.netcdfbasicwidgets' />
|
||||||
|
|
||||||
|
|
||||||
<!-- DataMiner Manager CL -->
|
<!-- DataMiner Manager CL -->
|
||||||
<inherits
|
<inherits
|
||||||
name='org.gcube.data.analysis.dataminermanagercl.dataminermanagercl' />
|
name='org.gcube.data.analysis.dataminermanagercl.dataminermanagercl' />
|
||||||
|
|
|
@ -28,6 +28,11 @@
|
||||||
<servlet-name>workspaceUploadServletStream</servlet-name>
|
<servlet-name>workspaceUploadServletStream</servlet-name>
|
||||||
<servlet-class>org.gcube.portlets.widgets.workspaceuploader.server.WorkspaceUploadServletStream</servlet-class>
|
<servlet-class>org.gcube.portlets.widgets.workspaceuploader.server.WorkspaceUploadServletStream</servlet-class>
|
||||||
</servlet>
|
</servlet>
|
||||||
|
<servlet>
|
||||||
|
<servlet-name>NetCDFBasicWidgetService</servlet-name>
|
||||||
|
<servlet-class>org.gcube.portlets.widgets.netcdfbasicwidgets.server.NetCDFBasicWidgetServiceImpl</servlet-class>
|
||||||
|
</servlet>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<servlet-mapping>
|
<servlet-mapping>
|
||||||
|
@ -54,6 +59,11 @@
|
||||||
<servlet-name>workspaceUploadServletStream</servlet-name>
|
<servlet-name>workspaceUploadServletStream</servlet-name>
|
||||||
<url-pattern>/dataminermanagerwidget/workspaceUploadServletStream</url-pattern>
|
<url-pattern>/dataminermanagerwidget/workspaceUploadServletStream</url-pattern>
|
||||||
</servlet-mapping>
|
</servlet-mapping>
|
||||||
|
<servlet-mapping>
|
||||||
|
<servlet-name>NetCDFBasicWidgetService</servlet-name>
|
||||||
|
<url-pattern>/dataminermanagerwidget/netcdfservice</url-pattern>
|
||||||
|
</servlet-mapping>
|
||||||
|
|
||||||
|
|
||||||
<welcome-file-list>
|
<welcome-file-list>
|
||||||
<welcome-file>DataMinerManagerWidget.html</welcome-file>
|
<welcome-file>DataMinerManagerWidget.html</welcome-file>
|
||||||
|
|
Loading…
Reference in New Issue