diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/AppController.java b/src/main/java/org/gcube/portlets/user/workspace/client/AppController.java index 3e52185..85ec6b7 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/client/AppController.java +++ b/src/main/java/org/gcube/portlets/user/workspace/client/AppController.java @@ -1082,7 +1082,7 @@ public class AppController implements SubscriberInterface { @Override public void onSuccess(List result) { - if(isLastParent && item.isDirectory()){ + if(isLastParent && item.isDirectory() && !item.isRoot()){ result.add(item); } updateBreadcrumb(result); //Set file path in tab panel on current item selected diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/event/LoadBreadcrumbEvent.java b/src/main/java/org/gcube/portlets/user/workspace/client/event/LoadBreadcrumbEvent.java index ed44d20..18689dc 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/client/event/LoadBreadcrumbEvent.java +++ b/src/main/java/org/gcube/portlets/user/workspace/client/event/LoadBreadcrumbEvent.java @@ -5,9 +5,9 @@ import org.gcube.portlets.user.workspace.client.model.FileModel; import com.google.gwt.event.shared.GwtEvent; /** - * + * * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it - * + * */ public class LoadBreadcrumbEvent extends GwtEvent { public static Type TYPE = new Type(); @@ -19,7 +19,7 @@ public class LoadBreadcrumbEvent extends GwtEvent { return fileModel; } - public LoadBreadcrumbEvent(FileModel item) { + public LoadBreadcrumbEvent(FileModel item, boolean addAsLastParent) { this.fileModel = item; } diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/view/toolbars/Breadcrumbs.java b/src/main/java/org/gcube/portlets/user/workspace/client/view/toolbars/Breadcrumbs.java index 90761d6..071fcda 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/client/view/toolbars/Breadcrumbs.java +++ b/src/main/java/org/gcube/portlets/user/workspace/client/view/toolbars/Breadcrumbs.java @@ -1,5 +1,5 @@ /** - * + * */ package org.gcube.portlets.user.workspace.client.view.toolbars; @@ -28,7 +28,7 @@ import com.google.gwt.user.client.ui.Widget; * Dec 14, 2015 */ public class Breadcrumbs extends Composite { - + public static final String DIVIDER = ">"; private String rootName; private LinkedHashMap hashFileModel = new LinkedHashMap();// Ordered-HashMap @@ -57,7 +57,7 @@ public class Breadcrumbs extends Composite { initWidget(uiBinder.createAndBindUi(this)); breadcrumbs.setDivider(DIVIDER); // initBreadcrumb(true); - + Element ul = this.getElement().getFirstChildElement(); ul.removeClassName("breadcrumb"); ul.addClassName("Breadcrumbs-Personal"); @@ -77,8 +77,10 @@ public class Breadcrumbs extends Composite { hashFileModel = new LinkedHashMap(); for (FileModel parent : parents) { - addNavigationLink(parent); - hashFileModel.put(parent.getIdentifier(), parent); + if(parent!=null){ + addNavigationLink(parent); + hashFileModel.put(parent.getIdentifier(), parent); + } } lastParent = parents.get(parents.size() - 1); @@ -101,7 +103,7 @@ public class Breadcrumbs extends Composite { * @param parent the parent */ public void addNavigationLink(FileModel parent) { - if (! parent.isRoot()) { + /*if (!parent.isRoot()) { final NavLink navLink = new NavLink(parent.getName()); navLink.setName(parent.getIdentifier()); breadcrumbs.add(navLink); @@ -118,7 +120,21 @@ public class Breadcrumbs extends Composite { } else { final NavLink navLink = new NavLink(""); breadcrumbs.add(navLink); - } + }*/ + + final NavLink navLink = new NavLink(parent.getName()); + navLink.setName(parent.getIdentifier()); + breadcrumbs.add(navLink); + + navLink.addClickHandler(new ClickHandler() { + + @Override + public void onClick(ClickEvent event) { + + FileModel target = hashFileModel.get(navLink.getName()); + AppController.getEventBus().fireEvent(new PathElementSelectedEvent(target)); + } + }); } /**