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
This commit is contained in:
Francesco Mangiacrapa 2015-06-25 14:34:41 +00:00
parent fdb64715a6
commit 40a4f9c4d0
4 changed files with 32 additions and 15 deletions

View File

@ -60,7 +60,7 @@ public class WorkspaceExplorerController implements EventHandler{
public void onLoadRoot(LoadRootEvent loadRootEvent) { public void onLoadRoot(LoadRootEvent loadRootEvent) {
wsExplorer.loadTree(); wsExplorer.loadTree();
breadcrumbs.reset(); breadcrumbs.init();
} }
}); });
} }

View File

@ -6,6 +6,8 @@ package org.gcube.portlets.widgets.wsexplorer.client.view;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List; 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 org.gcube.portlets.widgets.wsexplorer.shared.Item;
import com.github.gwtbootstrap.client.ui.NavLink; 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 class Breadcrumbs extends Composite {
public static final String DIVIDER = "/"; public static final String DIVIDER = "/";
private LinkedHashMap<String, Item> hashFileModel = new LinkedHashMap<String, Item>();// Ordered-HashMap private LinkedHashMap<String, Item> hashListItems = new LinkedHashMap<String, Item>();// Ordered-HashMap
private Item lastParent; private Item lastParent;
private static BreadcrumbsUiBinder uiBinder = GWT.create(BreadcrumbsUiBinder.class); private static BreadcrumbsUiBinder uiBinder = GWT.create(BreadcrumbsUiBinder.class);
@ -50,7 +52,7 @@ public class Breadcrumbs extends Composite {
public Breadcrumbs() { public Breadcrumbs() {
initWidget(uiBinder.createAndBindUi(this)); initWidget(uiBinder.createAndBindUi(this));
breadcrumbs.setDivider(DIVIDER); breadcrumbs.setDivider(DIVIDER);
breadcrumbs.add(new NavLink("/")); init();
// initBreadcrumb(true); // initBreadcrumb(true);
this.addStyleName("breadcrumbs-navigator"); this.addStyleName("breadcrumbs-navigator");
} }
@ -62,12 +64,12 @@ public class Breadcrumbs extends Composite {
* the new path * the new path
*/ */
public void setPath(List<Item> parents) { public void setPath(List<Item> parents) {
initBreadcrumbs(); resetBreadcrumbs();
if (parents != null && parents.size() > 0) { if (parents != null && parents.size() > 0) {
hashFileModel = new LinkedHashMap<String, Item>(); hashListItems = new LinkedHashMap<String, Item>();
for (Item parent : parents) { for (Item parent : parents) {
addNavigationLink(parent); addNavigationLink(parent);
hashFileModel.put(parent.getId(), parent); hashListItems.put(parent.getId(), parent);
} }
lastParent = parents.get(parents.size() - 1); lastParent = parents.get(parents.size() - 1);
} }
@ -76,7 +78,7 @@ public class Breadcrumbs extends Composite {
/** /**
* Reset breadcrumbs. * Reset breadcrumbs.
*/ */
private void initBreadcrumbs() { private void resetBreadcrumbs() {
breadcrumbs.clear(); breadcrumbs.clear();
} }
@ -98,7 +100,9 @@ public class Breadcrumbs extends Composite {
@Override @Override
public void onClick(ClickEvent event) { 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 } else { // is Root
@ -115,7 +119,7 @@ public class Breadcrumbs extends Composite {
*/ */
public boolean breadcrumbIsEmpty() { public boolean breadcrumbIsEmpty() {
if (hashFileModel.size() == 0) if (hashListItems.size() == 0)
return true; return true;
return false; return false;
@ -133,8 +137,9 @@ public class Breadcrumbs extends Composite {
/** /**
* *
*/ */
public void reset() { public void init() {
initBreadcrumbs(); resetBreadcrumbs();
breadcrumbs.add(new NavLink("/"));
} }
} }

View File

@ -4,11 +4,15 @@
package org.gcube.portlets.widgets.wsexplorer.client.view; package org.gcube.portlets.widgets.wsexplorer.client.view;
import org.gcube.portlets.widgets.wsexplorer.client.WorkspaceExplorerConstants; 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.NavWidget;
import com.github.gwtbootstrap.client.ui.constants.IconType; import com.github.gwtbootstrap.client.ui.constants.IconType;
import com.google.gwt.core.client.GWT; import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.Style.Unit; 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.UiBinder;
import com.google.gwt.uibinder.client.UiField; import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.Composite;
@ -48,6 +52,14 @@ public class Navigation extends Composite{
home.setText(WorkspaceExplorerConstants.HOME_LABEL); home.setText(WorkspaceExplorerConstants.HOME_LABEL);
home.setIcon(IconType.HOME); 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.setActive(true);
vre_folder.setText(WorkspaceExplorerConstants.VRE_FOLDERS_LABEL); vre_folder.setText(WorkspaceExplorerConstants.VRE_FOLDERS_LABEL);
vre_folder.setIcon(IconType.FOLDER_CLOSE); vre_folder.setIcon(IconType.FOLDER_CLOSE);

View File

@ -133,9 +133,9 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement
_log.trace("end time - " + time); _log.trace("end time - " + time);
//printName("", rootItem); //printName("", rootItem);
Collections.sort(rootItem.getChildren(), new ItemComparator()); Collections.sort(rootItem.getChildren(), new ItemComparator());
_log.info("Returning children size: "+rootItem.getChildren().size());
return rootItem; return rootItem;
} catch (Exception e) { } catch (Exception e) {
@ -222,7 +222,7 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement
@Override @Override
public List<Item> getListParentsByItemIdentifier(String itemIdentifier, boolean includeItemAsParent) throws Exception { public List<Item> getListParentsByItemIdentifier(String itemIdentifier, boolean includeItemAsParent) throws Exception {
List<Item> listParents = new ArrayList<Item>(); List<Item> listParents = new ArrayList<Item>();
_log.trace("get List Parents By Item Identifier "+ itemIdentifier); _log.trace("ListParents By Item Identifier "+ itemIdentifier);
try { try {
Workspace workspace = getWorkspace(); Workspace workspace = getWorkspace();
@ -251,7 +251,7 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement
fileModel.setParent(parent); fileModel.setParent(parent);
} }
_log.trace("list parents return size: "+listParents.size()); _log.trace("ListParents return size: "+listParents.size());
} catch (Exception e) { } catch (Exception e) {
_log.error("Error in get List Parents By Item Identifier ", e); _log.error("Error in get List Parents By Item Identifier ", e);