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()); Workspace workspace = WsUtil.getWorkspace(this.getThreadLocalRequest().getSession());
WorkspaceItem wsItem = workspace.getItem(itemIdentifier); WorkspaceItem wsItem = workspace.getItem(itemIdentifier);
logger.trace("workspace retrieve item name: "+wsItem.getName()); 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()); logger.trace("parents size: "+parents.size());
Item[] arrayParents; Item[] arrayParents;
parentLimit = parentLimit!=null?parentLimit:""; parentLimit = parentLimit!=null?parentLimit:"";
switch (parents.size()) { switch (parents.size()) {
case 0: // itemIdentifier is ROOT case 0: //an error?
logger.debug("itemIdentifier isRoot..."); logger.debug("There was an error? parents are 0");
if (includeItemAsParent) { //ADDIND ROOT 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); WorkspaceFolder wsFolder =(WorkspaceFolder) workspace.getItem(itemIdentifier);
Item root = ItemBuilder.buildFolderForBreadcrumbs(wsFolder, null); Item root = ItemBuilder.buildFolderForBreadcrumbs(wsFolder, null);
List<Item> listParents = new ArrayList<Item>(1); List<Item> listParents = new ArrayList<Item>(1);
@ -396,25 +410,26 @@ public class WorkspaceExplorerAppServiceImpl extends RemoteServiceServlet implem
return new ArrayList<Item>(); // empty list 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..."); logger.debug("itemIdentifier is first level...");
List<Item> listParents = new ArrayList<Item>(); List<Item> listParents = new ArrayList<Item>();
WorkspaceFolder wsRootFolder = (WorkspaceFolder) parents.get(0); //isRoot
Item root = ItemBuilder.buildFolderForBreadcrumbs(wsRootFolder, null);
Item parent = null; Item parent = null;
if(includeItemAsParent){ if(includeItemAsParent){
WorkspaceFolder wsFolder1 =(WorkspaceFolder) workspace.getItem(itemIdentifier); //root WorkspaceFolder wsFolder1 =(WorkspaceFolder) workspace.getItem(itemIdentifier); //folder of first level
parent = ItemBuilder.buildFolderForBreadcrumbs(wsFolder1, null); parent = ItemBuilder.buildFolderForBreadcrumbs(wsFolder1, null);
} }
if(root.getId().compareTo(parentLimit)!=0) // WorkspaceFolder wsRootFolder = (WorkspaceFolder) parents.get(0); //isRoot
listParents.add(root); // Item root = ItemBuilder.buildFolderForBreadcrumbs(wsRootFolder, null);
//
// if(root.getId().compareTo(parentLimit)!=0)
// listParents.add(root);
if(parent!=null) if(parent!=null)
listParents.add(parent); listParents.add(parent);
// workspaceLogger.trace("returning: "+listParents.toString()); // workspaceLogger.trace("returning: "+listParents.toString());
return listParents; return listParents;
*/
default: default:
break; break;
} }