diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component index 7d683bf..6e7cc3c 100644 --- a/.settings/org.eclipse.wst.common.component +++ b/.settings/org.eclipse.wst.common.component @@ -4,6 +4,9 @@ + + uses + diff --git a/pom.xml b/pom.xml index b38f937..ba2ca8e 100644 --- a/pom.xml +++ b/pom.xml @@ -54,6 +54,11 @@ org.gcube.dvos usermanagement-core + + org.gcube.portal + storagehub-icons-library + [1.0.0-SNAPSHOT,) + org.gcube.common.portal portal-manager 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 c411c02..a155d9d 100644 --- a/src/main/java/org/gcube/portlets/user/wswidget/ItemBuilder.java +++ b/src/main/java/org/gcube/portlets/user/wswidget/ItemBuilder.java @@ -8,10 +8,13 @@ import java.util.Date; import java.util.List; 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; import org.gcube.common.storagehub.model.items.VreFolder; +import org.gcube.portal.stohubicons.IconsManager; +import org.gcube.portal.stohubicons.shared.MDIcon; import org.gcube.portlets.user.wswidget.shared.ItemType; import org.gcube.portlets.user.wswidget.shared.WSItem; import org.gcube.vomanagement.usermanagement.UserManager; @@ -39,7 +42,6 @@ public class ItemBuilder { boolean isSharedFolder = (type.equals(ItemType.SHARED_FOLDER) || type.equals(ItemType.VRE_FOLDER )) ? true : false; String itemName = workspaceItem.getName(); - if(isSharedFolder){ _log.info("Is shared folder: "+workspaceItem.getTitle()); SharedFolder shared = (SharedFolder) workspaceItem; @@ -66,15 +68,24 @@ public class ItemBuilder { } else if (isFolder) { item.setIconNameAndColor("folder", "#8F8F8F");// #gray } - else { //is a file - String[] splits = item.getName().split("\\."); - String extension = ""; - if (splits.length > 0) { - extension = splits[splits.length-1]; + else { //is a file, a Link or an XML + MDIcon mdIcon = IconsManager.getDefault(); + if (workspaceItem instanceof ExternalURL) { + mdIcon = IconsManager.getIconTypeLink(); + } else { + AbstractFileItem aItem = (AbstractFileItem) workspaceItem; + if (aItem.getContent().getMimeType().compareTo("application/xml") == 0) { + mdIcon = IconsManager.getXMLTypeLink(); + } else { + String[] splits = item.getName().split("\\."); + String extension = ""; + if (splits.length > 0) { + extension = splits[splits.length-1]; + } + mdIcon = IconsManager.getMDIconTextualName(extension); + } } - String iconURL = Utils.getIconImage(Utils.getFileIconImageType(extension).toString()); - String iconColor = Utils.getIconColor(Utils.getFileIconImageType(extension).toString()); - item.setIconNameAndColor(iconURL, iconColor); + item.setIconNameAndColor(mdIcon.getTextualName(), mdIcon.getColor()); } } catch(Exception e){ _log.error("Error on getting item: "+itemName+" with id: "+workspaceItem.getId()+", from HL, so skipping item " + e.getMessage()); diff --git a/src/main/java/org/gcube/portlets/user/wswidget/Utils.java b/src/main/java/org/gcube/portlets/user/wswidget/Utils.java index f471d71..9993b4e 100644 --- a/src/main/java/org/gcube/portlets/user/wswidget/Utils.java +++ b/src/main/java/org/gcube/portlets/user/wswidget/Utils.java @@ -14,7 +14,6 @@ import org.gcube.common.authorization.library.provider.SecurityTokenProvider; import org.gcube.common.authorization.library.provider.UserInfo; import org.gcube.common.portal.PortalContext; import org.gcube.common.scope.api.ScopeProvider; -import org.gcube.portlets.user.wswidget.shared.ImageType; import org.gcube.portlets.user.wswidget.shared.ItemType; import org.gcube.vomanagement.usermanagement.impl.LiferayUserManager; import org.gcube.vomanagement.usermanagement.model.GCubeUser; @@ -46,60 +45,7 @@ public class Utils { return true; return false; } - - public static String getIconImage(String type) { - switch (type) { - case "DOC": - return "description"; - case "XLS": - return "description"; - case "PPT": - return "description"; - case "PDF": - return "picture_as_pdf"; - case "IMAGE": - return "panorama"; - case "MOVIE": - return "movie_creation"; - case "HTML": - return "web"; - case "RAR": - return "archive"; - case "ZIP": - return "archive"; - case "TXT": - return "description"; - default: - return "insert_drive_file"; - } - } - public static String getIconColor(String type) { - switch (type) { - case "DOC": - return "#0277bd"; // light-blue darken-3 - case "XLS": - return "#4caf50"; //green - case "PPT": - return "#fb8c00"; //orange - case "PDF": - return "#f44336"; //red - case "IMAGE": - return "#d81b60"; //light blue - case "MOVIE": - return "#90caf9"; - case "HTML": - return "#0277bd"; - case "RAR": - return "#ffc107"; - case "ZIP": - return "#ffc107";//amber - case "TXT": - return "#CCC"; // gray - default: - return "#CCC"; // gray - } - } - + public static GCubeUser getCurrentUser(RenderRequest request) { long userId; try { @@ -235,52 +181,4 @@ public class Utils { return token; } - public static ImageType getFileIconImageType(String extension) { - if (extension == null || extension.compareTo("") == 0) - return ImageType.NONE; - extension = extension.toLowerCase(); - switch (extension) { - case "doc": - case "docx": - return ImageType.DOC; - case "rtf": - case "txt": - return ImageType.TXT; - case "xls": - case "xlsx": - return ImageType.XLS; - case "ppt": - case "pptx": - return ImageType.PPT; - case "pdf": - return ImageType.PDF; - case "jpg": - case "jpeg": - case "gif": - case "bmp": - case "png": - case "tif": - case "tiff": - return ImageType.IMAGE; - case "avi": - case "mp4": - case "mpeg": - return ImageType.MOVIE; - case "html": - case "htm": - case "jsp": - return ImageType.HTML; - case "rar": - return ImageType.RAR; - case "zip": - case "tar": - case "tar.gz": - case ".cpgz": - case ".gz": - return ImageType.ZIP; - default: - return ImageType.NONE; - } - } - }