diff --git a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/Util.java b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/Util.java index 90afe45..e365e55 100644 --- a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/Util.java +++ b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/Util.java @@ -72,6 +72,10 @@ public class Util { return null; if (item.isFolder()) return GWTIconsManager.getIconFolder(item.isSharedFolder()); + if (item.getType() == ItemType.EXTERNAL_URL) + return GWTIconsManager.getIconTypeLink(); + if (item.getType() == ItemType.XML) + return GWTIconsManager.getXMLTypeLink(); return GWTIconsManager.getIconFile(item.getName()); } diff --git a/src/main/java/org/gcube/portlets/widgets/wsexplorer/server/ItemBuilder.java b/src/main/java/org/gcube/portlets/widgets/wsexplorer/server/ItemBuilder.java index b69d8f7..d51fa31 100644 --- a/src/main/java/org/gcube/portlets/widgets/wsexplorer/server/ItemBuilder.java +++ b/src/main/java/org/gcube/portlets/widgets/wsexplorer/server/ItemBuilder.java @@ -13,6 +13,7 @@ import java.util.Map.Entry; import org.gcube.common.storagehub.client.plugins.AbstractPlugin; import org.gcube.common.storagehub.client.proxies.ItemManagerClient; import org.gcube.common.storagehub.model.items.AbstractFileItem; +import org.gcube.common.storagehub.model.items.ExternalURL; import org.gcube.common.storagehub.model.items.FolderItem; import org.gcube.common.storagehub.model.items.Item; import org.gcube.common.storagehub.model.items.SharedFolder; @@ -195,7 +196,7 @@ public class ItemBuilder { else if (item instanceof FolderItem) { return getFolderItemType(item); } - _log.warn("\n\n\n**** Item Type non found: "); + _log.warn("Item Type non found: " + item.toString()); return ItemType.UNKNOWN_TYPE; } @@ -205,6 +206,12 @@ public class ItemBuilder { * @return the item type based on the extension of the file */ private static ItemType getFileIconImageType(Item item) { + if (item instanceof ExternalURL) + return ItemType.EXTERNAL_URL; + AbstractFileItem aItem = (AbstractFileItem) item; + if (aItem.getContent().getMimeType().compareTo("application/xml") == 0) { + return ItemType.XML; + } String[] splits = item.getName().split("\\."); String extension = ""; if (splits.length > 0) { @@ -344,7 +351,6 @@ public class ItemBuilder { if (allowedFileExtension==null || allowedFileExtension.size()==0) { return true; } - try { if (! (item instanceof FolderItem)) { String name = item.getName(); diff --git a/src/main/java/org/gcube/portlets/widgets/wsexplorer/server/WorkspaceExplorerServiceImpl.java b/src/main/java/org/gcube/portlets/widgets/wsexplorer/server/WorkspaceExplorerServiceImpl.java index 52ccaf4..014cdfb 100644 --- a/src/main/java/org/gcube/portlets/widgets/wsexplorer/server/WorkspaceExplorerServiceImpl.java +++ b/src/main/java/org/gcube/portlets/widgets/wsexplorer/server/WorkspaceExplorerServiceImpl.java @@ -322,32 +322,20 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement */ @Override public Long getSizeByItemId(String itemId) throws Exception { - //TODO: implementation missing - return 0L; - // logger.info("get Size By ItemId "+ itemId); - // try { - // - // Workspace workspace = getWorkspace(); - // WorkspaceItem wsItem = workspace.getItem(itemId); - // Long size = new Long(-1); - // - // if(wsItem instanceof FolderItem){ //ITEM - // FolderItem folderItem = (FolderItem) wsItem; - // size = new Long(folderItem.getLength()); - // } else if (wsItem instanceof WorkspaceFolder ){ //FOLDER - // WorkspaceFolder theFolder = (WorkspaceFolder) wsItem; - // size = theFolder.getSize(); - // } else if (wsItem instanceof WorkspaceSharedFolder){ //SHARED FOLDER - // WorkspaceSharedFolder theFolder = (WorkspaceSharedFolder) wsItem; - // size = theFolder.getSize(); - // } - // logger.info("returning size: " +size); - // return size; - // - // } catch (Exception e) { - // logger.error("get Size By ItemId ", e); - // throw new Exception(e.getMessage()); - // } + _log.debug("get Size By ItemId "+ itemId); + try { + Item wsItem = Whorespace.getItem(getThreadLocalRequest(), itemId); + _log.trace("workspace retrieve item name: "+wsItem.getName()); + if((wsItem instanceof FolderItem)) //if is a folder no mime + return null; + + AbstractFileItem file = (AbstractFileItem) wsItem; + return file.getContent().getSize(); + + } catch (Exception e) { + _log.error("get MimeType By ItemId ", e); + throw new Exception(e.getMessage()); + } } /* (non-Javadoc) diff --git a/src/main/java/org/gcube/portlets/widgets/wsexplorer/shared/ItemType.java b/src/main/java/org/gcube/portlets/widgets/wsexplorer/shared/ItemType.java index c0a9219..9e140f0 100644 --- a/src/main/java/org/gcube/portlets/widgets/wsexplorer/shared/ItemType.java +++ b/src/main/java/org/gcube/portlets/widgets/wsexplorer/shared/ItemType.java @@ -8,7 +8,6 @@ package org.gcube.portlets.widgets.wsexplorer.shared; * The Enum ItemType. * * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it - * Jun 18, 2015 */ public enum ItemType { PRIVATE_FOLDER, @@ -28,6 +27,7 @@ public enum ItemType { ZIP, RAR, HTML, + XML, TEXT_PLAIN, DOCUMENT, PRESENTATION,