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) {
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.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<String, Item> hashFileModel = new LinkedHashMap<String, Item>();// Ordered-HashMap
private LinkedHashMap<String, Item> hashListItems = new LinkedHashMap<String, Item>();// 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<Item> parents) {
initBreadcrumbs();
resetBreadcrumbs();
if (parents != null && parents.size() > 0) {
hashFileModel = new LinkedHashMap<String, Item>();
hashListItems = new LinkedHashMap<String, Item>();
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("/"));
}
}

View File

@ -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);

View File

@ -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<Item> getListParentsByItemIdentifier(String itemIdentifier, boolean includeItemAsParent) throws Exception {
List<Item> listParents = new ArrayList<Item>();
_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);