Addec check for Root and First level from root

git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/portlets/user/workspace-explorer-app@131529 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Francesco Mangiacrapa 2016-09-20 09:39:53 +00:00
parent a7c932d362
commit c6f0c0e78a
1 changed files with 26 additions and 11 deletions

View File

@ -375,16 +375,30 @@ public class WorkspaceExplorerAppServiceImpl extends RemoteServiceServlet implem
Workspace workspace = WsUtil.getWorkspace(this.getThreadLocalRequest().getSession());
WorkspaceItem wsItem = workspace.getItem(itemIdentifier);
logger.trace("workspace retrieve item name: "+wsItem.getName());
List<WorkspaceItem> parents = workspace.getParentsById(itemIdentifier);
List<WorkspaceItem> parents = null;
try{
parents = workspace.getParentsById(itemIdentifier);
}catch(Exception e){
logger.error("Error on getting list of parents from HL for id: "+itemIdentifier, e);
parents = new ArrayList<WorkspaceItem>();
}
if(parents==null) //avoiding null
parents = new ArrayList<WorkspaceItem>();
logger.trace("parents size: "+parents.size());
Item[] arrayParents;
parentLimit = parentLimit!=null?parentLimit:"";
switch (parents.size()) {
case 0: // itemIdentifier is ROOT
logger.debug("itemIdentifier isRoot...");
if (includeItemAsParent) { //ADDIND ROOT
case 0: //an error?
logger.debug("There was an error? parents are 0");
return new ArrayList<Item>(1);
case 1: //itemIdentifier is ROOT - Parents include the ROOT
case 2: //itemIdentifier is first level from ROOT
logger.debug("itemIdentifier isRoot or a Folder of first level: ");
if (includeItemAsParent) { //ADDIND ROOT OR FOLDER OF FIRST LEVEL
WorkspaceFolder wsFolder =(WorkspaceFolder) workspace.getItem(itemIdentifier);
Item root = ItemBuilder.buildFolderForBreadcrumbs(wsFolder, null);
List<Item> listParents = new ArrayList<Item>(1);
@ -396,25 +410,26 @@ public class WorkspaceExplorerAppServiceImpl extends RemoteServiceServlet implem
return new ArrayList<Item>(); // empty list
}
case 1: //itemIdentifier is first level from root
/*case 2: //itemIdentifier is first level from root
logger.debug("itemIdentifier is first level...");
List<Item> listParents = new ArrayList<Item>();
WorkspaceFolder wsRootFolder = (WorkspaceFolder) parents.get(0); //isRoot
Item root = ItemBuilder.buildFolderForBreadcrumbs(wsRootFolder, null);
Item parent = null;
if(includeItemAsParent){
WorkspaceFolder wsFolder1 =(WorkspaceFolder) workspace.getItem(itemIdentifier); //root
WorkspaceFolder wsFolder1 =(WorkspaceFolder) workspace.getItem(itemIdentifier); //folder of first level
parent = ItemBuilder.buildFolderForBreadcrumbs(wsFolder1, null);
}
if(root.getId().compareTo(parentLimit)!=0)
listParents.add(root);
// WorkspaceFolder wsRootFolder = (WorkspaceFolder) parents.get(0); //isRoot
// Item root = ItemBuilder.buildFolderForBreadcrumbs(wsRootFolder, null);
//
// if(root.getId().compareTo(parentLimit)!=0)
// listParents.add(root);
if(parent!=null)
listParents.add(parent);
// workspaceLogger.trace("returning: "+listParents.toString());
return listParents;
*/
default:
break;
}