From e281016eab3272334ad4a4fdbf3dbc73d3b1fbaa Mon Sep 17 00:00:00 2001 From: Francesco Mangiacrapa Date: Fri, 23 Oct 2015 14:01:23 +0000 Subject: [PATCH] 553: Workspace: Drag Files Into the Workspace from the Desktop Task-Url: https://support.d4science.org/issues/553 Workspace: added event and listener to notify upload status git-svn-id: http://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/portlets/user/workspace@119996 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../user/workspace/client/AppController.java | 33 +++++++++++ .../client/view/WorskpacePortlet.java | 24 +++++++- .../view/panels/GxtBorderLayoutPanel.java | 57 ++++++------------- 3 files changed, 70 insertions(+), 44 deletions(-) diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/AppController.java b/src/main/java/org/gcube/portlets/user/workspace/client/AppController.java index 7e209fa..e0eeb67 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/client/AppController.java +++ b/src/main/java/org/gcube/portlets/user/workspace/client/AppController.java @@ -22,6 +22,7 @@ import org.gcube.portlets.user.workspace.client.event.AddAdministratorEventHandl import org.gcube.portlets.user.workspace.client.event.AddFolderEvent; import org.gcube.portlets.user.workspace.client.event.AddFolderEventHandler; import org.gcube.portlets.user.workspace.client.event.AddSmartFolderEvent; +import org.gcube.portlets.user.workspace.client.event.CompletedFileUploadEvent; import org.gcube.portlets.user.workspace.client.event.DeleteItemEvent; import org.gcube.portlets.user.workspace.client.event.DeleteItemEventHandler; import org.gcube.portlets.user.workspace.client.event.DeleteMessageEvent; @@ -111,6 +112,8 @@ import org.gcube.portlets.user.workspace.shared.TrashOperationContent; import org.gcube.portlets.user.workspace.shared.WorkspaceTrashOperation; import org.gcube.portlets.user.workspace.shared.WorkspaceUserQuote; import org.gcube.portlets.widgets.sessionchecker.client.CheckSession; +import org.gcube.portlets.widgets.workspaceuploader.client.WorkspaceUploadNotification.WorskpaceUploadNotificationListener; +import org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.DNDFileReader; import org.gcube.portlets.widgets.wsmail.client.forms.MailForm; import com.extjs.gxt.ui.client.widget.LayoutContainer; @@ -1189,6 +1192,36 @@ public class AppController implements SubscriberInterface { } this.wsPortlet = new WorskpacePortlet(this.appContrExplorer.getPanel(true, false, !isSearch), instanceWithGrouping); + + final DNDFileReader dnd = this.wsPortlet.getDND(); + + WorskpaceUploadNotificationListener listener = new WorskpaceUploadNotificationListener() { + + @Override + public void onUploadCompleted(String parentId, String itemId) { + GWT.log("Upload completed: [parentID: "+parentId+", itemId: "+itemId+", uploadType: "+dnd.getUploadType()+"]"); + AppControllerExplorer.getEventBus().fireEvent(new CompletedFileUploadEvent(parentId, itemId, WS_UPLOAD_TYPE.File, false)); + } + + @Override + public void onUploadAborted(String parentId, String itemId) { + GWT.log("Upload Aborted: [parentID: "+parentId+", itemId: "+itemId+"]"); + } + + @Override + public void onError(String parentId, String itemId, Throwable throwable) { + GWT.log("Upload Error: [parentID: "+parentId+", itemId: "+itemId+"]"); + } + + @Override + public void onOverwriteCompleted(String parentId, String itemId) { + GWT.log("Upload Override Completed: [parentID: "+parentId+", itemId: "+itemId+"]"); + eventBus.fireEvent(new CompletedFileUploadEvent(parentId, itemId, WS_UPLOAD_TYPE.File, true)); + } + }; + + dnd.addWorkspaceUploadNotificationListener(listener); + eventBus.fireEvent(new LoadAllScopeEvent()); //LOAD ALL SCOPE EVENT } diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/view/WorskpacePortlet.java b/src/main/java/org/gcube/portlets/user/workspace/client/view/WorskpacePortlet.java index a8f3af7..497df30 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/client/view/WorskpacePortlet.java +++ b/src/main/java/org/gcube/portlets/user/workspace/client/view/WorskpacePortlet.java @@ -1,5 +1,6 @@ package org.gcube.portlets.user.workspace.client.view; +import org.gcube.portlets.user.workspace.client.event.CompletedFileUploadEvent; import org.gcube.portlets.user.workspace.client.view.grids.GxtGridFilterGroupPanel; import org.gcube.portlets.user.workspace.client.view.panels.GxtBasicTabPanel; import org.gcube.portlets.user.workspace.client.view.panels.GxtBorderLayoutPanel; @@ -7,6 +8,10 @@ import org.gcube.portlets.user.workspace.client.view.panels.GxtCardLayoutResultP import org.gcube.portlets.user.workspace.client.view.panels.GxtSeachAndFilterPanel; import org.gcube.portlets.user.workspace.client.view.toolbars.GxtBottomToolBarItem; import org.gcube.portlets.user.workspace.client.view.toolbars.GxtBreadcrumbPathPanel; +import org.gcube.portlets.widgets.workspaceuploader.client.WorkspaceUploadNotification.WorskpaceUploadNotificationListener; +import org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.DNDFileReader; + +import com.google.gwt.core.client.GWT; /** @@ -24,7 +29,8 @@ public class WorskpacePortlet { private GxtBreadcrumbPathPanel toolBarPathPanel; private GxtGridFilterGroupPanel gridFilterGroupContainer; private GxtSeachAndFilterPanel searchAndFilterContainer; - private GxtCardLayoutResultPanel gxtCardLayoutResultPanel; + private GxtCardLayoutResultPanel gxtCardLayoutResultPanel; + private DNDFileReader dnd; public WorskpacePortlet(boolean activeGroup) { @@ -42,8 +48,8 @@ public class WorskpacePortlet { public WorskpacePortlet(ExplorerPanel expPanel, boolean activeGroup) { this(activeGroup); this.explorerPanel = expPanel; - - this.borderLayoutContainer = new GxtBorderLayoutPanel(this.searchAndFilterContainer, this.explorerPanel, this.gxtCardLayoutResultPanel, this.toolBarItemDetails); + this.dnd = new DNDFileReader(); + this.borderLayoutContainer = new GxtBorderLayoutPanel(this.searchAndFilterContainer, this.explorerPanel, this.gxtCardLayoutResultPanel, this.toolBarItemDetails, this.dnd); } public GxtBorderLayoutPanel getBorderLayoutContainer() { @@ -58,6 +64,11 @@ public class WorskpacePortlet { return searchAndFilterContainer; } + /** + * Gets the tool bar path. + * + * @return the tool bar path + */ public GxtBreadcrumbPathPanel getToolBarPath() { return toolBarPathPanel; } @@ -77,4 +88,11 @@ public class WorskpacePortlet { public GxtBottomToolBarItem getToolBarItemDetails() { return toolBarItemDetails; } + + /** + * @return the dnd + */ + public DNDFileReader getDND() { + return dnd; + } } 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 e09c633..5e5d257 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 @@ -36,53 +36,23 @@ public class GxtBorderLayoutPanel extends ContentPanel { private ExplorerPanel expPanel = null; //TODO change position private GxtSeachAndFilterPanel searchAndFilterContainer; private GxtCardLayoutResultPanel gxtCardLayoutResultPanel; - - private DNDFileReader dnd = new DNDFileReader(); + private DNDFileReader dnd; public GxtBorderLayoutPanel( GxtSeachAndFilterPanel searchAndFilterContainer2, ExplorerPanel explorerPanel, GxtCardLayoutResultPanel gxtCardLayoutResultPanel, - GxtBottomToolBarItem detailsContainer2) { + GxtBottomToolBarItem detailsContainer2, DNDFileReader dnd) { this.searchAndFilterContainer = searchAndFilterContainer2; this.expPanel = explorerPanel; this.gxtCardLayoutResultPanel = gxtCardLayoutResultPanel; this.toolBarItemDetails = detailsContainer2; + this.dnd = dnd; this.initLayout(); this.createLayouts(); - - WorskpaceUploadNotificationListener listener = new WorskpaceUploadNotificationListener() { - - @Override - public void onUploadCompleted(String parentId, String itemId) { - // TODO Auto-generated method stub - - } - - @Override - public void onUploadAborted(String parentId, String itemId) { - // TODO Auto-generated method stub - - } - - @Override - public void onOverwriteCompleted(String parentId, String itemId) { - // TODO Auto-generated method stub - - } - - @Override - public void onError(String parentId, String itemId, Throwable throwable) { - // TODO Auto-generated method stub - - } - }; - - - dnd.addWorkspaceUploadNotificationListener(listener); } private void initLayout(){ @@ -170,20 +140,17 @@ public class GxtBorderLayoutPanel extends ContentPanel { @Override public void handleEvent(BoxComponentEvent be) { - toolBarItemDetails.refreshSize(); - gxtCardLayoutResultPanel.setSize(center.getWidth()-2, center.getHeight()); -// GWT.log("gxtCardLayoutResultPanel new width "+newHeight); - gxtCardLayoutResultPanel.getGridGroupViewContainer().refreshSize((center.getWidth()-2)+"px", (center.getHeight()-50)+"px"); + updateSizeCard(); + updateSizeGrid(); } - }); gxtCardLayoutResultPanel.addListener(Events.Render, new Listener() { @Override public void handleEvent(BaseEvent be) { - gxtCardLayoutResultPanel.setSize(center.getWidth(), center.getHeight()); + updateSizeCard(); } }); @@ -191,8 +158,7 @@ public class GxtBorderLayoutPanel extends ContentPanel { @Override public void handleEvent(BaseEvent be) { - GWT.log("gxtCardLayoutResultPanel render"); - gxtCardLayoutResultPanel.getGridGroupViewContainer().refreshSize((center.getWidth()-2)+"px", (center.getHeight()-50)+"px"); + updateSizeGrid(); } }); // center.add(this.toolbarContainer); @@ -224,6 +190,15 @@ public class GxtBorderLayoutPanel extends ContentPanel { // add(south, southData); } + private void updateSizeCard(){ + gxtCardLayoutResultPanel.setSize(center.getWidth()-2, center.getHeight()); + } + + private void updateSizeGrid(){ + gxtCardLayoutResultPanel.getGridGroupViewContainer().refreshSize((center.getWidth()-2)+"px", (center.getHeight()-50)+"px"); + } + + public void updateParentId(String parentId){ dnd.setParameters(parentId, UPLOAD_TYPE.File);