Fixed bug on breadcrumb
git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/portlets/user/workspace-explorer-app@131358 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
a1e756f694
commit
9654a5da91
|
@ -62,6 +62,7 @@ public class WorkspaceExplorerAppController {
|
||||||
}, ContextMenuEvent.getType());
|
}, ContextMenuEvent.getType());
|
||||||
|
|
||||||
wsResourcesExplorerPanel = new WorkspaceResourcesExplorerPanel(eventBus, folderId, false);
|
wsResourcesExplorerPanel = new WorkspaceResourcesExplorerPanel(eventBus, folderId, false);
|
||||||
|
wsResourcesExplorerPanel.loadParentBreadcrumbByItemId(folderId, true);
|
||||||
WorskpaceExplorerSelectNotificationListener listener = new WorskpaceExplorerSelectNotificationListener() {
|
WorskpaceExplorerSelectNotificationListener listener = new WorskpaceExplorerSelectNotificationListener() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -103,6 +104,7 @@ public class WorkspaceExplorerAppController {
|
||||||
}.schedule(1000);*/
|
}.schedule(1000);*/
|
||||||
|
|
||||||
mainPanel = new WorkspaceExplorerAppPanel(wsResourcesExplorerPanel);
|
mainPanel = new WorkspaceExplorerAppPanel(wsResourcesExplorerPanel);
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (Exception e) {
|
catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
|
|
@ -314,7 +314,7 @@ public class WorkspaceResourcesExplorerPanel extends DockPanel implements HasWor
|
||||||
* @param itemIdentifier the item identifier
|
* @param itemIdentifier the item identifier
|
||||||
* @param includeItemAsParent the include item as parent
|
* @param includeItemAsParent the include item as parent
|
||||||
*/
|
*/
|
||||||
private void loadParentBreadcrumbByItemId(final String itemIdentifier, boolean includeItemAsParent){
|
protected void loadParentBreadcrumbByItemId(final String itemIdentifier, boolean includeItemAsParent){
|
||||||
|
|
||||||
GWT.log("Reload Parent Breadcrumb: [Item id: "+itemIdentifier+"]");
|
GWT.log("Reload Parent Breadcrumb: [Item id: "+itemIdentifier+"]");
|
||||||
|
|
||||||
|
|
|
@ -69,13 +69,18 @@ public class Breadcrumbs extends Composite {
|
||||||
*/
|
*/
|
||||||
public void setPath(List<Item> parents) {
|
public void setPath(List<Item> parents) {
|
||||||
resetBreadcrumbs();
|
resetBreadcrumbs();
|
||||||
if (parents != null && parents.size() > 0) {
|
if(parents!=null){
|
||||||
for (Item parent : parents) {
|
GWT.log("parent size is: "+parents.size());
|
||||||
GWT.log("parent is: "+parent);
|
if (parents.size() > 0) {
|
||||||
addNavigationLink(parent);
|
for (Item parent : parents) {
|
||||||
hashListItems.put(parent.getId(), parent);
|
GWT.log("parent is: "+parent);
|
||||||
|
if(parent!=null){ //PARENTS NULL ARE SKIPPED, THEY ARE NULL WHEN BREADCRUMB LIMIT IS reached
|
||||||
|
addNavigationLink(parent);
|
||||||
|
hashListItems.put(parent.getId(), parent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lastParent = parents.get(parents.size() - 1);
|
||||||
}
|
}
|
||||||
lastParent = parents.get(parents.size() - 1);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -262,13 +262,53 @@ public class WorkspaceExplorerAppServiceImpl extends RemoteServiceServlet implem
|
||||||
logger.trace("parents size: "+parents.size());
|
logger.trace("parents size: "+parents.size());
|
||||||
Item[] arrayParents;
|
Item[] arrayParents;
|
||||||
|
|
||||||
if(includeItemAsParent==true && wsItem.isFolder()){
|
|
||||||
|
switch (parents.size()) {
|
||||||
|
case 0: // itemIdentifier is ROOT
|
||||||
|
logger.trace("itemIdentifier isRoot...");
|
||||||
|
if (includeItemAsParent) { //ADDIND ROOT
|
||||||
|
WorkspaceFolder wsFolder =(WorkspaceFolder) workspace.getItem(itemIdentifier);
|
||||||
|
Item root = ItemBuilder.buildFolderForBreadcrumbs(wsFolder, null);
|
||||||
|
List<Item> listParents = new ArrayList<Item>(1);
|
||||||
|
listParents.add(root);
|
||||||
|
// workspaceLogger.trace("returning: "+listParents.toString());
|
||||||
|
return listParents;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
logger.trace("returning empty list");
|
||||||
|
return new ArrayList<Item>(); // empty list
|
||||||
|
}
|
||||||
|
|
||||||
|
case 1: //itemIdentifier is first level from root
|
||||||
|
logger.trace("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
|
||||||
|
parent = ItemBuilder.buildFolderForBreadcrumbs(wsFolder1, null);
|
||||||
|
}
|
||||||
|
listParents.add(root);
|
||||||
|
if(parent!=null)
|
||||||
|
listParents.add(parent);
|
||||||
|
// workspaceLogger.trace("returning: "+listParents.toString());
|
||||||
|
return listParents;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
WorkspaceItem lastItem = parents.get(parents.size()-1);
|
||||||
|
|
||||||
|
//CONVERTING LAST ELEMENT IF NECESSARY
|
||||||
|
logger.trace("converting last element..");
|
||||||
|
if(includeItemAsParent && lastItem.isFolder()){ //FIX BUG #298
|
||||||
arrayParents = new Item[parents.size()];
|
arrayParents = new Item[parents.size()];
|
||||||
arrayParents[parents.size()-1] = ItemBuilder.buildFolderForBreadcrumbs((WorkspaceFolder) wsItem, null);
|
logger.debug("including last item into path: "+lastItem.getName());
|
||||||
}
|
arrayParents[parents.size()-1] = ItemBuilder.buildFolderForBreadcrumbs((WorkspaceFolder) lastItem, null);
|
||||||
else {
|
}else
|
||||||
arrayParents = new Item[parents.size()-1];
|
arrayParents = new Item[parents.size()-1];
|
||||||
}
|
|
||||||
|
|
||||||
/** HANDLE MY_SPECIAL_FOLDER TO AVOID COMPLETE PATH WORKSPACE/MY_SPECIAL_FOLDER
|
/** HANDLE MY_SPECIAL_FOLDER TO AVOID COMPLETE PATH WORKSPACE/MY_SPECIAL_FOLDER
|
||||||
* BUT RETURNING ONLY /MY_SPECIAL_FOLDER
|
* BUT RETURNING ONLY /MY_SPECIAL_FOLDER
|
||||||
|
@ -319,7 +359,7 @@ public class WorkspaceExplorerAppServiceImpl extends RemoteServiceServlet implem
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the parents by item identifier to limit.
|
* Gets the parents by item identifier to limit.
|
||||||
*
|
* when limit is reached parents are null
|
||||||
* @param itemIdentifier the item identifier
|
* @param itemIdentifier the item identifier
|
||||||
* @param parentLimit the parent limit
|
* @param parentLimit the parent limit
|
||||||
* @param includeItemAsParent the include item as parent
|
* @param includeItemAsParent the include item as parent
|
||||||
|
@ -338,15 +378,56 @@ public class WorkspaceExplorerAppServiceImpl extends RemoteServiceServlet implem
|
||||||
logger.trace("parents size: "+parents.size());
|
logger.trace("parents size: "+parents.size());
|
||||||
Item[] arrayParents;
|
Item[] arrayParents;
|
||||||
|
|
||||||
if(includeItemAsParent==true && wsItem.isFolder()){
|
parentLimit = parentLimit!=null?parentLimit:"";
|
||||||
arrayParents = new Item[parents.size()];
|
|
||||||
arrayParents[parents.size()-1] = ItemBuilder.buildFolderForBreadcrumbs((WorkspaceFolder) wsItem, null);
|
switch (parents.size()) {
|
||||||
}
|
case 0: // itemIdentifier is ROOT
|
||||||
else {
|
logger.trace("itemIdentifier isRoot...");
|
||||||
arrayParents = new Item[parents.size()-1];
|
if (includeItemAsParent) { //ADDIND ROOT
|
||||||
|
WorkspaceFolder wsFolder =(WorkspaceFolder) workspace.getItem(itemIdentifier);
|
||||||
|
Item root = ItemBuilder.buildFolderForBreadcrumbs(wsFolder, null);
|
||||||
|
List<Item> listParents = new ArrayList<Item>(1);
|
||||||
|
listParents.add(root);
|
||||||
|
return listParents;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
logger.trace("returning empty list");
|
||||||
|
return new ArrayList<Item>(); // empty list
|
||||||
|
}
|
||||||
|
|
||||||
|
case 1: //itemIdentifier is first level from root
|
||||||
|
logger.trace("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
|
||||||
|
parent = ItemBuilder.buildFolderForBreadcrumbs(wsFolder1, 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;
|
||||||
}
|
}
|
||||||
|
|
||||||
parentLimit = parentLimit!=null?parentLimit:"";
|
WorkspaceItem lastItem = parents.get(parents.size()-1);
|
||||||
|
|
||||||
|
//CONVERTING LAST ELEMENT IF NECESSARY
|
||||||
|
logger.trace("converting last element..");
|
||||||
|
if(includeItemAsParent && lastItem.isFolder()){ //FIX BUG #298
|
||||||
|
arrayParents = new Item[parents.size()];
|
||||||
|
logger.debug("including last item into path: "+lastItem.getName());
|
||||||
|
arrayParents[parents.size()-1] = ItemBuilder.buildFolderForBreadcrumbs((WorkspaceFolder) lastItem, null);
|
||||||
|
}else
|
||||||
|
arrayParents = new Item[parents.size()-1];
|
||||||
|
|
||||||
/** HANDLE MY_SPECIAL_FOLDER TO AVOID COMPLETE PATH WORKSPACE/MY_SPECIAL_FOLDER
|
/** HANDLE MY_SPECIAL_FOLDER TO AVOID COMPLETE PATH WORKSPACE/MY_SPECIAL_FOLDER
|
||||||
* BUT RETURNING ONLY /MY_SPECIAL_FOLDER
|
* BUT RETURNING ONLY /MY_SPECIAL_FOLDER
|
||||||
|
|
Loading…
Reference in New Issue