From a6be5fbd6351432fb82387585c5fccc4b9045f0b Mon Sep 17 00:00:00 2001 From: Francesco Mangiacrapa Date: Fri, 18 Sep 2015 15:19:09 +0000 Subject: [PATCH] 718: Workspace: breadcrumb problem on VRE Folders after a two consecutive selection Task-Url: https://support.d4science.org/issues/718 Fixed method getChildrenSubTreeToRootByIdentifier git-svn-id: http://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/portlets/user/workspace-tree-widget@118956 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../workspace/client/ConstantsExplorer.java | 2 ++ .../workspace/server/GWTWorkspaceBuilder.java | 5 ++++- .../server/GWTWorkspaceServiceImpl.java | 20 +++++++++++++++---- 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/ConstantsExplorer.java b/src/main/java/org/gcube/portlets/user/workspace/client/ConstantsExplorer.java index 030085f..d2f5f3e 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/client/ConstantsExplorer.java +++ b/src/main/java/org/gcube/portlets/user/workspace/client/ConstantsExplorer.java @@ -217,5 +217,7 @@ public class ConstantsExplorer { //PROPERTY public static final String SPECIALFOLDERNAME = "SPECIALFOLDERNAME"; public static final String SPECIALFOLDERNAMEPROPERTIESFILE = "specialfoldername.properties"; + + public static final String MY_SPECIAL_FOLDERS = "MySpecialFolders"; } diff --git a/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceBuilder.java b/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceBuilder.java index 3934c0d..ec7d250 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceBuilder.java +++ b/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceBuilder.java @@ -94,6 +94,9 @@ import com.thoughtworks.xstream.XStream; */ public class GWTWorkspaceBuilder { + /** + * + */ protected static final String IMAGE_SERVICE_URL = "ImageService"; protected static Logger logger = Logger.getLogger(GWTWorkspaceBuilder.class); private InfoContactModel userLogged; @@ -1255,7 +1258,7 @@ public class GWTWorkspaceBuilder { logger.debug("shared.getDisplayName(): "+shared.getDisplayName()); //MANAGEMENT SPECIAL FOLDER - }else if(wsFolder.getName().compareTo("MySpecialFolders")==0 && wsFolder.getParent()!=null && wsFolder.getParent().isRoot()){ + }else if(wsFolder.getName().compareTo(ConstantsExplorer.MY_SPECIAL_FOLDERS)==0 && wsFolder.getParent()!=null && wsFolder.getParent().isRoot()){ //MANAGEMENT SPECIAL FOLDER logger.debug("MANAGEMENT SPECIAL FOLDER NAME REWRITING AS: "+specialFolderName); if(specialFolderName!=null && !specialFolderName.isEmpty()) diff --git a/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceServiceImpl.java b/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceServiceImpl.java index c0945ff..872174e 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceServiceImpl.java +++ b/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceServiceImpl.java @@ -1003,13 +1003,25 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT Collections.reverse(listSubTree); //reverse order of array //SET THE ROOT - if(listSubTree.size()>0){ - workspaceLogger.trace("set: "+listSubTree.get(0).getParent().getName() +" as root"); + int lenght = listSubTree.size(); + if(lenght>0){ + FolderModel firstLevel = listSubTree.get(0).getParent(); //get root + workspaceLogger.trace("set: "+firstLevel.getName() +" as root"); listSubTree.get(0).getParent().setIsRoot(true); + //IF IT CASE - REWRITE SPECIAL FOLDER NAME + if(lenght>1){ + FolderModel wsFolder = listSubTree.get(1).getParent(); //get first child + String nameSpecialFolder = getNameForSpecialFolder(); + if(wsFolder.getName().compareTo(ConstantsExplorer.MY_SPECIAL_FOLDERS)==0 && firstLevel.isRoot()){ + //MANAGEMENT SPECIAL FOLDER + workspaceLogger.debug("getChildrenSubTreeToRootByIdentifier MANAGEMENT SPECIAL FOLDER NAME REWRITING AS: "+nameSpecialFolder); + if(nameSpecialFolder!=null && !nameSpecialFolder.isEmpty()) + listSubTree.get(1).getParent().setName(nameSpecialFolder); + } + } } - - workspaceLogger.trace("getChildrenSubTreeToRootByIdentifier returning list SubTree: "+listSubTree); + workspaceLogger.trace("getChildrenSubTreeToRootByIdentifier returning list SubTree: "+listSubTree); } catch (Exception e) { workspaceLogger.error("Error in server find Item", e); throw new Exception(e.getMessage());