diff --git a/.classpath b/.classpath
index 68de2d8..25b76d4 100644
--- a/.classpath
+++ b/.classpath
@@ -1,12 +1,12 @@
-
+
-
+
@@ -35,5 +35,5 @@
-
+
diff --git a/.settings/com.gwtplugins.gdt.eclipse.core.prefs b/.settings/com.gwtplugins.gdt.eclipse.core.prefs
index 7841b10..f4c7db0 100644
--- a/.settings/com.gwtplugins.gdt.eclipse.core.prefs
+++ b/.settings/com.gwtplugins.gdt.eclipse.core.prefs
@@ -1,6 +1,6 @@
eclipse.preferences.version=1
jarsExcludedFromWebInfLib=
-lastWarOutDir=/home/francesco/git/workspace-explorer-app/target/workspace-explorer-app-1.3.1-SNAPSHOT
+lastWarOutDir=/home/francesco-mangiacrapa/git/workspace-explorer-app/target/workspace-explorer-app-1.3.1
launchConfigExternalUrlPrefix=
warSrcDir=src/main/webapp
warSrcDirIsOutput=false
diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component
index 936a5fc..d36c6a2 100644
--- a/.settings/org.eclipse.wst.common.component
+++ b/.settings/org.eclipse.wst.common.component
@@ -1,5 +1,5 @@
-
+
diff --git a/pom.xml b/pom.xml
index 9c85a60..eec6cff 100644
--- a/pom.xml
+++ b/pom.xml
@@ -12,7 +12,7 @@
org.gcube.portlets.user
workspace-explorer-app
- 1.3.1
+ 1.3.1-SNAPSHOT
war
@@ -118,7 +118,7 @@
org.gcube.common
storagehub-client-wrapper
- [1.0.0, 2.0.0-SNAPSHOT)
+ [1.0.0-SNAPSHOT, 2.0.0-SNAPSHOT)
compile
diff --git a/src/main/java/org/gcube/portlets/user/workspaceexplorerapp/client/WorkspaceExplorerAppMainPanel.java b/src/main/java/org/gcube/portlets/user/workspaceexplorerapp/client/WorkspaceExplorerAppMainPanel.java
index dd9b1a0..3fb381d 100644
--- a/src/main/java/org/gcube/portlets/user/workspaceexplorerapp/client/WorkspaceExplorerAppMainPanel.java
+++ b/src/main/java/org/gcube/portlets/user/workspaceexplorerapp/client/WorkspaceExplorerAppMainPanel.java
@@ -8,6 +8,7 @@ import java.util.List;
import org.gcube.portlets.user.workspaceexplorerapp.client.download.DownloadType;
import org.gcube.portlets.user.workspaceexplorerapp.client.event.DownloadItemEvent;
+import org.gcube.portlets.user.workspaceexplorerapp.client.event.LoadFolderEvent;
import org.gcube.portlets.user.workspaceexplorerapp.client.grid.DisplayField;
import com.google.gwt.core.client.GWT;
@@ -64,6 +65,9 @@ public class WorkspaceExplorerAppMainPanel extends Composite {
@UiField
MaterialNavSection we_nav_right;
+ @UiField
+ MaterialLink home_we;
+
@UiField
MaterialLink download_we;
@@ -116,6 +120,18 @@ public class WorkspaceExplorerAppMainPanel extends Composite {
});
we_nav_right.add(order);
+
+ home_we.addClickHandler(new ClickHandler() {
+
+ /* (non-Javadoc)
+ * @see com.google.gwt.event.dom.client.ClickHandler#onClick(com.google.gwt.event.dom.client.ClickEvent)
+ */
+ @Override
+ public void onClick(ClickEvent event) {
+ WorkspaceExplorerAppMainPanel.this.handlerManager.fireEvent(new LoadFolderEvent(null));
+ }
+ });
+
download_we.addClickHandler(new ClickHandler() {
/* (non-Javadoc)
diff --git a/src/main/java/org/gcube/portlets/user/workspaceexplorerapp/client/WorkspaceExplorerAppMainPanel.ui.xml b/src/main/java/org/gcube/portlets/user/workspaceexplorerapp/client/WorkspaceExplorerAppMainPanel.ui.xml
index 8fee8c6..c16cbd0 100644
--- a/src/main/java/org/gcube/portlets/user/workspaceexplorerapp/client/WorkspaceExplorerAppMainPanel.ui.xml
+++ b/src/main/java/org/gcube/portlets/user/workspaceexplorerapp/client/WorkspaceExplorerAppMainPanel.ui.xml
@@ -63,6 +63,8 @@
+
() {
-
- @Override
- public void onFailure(Throwable caught) {
- Window.alert(caught.getMessage());
- }
-
- @Override
- public void onSuccess(String url) {
-
- if(url!=null){
- newBW.setUrl(url);
- }else
- Window.alert("Sorry, the item selected is not available for download");
-
- }
- });*/
}
}
});
@@ -311,12 +276,17 @@ public class WorkspaceResourcesExplorerPanel extends DockPanel implements HasWor
GWT.log("Reload Parent Breadcrumb: [Item id: "+itemIdentifier+"]");
- WorkspaceExplorerAppConstants.workspaceNavigatorService.getBreadcrumbsByItemIdentifierToParentLimit(itemIdentifier, folderId, includeItemAsParent, new AsyncCallback>() {
+ WorkspaceExplorerAppConstants.workspaceNavigatorService.getBreadcrumbsByItemIdentifierToParentLimit(itemIdentifier, baseFolder.getId(), includeItemAsParent, new AsyncCallback>() {
@Override
public void onFailure(Throwable caught) {
GWT.log(caught.getMessage());
- wsExplorer.setAlert(caught.getMessage(), AlertType.ERROR);
+ Item goToBaseFolder = null;
+ //I'm adding go to folder only if is a sub-folder of baseFolder
+ if(itemIdentifier!=baseFolder.getId())
+ goToBaseFolder = baseFolder;
+
+ //wsExplorer.setAlert(caught.getMessage(), AlertType.ERROR, goToBaseFolder);
}
@Override
@@ -329,21 +299,14 @@ public class WorkspaceResourcesExplorerPanel extends DockPanel implements HasWor
});
}
-
/**
* Refresh root folder view.
*/
public void refreshRootFolderView(){
- Item item = new Item(folderId, folderName, true);
- eventBus.fireEvent(new LoadFolderEvent(item));
+ //Item item = new Item(baseFolder.getId(), folderName, true);
+ eventBus.fireEvent(new LoadFolderEvent(baseFolder));
}
-
-// /**
-// * Clear more info.
-// */
-// private void clearMoreInfo(){
-// southPanel.clear();
-// }
+
/**
* Inits the panel.
diff --git a/src/main/java/org/gcube/portlets/user/workspaceexplorerapp/client/view/WorkspaceExplorer.java b/src/main/java/org/gcube/portlets/user/workspaceexplorerapp/client/view/WorkspaceExplorer.java
index b311c33..e852188 100644
--- a/src/main/java/org/gcube/portlets/user/workspaceexplorerapp/client/view/WorkspaceExplorer.java
+++ b/src/main/java/org/gcube/portlets/user/workspaceexplorerapp/client/view/WorkspaceExplorer.java
@@ -1,5 +1,4 @@
package org.gcube.portlets.user.workspaceexplorerapp.client.view;
-
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -8,6 +7,7 @@ import java.util.Set;
import org.gcube.portlets.user.workspaceexplorerapp.client.Util;
import org.gcube.portlets.user.workspaceexplorerapp.client.WorkspaceExplorerApp;
import org.gcube.portlets.user.workspaceexplorerapp.client.WorkspaceExplorerAppConstants;
+import org.gcube.portlets.user.workspaceexplorerapp.client.event.LoadFolderEvent;
import org.gcube.portlets.user.workspaceexplorerapp.client.event.RootLoadedEvent;
import org.gcube.portlets.user.workspaceexplorerapp.client.grid.DisplayField;
import org.gcube.portlets.user.workspaceexplorerapp.client.grid.ItemsTable;
@@ -17,11 +17,14 @@ import org.gcube.portlets.user.workspaceexplorerapp.shared.Item;
import org.gcube.portlets.user.workspaceexplorerapp.shared.ItemType;
import com.github.gwtbootstrap.client.ui.Alert;
+import com.github.gwtbootstrap.client.ui.Button;
import com.github.gwtbootstrap.client.ui.constants.AlertType;
+import com.github.gwtbootstrap.client.ui.constants.ButtonType;
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.event.shared.HandlerManager;
-import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.HorizontalPanel;
@@ -60,6 +63,7 @@ public class WorkspaceExplorer implements ShowableTypes, SelectableTypes{
private ItemsTable itTables;
private DisplayField[] displayFields;
private HandlerManager eventBus;
+ private Item baseFolder;
/**
@@ -100,11 +104,25 @@ public class WorkspaceExplorer implements ShowableTypes, SelectableTypes{
*
* @param html the html
* @param type the type
+ * @param goToFolder the go to folder
*/
- public void setAlert(String html, AlertType type){
+ public void setAlert(String html, AlertType type, final Item goToFolder){
explorerPanel.clear();
alert.setHTML(html);
alert.setType(type);
+
+ if(goToFolder!=null) {
+ Button buttGoToHome = new Button("Go to Home");
+ buttGoToHome.setType(ButtonType.LINK);
+ buttGoToHome.addClickHandler(new ClickHandler() {
+
+ @Override
+ public void onClick(ClickEvent event) {
+ eventBus.fireEvent(new LoadFolderEvent(goToFolder));
+ }
+ });
+ alert.add(buttGoToHome);
+ }
alert.setClose(false);
explorerPanel.add(alert);
}
@@ -140,9 +158,9 @@ public class WorkspaceExplorer implements ShowableTypes, SelectableTypes{
WorkspaceExplorerAppConstants.workspaceNavigatorService.getRoot(showableTypesParam, purgeEmpyFolders, filterCriteria, new AsyncCallback- () {
public void onFailure(Throwable caught) {
- Window.alert(caught.getMessage());
- setAlert(caught.getMessage(), AlertType.ERROR);
+ //Window.alert(caught.getMessage());
GWT.log("Error loading workspace tree from server",caught);
+ setAlert(caught.getMessage(), AlertType.ERROR, null);
}
public void onSuccess(Item item) {
@@ -186,9 +204,9 @@ public class WorkspaceExplorer implements ShowableTypes, SelectableTypes{
@Override
public void onFailure(Throwable caught) {
- Window.alert(caught.getMessage());
- setAlert(caught.getMessage(), AlertType.ERROR);
+ //Window.alert(caught.getMessage());
GWT.log("Error loading workspace folder from server",caught);
+ setAlert(caught.getMessage(), AlertType.ERROR, null);
}
@Override
@@ -226,9 +244,10 @@ public class WorkspaceExplorer implements ShowableTypes, SelectableTypes{
@Override
public void onFailure(Throwable caught) {
- Window.alert(caught.getMessage());
- setAlert(caught.getMessage(), AlertType.ERROR);
+ //Window.alert(caught.getMessage());
GWT.log("Error loading workspace folder from server",caught);
+ setAlert(caught.getMessage(), AlertType.ERROR, null);
+
}
@Override
@@ -267,7 +286,18 @@ public class WorkspaceExplorer implements ShowableTypes, SelectableTypes{
// explorerPanel.add(itTables.getCellTable());
GWT.log("added item: "+item.getName() +", to Explorer");
}
+
+
+ /**
+ * Sets the base folder.
+ *
+ * @param item the new base folder
+ */
+ public void setBaseFolder(Item baseFolder) {
+ this.baseFolder = baseFolder;
+ }
+
/**
* Gets the panel.
*
@@ -358,4 +388,5 @@ public class WorkspaceExplorer implements ShowableTypes, SelectableTypes{
this.showableTypes.clear();
if (showableTypes!=null) for (ItemType type:showableTypes) this.showableTypes.add(type);
}
+
}
diff --git a/src/main/java/org/gcube/portlets/user/workspaceexplorerapp/server/WorkspaceExplorerAppServiceImpl.java b/src/main/java/org/gcube/portlets/user/workspaceexplorerapp/server/WorkspaceExplorerAppServiceImpl.java
index 499d94c..62cf24a 100644
--- a/src/main/java/org/gcube/portlets/user/workspaceexplorerapp/server/WorkspaceExplorerAppServiceImpl.java
+++ b/src/main/java/org/gcube/portlets/user/workspaceexplorerapp/server/WorkspaceExplorerAppServiceImpl.java
@@ -145,6 +145,13 @@ public class WorkspaceExplorerAppServiceImpl extends RemoteServiceServlet implem
} catch (Exception e) {
logger.error("Error during item retrieving", e);
+
+ if(e.getMessage()!=null && e.getMessage().startsWith("Insufficent Privileges")) {
+ String erroMsg = item.getName()!=null?"The folder '"+item.getName()+"'":"This folder";
+ erroMsg+= " is not accessible as an anonymous user!";
+ throw new WorkspaceNavigatorServiceException(erroMsg);
+ }
+
throw new WorkspaceNavigatorServiceException("Sorry, an error occurred when performing get folder. Does it still exist?");
}
@@ -358,7 +365,7 @@ public class WorkspaceExplorerAppServiceImpl extends RemoteServiceServlet implem
} catch (Exception e) {
logger.error("Error in get List Parents By Item Identifier ", e);
- throw new Exception("Sorry, an error occurred during path retrieving!");
+ throw new Exception("Sorry, I'm not able to load the location of the folder. Does it still exist?");
}
}
diff --git a/src/test/.gitignore b/src/test/.gitignore
new file mode 100644
index 0000000..cb6eb2c
--- /dev/null
+++ b/src/test/.gitignore
@@ -0,0 +1 @@
+/resources/