diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component
index 96de530..438a6d8 100644
--- a/.settings/org.eclipse.wst.common.component
+++ b/.settings/org.eclipse.wst.common.component
@@ -5,7 +5,10 @@
-
+
+ uses
+
+
uses
diff --git a/pom.xml b/pom.xml
index 187c15f..f4c05ab 100644
--- a/pom.xml
+++ b/pom.xml
@@ -11,7 +11,7 @@
org.gcube.portlets.user
workspace
war
- 6.6.6-SNAPSHOT
+ 6.6.7-SNAPSHOT
gCube Workspace Portlet
gcube Workspace Portlet is a portlet for users workspace management
@@ -56,6 +56,13 @@
2.9.1
provided
+
+
+ com.github.gwtbootstrap
+ gwt-bootstrap
+ 2.2.1.0
+
+
com.google.gwt
gwt-user
diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/WorkspacePortlet.java b/src/main/java/org/gcube/portlets/user/workspace/client/WorkspacePortlet.java
index 22ea3ea..2951139 100644
--- a/src/main/java/org/gcube/portlets/user/workspace/client/WorkspacePortlet.java
+++ b/src/main/java/org/gcube/portlets/user/workspace/client/WorkspacePortlet.java
@@ -40,7 +40,8 @@ public class WorkspacePortlet implements EntryPoint {
});
updateSize();
- showGuidedTour();
+
+// showGuidedTour();
}
diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/view/panels/GxtBorderLayoutPanel.java b/src/main/java/org/gcube/portlets/user/workspace/client/view/panels/GxtBorderLayoutPanel.java
index b0e69ba..a2fc633 100644
--- a/src/main/java/org/gcube/portlets/user/workspace/client/view/panels/GxtBorderLayoutPanel.java
+++ b/src/main/java/org/gcube/portlets/user/workspace/client/view/panels/GxtBorderLayoutPanel.java
@@ -50,6 +50,8 @@ public class GxtBorderLayoutPanel extends ContentPanel {
private void initLayout(){
north.setId("NorthPanel");
+// north.setStyleAttribute("background-color", "#d0def0");
+
north.setLayout(new FitLayout());
west.setId("WestPanel");
west.setLayout(new FitLayout());
@@ -83,8 +85,8 @@ public class GxtBorderLayoutPanel extends ContentPanel {
// center.add(this.gridFilter);
- BorderLayoutData northData = new BorderLayoutData(LayoutRegion.NORTH, 55, 55, 70);
- northData.setCollapsible(true);
+ BorderLayoutData northData = new BorderLayoutData(LayoutRegion.NORTH, 70, 70, 70);
+ northData.setCollapsible(true);
northData.setSplit(true); //Split bar between regions
// northData.setFloatable(true);
@@ -112,6 +114,7 @@ public class GxtBorderLayoutPanel extends ContentPanel {
southData.setMargins(new Margins(1, 0, 0, 0));
north.add(this.searchAndFilterContainer);
+ north.setScrollMode(Scroll.AUTOY);
west.add(this.expPanel);
diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/view/panels/GxtSeachAndFilterPanel.java b/src/main/java/org/gcube/portlets/user/workspace/client/view/panels/GxtSeachAndFilterPanel.java
index 2790b82..c89d4c4 100644
--- a/src/main/java/org/gcube/portlets/user/workspace/client/view/panels/GxtSeachAndFilterPanel.java
+++ b/src/main/java/org/gcube/portlets/user/workspace/client/view/panels/GxtSeachAndFilterPanel.java
@@ -66,19 +66,21 @@ public class GxtSeachAndFilterPanel extends LayoutContainer {
setLayout(new FitLayout());
setBorders(true);
- setId("SearchAndFilter");
-
+ this.setId("SearchAndFilter");
+ this.setBorders(false);
+// this.setStyleAttribute("background-color", "#d0def0");
this.comboBoxGxt = new GxtComboBox();
this.cbViewScope = this.comboBoxGxt.getComboViewScope();
this.cbNameFilter = this.comboBoxGxt.getComboStringFilter();
-
+ this.textSearch.setId("TextSearch");
+// this.textSearch.setStyleAttribute("margin-bottom", "0px");
this.cbViewScope.setWidth(360);
// this.cbViewScope.setAutoWidth(true);
this.toolbarPahtPanel = toolBarPathPanel;
verticalPanel.add(this.toolbarPahtPanel.getToolBarPathPanel());
- hp.setStyleAttribute("padding", "2px");
+ hp.setStyleAttribute("margin-left", "2px");
seVisibleButtonsCancelSave(false);
@@ -104,13 +106,17 @@ public class GxtSeachAndFilterPanel extends LayoutContainer {
// hp.add(bCancel);
hp.add(bSave);
+ hp.setHeight(20);
+ hpMain.setHeight(20);
+
+
bSearch.setWidth("70px");
bSave.setWidth("70px");
hp2.setHorizontalAlign(HorizontalAlignment.RIGHT);
hp2.setVerticalAlign(VerticalAlignment.MIDDLE);
//hp2.add(txtViewScope);
- hp2.add(cbViewScope);
+// hp2.add(cbViewScope);
cbViewScope.setStyleAttribute("margin-left", "132px");
cbViewScope.setStyleAttribute("margin-top", "2px");
@@ -120,9 +126,11 @@ public class GxtSeachAndFilterPanel extends LayoutContainer {
//SOLUTION FOR SCOPE INVISIBLE
cbViewScope.setVisible(false);
- hpMain.add(hp2);
+// hpMain.add(hp2);
+// verticalPanel.setLayout(new FitLayout());
verticalPanel.add(hpMain);
+// verticalPanel.setStyleAttribute("background-color", "#d0def0");
this.addListeners();
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
new file mode 100644
index 0000000..b3f0810
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/workspace/client/view/toolbars/Breadcrumbs.java
@@ -0,0 +1,118 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.workspace.client.view.toolbars;
+
+import java.util.LinkedHashMap;
+import java.util.List;
+
+import org.gcube.portlets.user.workspace.client.AppController;
+import org.gcube.portlets.user.workspace.client.event.PathElementSelectedEvent;
+import org.gcube.portlets.user.workspace.client.model.FileModel;
+
+import com.github.gwtbootstrap.client.ui.NavLink;
+import com.google.gwt.core.client.GWT;
+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;
+import com.google.gwt.user.client.ui.Widget;
+
+/**
+ *
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ * @Jul 28, 2014
+ *
+ */
+public class Breadcrumbs extends Composite {
+
+ /**
+ *
+ */
+ public static final String DIVIDER = ">";
+ private String rootName;
+ private LinkedHashMap hashFileModel = new LinkedHashMap();// Ordered-HashMap
+ private FileModel lastParent;
+ private static BreadcrumbsUiBinder uiBinder = GWT.create(BreadcrumbsUiBinder.class);
+
+ @UiField
+ com.github.gwtbootstrap.client.ui.Breadcrumbs breadcrumbs;
+
+ interface BreadcrumbsUiBinder extends UiBinder {
+ }
+
+ public Breadcrumbs(String rootName) {
+ this.rootName = rootName;
+ initWidget(uiBinder.createAndBindUi(this));
+ breadcrumbs.setDivider(DIVIDER);
+ // initBreadcrumb(true);
+ this.addStyleName("Breadcrumbs-Personal");
+ }
+
+ public void setPath(List parents) {
+
+ resetBreadcrumbs();
+
+ if (parents != null && parents.size() > 0) {
+
+ hashFileModel = new LinkedHashMap();
+
+ for (FileModel parent : parents) {
+ addNavigationLink(parent);
+ hashFileModel.put(parent.getIdentifier(), parent);
+ }
+
+ lastParent = parents.get(parents.size() - 1);
+ }
+ }
+
+ /**
+ *
+ */
+ private void initBreadcrumb(boolean addFakeRootName) {
+ resetBreadcrumbs();
+ if (addFakeRootName) {
+ NavLink navLink = new NavLink(rootName);
+ breadcrumbs.add(navLink);
+ }
+ }
+
+ private void resetBreadcrumbs() {
+
+ breadcrumbs.clear();
+ }
+
+ // @UiHandler("add")
+ public void addNavigationLink(FileModel parent) {
+
+ 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));
+
+ }
+ });
+ }
+
+ public boolean breadcrumbIsEmpty() {
+
+ if (hashFileModel.size() == 0)
+ return true;
+
+ return false;
+ }
+
+ public FileModel getLastParent() {
+ return lastParent;
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/view/toolbars/Breadcrumbs.ui.xml b/src/main/java/org/gcube/portlets/user/workspace/client/view/toolbars/Breadcrumbs.ui.xml
new file mode 100644
index 0000000..4f59da5
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/workspace/client/view/toolbars/Breadcrumbs.ui.xml
@@ -0,0 +1,18 @@
+
+
+
+ .pretty {
+ background-color: #d0def0;
+ }
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/view/toolbars/GxtBreadcrumbPathPanel.java b/src/main/java/org/gcube/portlets/user/workspace/client/view/toolbars/GxtBreadcrumbPathPanel.java
index 222e662..3e2cd62 100644
--- a/src/main/java/org/gcube/portlets/user/workspace/client/view/toolbars/GxtBreadcrumbPathPanel.java
+++ b/src/main/java/org/gcube/portlets/user/workspace/client/view/toolbars/GxtBreadcrumbPathPanel.java
@@ -1,23 +1,10 @@
package org.gcube.portlets.user.workspace.client.view.toolbars;
-import java.util.ArrayList;
-import java.util.LinkedHashMap;
import java.util.List;
-import org.gcube.portlets.user.workspace.client.AppController;
-import org.gcube.portlets.user.workspace.client.event.PathElementSelectedEvent;
import org.gcube.portlets.user.workspace.client.model.FileModel;
-import org.gcube.portlets.user.workspace.client.resources.Resources;
-import com.extjs.gxt.ui.client.event.ButtonEvent;
-import com.extjs.gxt.ui.client.event.Events;
-import com.extjs.gxt.ui.client.event.Listener;
-import com.extjs.gxt.ui.client.widget.HorizontalPanel;
-import com.extjs.gxt.ui.client.widget.Text;
-import com.extjs.gxt.ui.client.widget.WidgetComponent;
-import com.extjs.gxt.ui.client.widget.button.Button;
-import com.google.gwt.core.shared.GWT;
-import com.google.gwt.user.client.ui.Image;
+import com.google.gwt.user.client.ui.Composite;
/**
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
@@ -26,161 +13,33 @@ import com.google.gwt.user.client.ui.Image;
public class GxtBreadcrumbPathPanel {
private static final String ROOT_NAME = "Workspace";
-
- private HorizontalPanel hpToolBar = new HorizontalPanel();
- private Text txtPath = new Text("PATH ");
- private LinkedHashMap hashFileModel = new LinkedHashMap();// Ordered-HashMap
- boolean rootAdded = false;
- protected WidgetComponent hardDiskIcon = new WidgetComponent(new Image (Resources.getImageHardDisk()));
-
- private FileModel lastParent;
+ private Breadcrumbs breadCrumbs = new Breadcrumbs(ROOT_NAME);
+
public GxtBreadcrumbPathPanel() {
- hpToolBar = new HorizontalPanel();
-// hpToolBar.setScrollMode(Scroll.AUTOX);
- hpToolBar.setId("myToolbarPath");
- hpToolBar.setHeight("25px");
- initToolbar();
}
-
-
- /*
- * private void createScrollers() { int h = hpToolBar.getHeight(); El
- * scrollLeft =
- * hpToolBar.el().insertFirst("");
- * addStyleOnOver(scrollLeft.dom, "x-tab-scroller-left-over");
- * scrollLeft.setHeight(h);
- *
- * El scrollRight =
- * hpToolBar.el().insertFirst("");
- * addStyleOnOver(scrollRight.dom, "x-tab-scroller-right-over");
- * scrollRight.setHeight(h);
- *
- * }
- *
- * public El fly(Element elem) { return El.fly(elem, "component"); }
- *
- * private Map overElements;
- *
- *
- * protected void addStyleOnOver(Element elem, String style) { if
- * (overElements == null) { overElements = new FastMap(); }
- * overElements.put(fly(elem).getId(), style); }
- */
-
- public HorizontalPanel getToolBarPathPanel() {
- return hpToolBar;
+ public Composite getToolBarPathPanel() {
+ return breadCrumbs;
}
public void setPath(List parents) {
-
- initToolbarWithoutFakeRoot();
-
-// refreshSize();
-
- if (parents != null && parents.size() > 0) {
-
- ArrayList