From 40a4f9c4d042055ad0365dda86e37629f57da6b3 Mon Sep 17 00:00:00 2001 From: Francesco Mangiacrapa Date: Thu, 25 Jun 2015 14:34:41 +0000 Subject: [PATCH] 256: Workspace explorer Task-Url: https://support.d4science.org/issues/256 Updated breadcrumbs and navigation git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/widgets/workspace-explorer@115553 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../client/WorkspaceExplorerController.java | 2 +- .../wsexplorer/client/view/Breadcrumbs.java | 25 +++++++++++-------- .../wsexplorer/client/view/Navigation.java | 12 +++++++++ .../server/WorkspaceExplorerServiceImpl.java | 8 +++--- 4 files changed, 32 insertions(+), 15 deletions(-) diff --git a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/WorkspaceExplorerController.java b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/WorkspaceExplorerController.java index c6fd270..87d9ee0 100644 --- a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/WorkspaceExplorerController.java +++ b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/WorkspaceExplorerController.java @@ -60,7 +60,7 @@ public class WorkspaceExplorerController implements EventHandler{ public void onLoadRoot(LoadRootEvent loadRootEvent) { wsExplorer.loadTree(); - breadcrumbs.reset(); + breadcrumbs.init(); } }); } diff --git a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/view/Breadcrumbs.java b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/view/Breadcrumbs.java index 5e4442a..17afba6 100644 --- a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/view/Breadcrumbs.java +++ b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/view/Breadcrumbs.java @@ -6,6 +6,8 @@ package org.gcube.portlets.widgets.wsexplorer.client.view; import java.util.LinkedHashMap; import java.util.List; +import org.gcube.portlets.widgets.wsexplorer.client.WorkspaceExplorerController; +import org.gcube.portlets.widgets.wsexplorer.client.event.LoadFolderEvent; import org.gcube.portlets.widgets.wsexplorer.shared.Item; import com.github.gwtbootstrap.client.ui.NavLink; @@ -25,7 +27,7 @@ import com.google.gwt.user.client.ui.Widget; public class Breadcrumbs extends Composite { public static final String DIVIDER = "/"; - private LinkedHashMap hashFileModel = new LinkedHashMap();// Ordered-HashMap + private LinkedHashMap hashListItems = new LinkedHashMap();// Ordered-HashMap private Item lastParent; private static BreadcrumbsUiBinder uiBinder = GWT.create(BreadcrumbsUiBinder.class); @@ -50,7 +52,7 @@ public class Breadcrumbs extends Composite { public Breadcrumbs() { initWidget(uiBinder.createAndBindUi(this)); breadcrumbs.setDivider(DIVIDER); - breadcrumbs.add(new NavLink("/")); + init(); // initBreadcrumb(true); this.addStyleName("breadcrumbs-navigator"); } @@ -62,12 +64,12 @@ public class Breadcrumbs extends Composite { * the new path */ public void setPath(List parents) { - initBreadcrumbs(); + resetBreadcrumbs(); if (parents != null && parents.size() > 0) { - hashFileModel = new LinkedHashMap(); + hashListItems = new LinkedHashMap(); for (Item parent : parents) { addNavigationLink(parent); - hashFileModel.put(parent.getId(), parent); + hashListItems.put(parent.getId(), parent); } lastParent = parents.get(parents.size() - 1); } @@ -76,7 +78,7 @@ public class Breadcrumbs extends Composite { /** * Reset breadcrumbs. */ - private void initBreadcrumbs() { + private void resetBreadcrumbs() { breadcrumbs.clear(); } @@ -98,7 +100,9 @@ public class Breadcrumbs extends Composite { @Override public void onClick(ClickEvent event) { - Item target = hashFileModel.get(navLink.getName()); + Item target = hashListItems.get(navLink.getName()); + + WorkspaceExplorerController.eventBus.fireEvent(new LoadFolderEvent(target)); } }); } else { // is Root @@ -115,7 +119,7 @@ public class Breadcrumbs extends Composite { */ public boolean breadcrumbIsEmpty() { - if (hashFileModel.size() == 0) + if (hashListItems.size() == 0) return true; return false; @@ -133,8 +137,9 @@ public class Breadcrumbs extends Composite { /** * */ - public void reset() { - initBreadcrumbs(); + public void init() { + resetBreadcrumbs(); + breadcrumbs.add(new NavLink("/")); } } \ No newline at end of file diff --git a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/view/Navigation.java b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/view/Navigation.java index 26de841..4440541 100644 --- a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/view/Navigation.java +++ b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/view/Navigation.java @@ -4,11 +4,15 @@ package org.gcube.portlets.widgets.wsexplorer.client.view; import org.gcube.portlets.widgets.wsexplorer.client.WorkspaceExplorerConstants; +import org.gcube.portlets.widgets.wsexplorer.client.WorkspaceExplorerController; +import org.gcube.portlets.widgets.wsexplorer.client.event.LoadRootEvent; import com.github.gwtbootstrap.client.ui.NavWidget; import com.github.gwtbootstrap.client.ui.constants.IconType; import com.google.gwt.core.client.GWT; import com.google.gwt.dom.client.Style.Unit; +import com.google.gwt.event.dom.client.ClickEvent; +import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiField; import com.google.gwt.user.client.ui.Composite; @@ -48,6 +52,14 @@ public class Navigation extends Composite{ home.setText(WorkspaceExplorerConstants.HOME_LABEL); home.setIcon(IconType.HOME); + home.addClickHandler(new ClickHandler() { + + @Override + public void onClick(ClickEvent event) { + WorkspaceExplorerController.eventBus.fireEvent(new LoadRootEvent()); + } + }); + vre_folder.setActive(true); vre_folder.setText(WorkspaceExplorerConstants.VRE_FOLDERS_LABEL); vre_folder.setIcon(IconType.FOLDER_CLOSE); diff --git a/src/main/java/org/gcube/portlets/widgets/wsexplorer/server/WorkspaceExplorerServiceImpl.java b/src/main/java/org/gcube/portlets/widgets/wsexplorer/server/WorkspaceExplorerServiceImpl.java index 929fbc1..88aaf6f 100644 --- a/src/main/java/org/gcube/portlets/widgets/wsexplorer/server/WorkspaceExplorerServiceImpl.java +++ b/src/main/java/org/gcube/portlets/widgets/wsexplorer/server/WorkspaceExplorerServiceImpl.java @@ -133,9 +133,9 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement _log.trace("end time - " + time); //printName("", rootItem); - Collections.sort(rootItem.getChildren(), new ItemComparator()); - + _log.info("Returning children size: "+rootItem.getChildren().size()); + return rootItem; } catch (Exception e) { @@ -222,7 +222,7 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement @Override public List getListParentsByItemIdentifier(String itemIdentifier, boolean includeItemAsParent) throws Exception { List listParents = new ArrayList(); - _log.trace("get List Parents By Item Identifier "+ itemIdentifier); + _log.trace("ListParents By Item Identifier "+ itemIdentifier); try { Workspace workspace = getWorkspace(); @@ -251,7 +251,7 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement fileModel.setParent(parent); } - _log.trace("list parents return size: "+listParents.size()); + _log.trace("ListParents return size: "+listParents.size()); } catch (Exception e) { _log.error("Error in get List Parents By Item Identifier ", e);