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:
parent
fdb64715a6
commit
40a4f9c4d0
|
@ -60,7 +60,7 @@ public class WorkspaceExplorerController implements EventHandler{
|
|||
public void onLoadRoot(LoadRootEvent loadRootEvent) {
|
||||
|
||||
wsExplorer.loadTree();
|
||||
breadcrumbs.reset();
|
||||
breadcrumbs.init();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -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("/"));
|
||||
}
|
||||
|
||||
}
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue