diff --git a/pom.xml b/pom.xml
index 4ca5572..b36912c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -12,7 +12,7 @@
workspace-widget-portlet
war
workspace-widget-portlet Portlet
- 1.3.1-SNAPSHOT
+ 1.3.2-SNAPSHOT
Workspace Widget
diff --git a/src/main/java/org/gcube/portlets/user/wswidget/ItemBuilder.java b/src/main/java/org/gcube/portlets/user/wswidget/ItemBuilder.java
index 96a7121..6e9bf6f 100644
--- a/src/main/java/org/gcube/portlets/user/wswidget/ItemBuilder.java
+++ b/src/main/java/org/gcube/portlets/user/wswidget/ItemBuilder.java
@@ -8,6 +8,7 @@ import java.util.Date;
import java.util.List;
import org.gcube.common.storagehub.model.items.AbstractFileItem;
+import org.gcube.common.storagehub.model.items.ExternalLink;
import org.gcube.common.storagehub.model.items.ExternalURL;
import org.gcube.common.storagehub.model.items.FolderItem;
import org.gcube.common.storagehub.model.items.Item;
@@ -70,7 +71,7 @@ public class ItemBuilder {
}
else { //is a file, a Link or an XML
MDIcon mdIcon = IconsManager.getDefault();
- if (workspaceItem instanceof ExternalURL) {
+ if (workspaceItem instanceof ExternalLink || workspaceItem instanceof ExternalURL) {
mdIcon = IconsManager.getIconTypeLink();
} else {
AbstractFileItem aItem = (AbstractFileItem) workspaceItem;
diff --git a/src/main/java/org/gcube/portlets/user/wswidget/WorkspaceWidget.java b/src/main/java/org/gcube/portlets/user/wswidget/WorkspaceWidget.java
index 0697294..98288bf 100644
--- a/src/main/java/org/gcube/portlets/user/wswidget/WorkspaceWidget.java
+++ b/src/main/java/org/gcube/portlets/user/wswidget/WorkspaceWidget.java
@@ -15,10 +15,13 @@ import javax.servlet.http.HttpServletResponse;
import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
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.StorageHubClient;
import org.gcube.common.storagehub.client.plugins.AbstractPlugin;
import org.gcube.common.storagehub.client.proxies.WorkspaceManagerClient;
import org.gcube.common.storagehub.model.exceptions.StorageHubException;
+import org.gcube.common.storagehub.model.items.ExternalLink;
+import org.gcube.common.storagehub.model.items.ExternalURL;
import org.gcube.common.storagehub.model.items.Item;
import org.gcube.portlets.user.wswidget.shared.AuthorizedUser;
import org.gcube.portlets.user.wswidget.shared.Breadcrumb;
@@ -59,21 +62,30 @@ public class WorkspaceWidget extends MVCPortlet {
StorageHubClient client = new StorageHubClient();
FileContainer fileContainer = null;
StreamDescriptor streamDescr = null;
+ Item item = null;
+ HttpServletResponse httpRes = PortalUtil.getHttpServletResponse(resourceResponse);
try {
- fileContainer = client.open(selectedItemId).asFile();
- streamDescr = fileContainer.download(selectedItemId);
+ ItemContainer- itemContainer = client.open(selectedItemId).asItem();
+ item = itemContainer.get();
+ if (item instanceof ExternalLink) { //if is a type URL we open directly the link (StorageHub Created it)
+ ExternalLink extLink = (ExternalLink) item;
+ httpRes.sendRedirect(extLink.getValue().toString());
+ } else {
+ fileContainer = client.open(selectedItemId).asFile();
+ streamDescr = fileContainer.download(selectedItemId);
+ }
+ if (item instanceof ExternalURL) { //if is a type URL we open directly the link (HL Created it)
+ Scanner sc = new Scanner( streamDescr.getStream());
+ String text = sc.useDelimiter("\\A").next();
+ sc.close();
+ streamDescr.getStream().close();
+ httpRes.sendRedirect(text);
+
+ }
} catch (StorageHubException e) {
e.printStackTrace();
}
- HttpServletResponse httpRes = PortalUtil.getHttpServletResponse(resourceResponse);
- if (ITEM_URL_TYPE.compareTo(fileContainer.get().getPrimaryType()) == 0) { //if is a type URL we open drectly the link
- Scanner sc = new Scanner( streamDescr.getStream());
- String text = sc.useDelimiter("\\A").next();
- sc.close();
- streamDescr.getStream().close();
- httpRes.sendRedirect(text);
- }
- else {
+ if (! (item instanceof ExternalURL || item instanceof ExternalLink)) {
HttpServletRequest httpReq = PortalUtil.getHttpServletRequest(resourceRequest);
ServletResponseUtil.sendFile(httpReq,httpRes, streamDescr.getFileName(), streamDescr.getStream(), "application/download");
streamDescr.getStream().close();