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
This commit is contained in:
Francesco Mangiacrapa 2015-10-23 14:01:23 +00:00
parent 42789bb5e7
commit e281016eab
3 changed files with 70 additions and 44 deletions

View File

@ -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.AddFolderEvent;
import org.gcube.portlets.user.workspace.client.event.AddFolderEventHandler; 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.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.DeleteItemEvent;
import org.gcube.portlets.user.workspace.client.event.DeleteItemEventHandler; import org.gcube.portlets.user.workspace.client.event.DeleteItemEventHandler;
import org.gcube.portlets.user.workspace.client.event.DeleteMessageEvent; 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.WorkspaceTrashOperation;
import org.gcube.portlets.user.workspace.shared.WorkspaceUserQuote; import org.gcube.portlets.user.workspace.shared.WorkspaceUserQuote;
import org.gcube.portlets.widgets.sessionchecker.client.CheckSession; 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 org.gcube.portlets.widgets.wsmail.client.forms.MailForm;
import com.extjs.gxt.ui.client.widget.LayoutContainer; 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); 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 eventBus.fireEvent(new LoadAllScopeEvent()); //LOAD ALL SCOPE EVENT
} }

View File

@ -1,5 +1,6 @@
package org.gcube.portlets.user.workspace.client.view; 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.grids.GxtGridFilterGroupPanel;
import org.gcube.portlets.user.workspace.client.view.panels.GxtBasicTabPanel; import org.gcube.portlets.user.workspace.client.view.panels.GxtBasicTabPanel;
import org.gcube.portlets.user.workspace.client.view.panels.GxtBorderLayoutPanel; 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.panels.GxtSeachAndFilterPanel;
import org.gcube.portlets.user.workspace.client.view.toolbars.GxtBottomToolBarItem; import org.gcube.portlets.user.workspace.client.view.toolbars.GxtBottomToolBarItem;
import org.gcube.portlets.user.workspace.client.view.toolbars.GxtBreadcrumbPathPanel; 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;
/** /**
@ -25,6 +30,7 @@ public class WorskpacePortlet {
private GxtGridFilterGroupPanel gridFilterGroupContainer; private GxtGridFilterGroupPanel gridFilterGroupContainer;
private GxtSeachAndFilterPanel searchAndFilterContainer; private GxtSeachAndFilterPanel searchAndFilterContainer;
private GxtCardLayoutResultPanel gxtCardLayoutResultPanel; private GxtCardLayoutResultPanel gxtCardLayoutResultPanel;
private DNDFileReader dnd;
public WorskpacePortlet(boolean activeGroup) { public WorskpacePortlet(boolean activeGroup) {
@ -42,8 +48,8 @@ public class WorskpacePortlet {
public WorskpacePortlet(ExplorerPanel expPanel, boolean activeGroup) { public WorskpacePortlet(ExplorerPanel expPanel, boolean activeGroup) {
this(activeGroup); this(activeGroup);
this.explorerPanel = expPanel; this.explorerPanel = expPanel;
this.dnd = new DNDFileReader();
this.borderLayoutContainer = new GxtBorderLayoutPanel(this.searchAndFilterContainer, this.explorerPanel, this.gxtCardLayoutResultPanel, this.toolBarItemDetails); this.borderLayoutContainer = new GxtBorderLayoutPanel(this.searchAndFilterContainer, this.explorerPanel, this.gxtCardLayoutResultPanel, this.toolBarItemDetails, this.dnd);
} }
public GxtBorderLayoutPanel getBorderLayoutContainer() { public GxtBorderLayoutPanel getBorderLayoutContainer() {
@ -58,6 +64,11 @@ public class WorskpacePortlet {
return searchAndFilterContainer; return searchAndFilterContainer;
} }
/**
* Gets the tool bar path.
*
* @return the tool bar path
*/
public GxtBreadcrumbPathPanel getToolBarPath() { public GxtBreadcrumbPathPanel getToolBarPath() {
return toolBarPathPanel; return toolBarPathPanel;
} }
@ -77,4 +88,11 @@ public class WorskpacePortlet {
public GxtBottomToolBarItem getToolBarItemDetails() { public GxtBottomToolBarItem getToolBarItemDetails() {
return toolBarItemDetails; return toolBarItemDetails;
} }
/**
* @return the dnd
*/
public DNDFileReader getDND() {
return dnd;
}
} }

View File

@ -36,53 +36,23 @@ public class GxtBorderLayoutPanel extends ContentPanel {
private ExplorerPanel expPanel = null; //TODO change position private ExplorerPanel expPanel = null; //TODO change position
private GxtSeachAndFilterPanel searchAndFilterContainer; private GxtSeachAndFilterPanel searchAndFilterContainer;
private GxtCardLayoutResultPanel gxtCardLayoutResultPanel; private GxtCardLayoutResultPanel gxtCardLayoutResultPanel;
private DNDFileReader dnd;
private DNDFileReader dnd = new DNDFileReader();
public GxtBorderLayoutPanel( public GxtBorderLayoutPanel(
GxtSeachAndFilterPanel searchAndFilterContainer2, GxtSeachAndFilterPanel searchAndFilterContainer2,
ExplorerPanel explorerPanel, ExplorerPanel explorerPanel,
GxtCardLayoutResultPanel gxtCardLayoutResultPanel, GxtCardLayoutResultPanel gxtCardLayoutResultPanel,
GxtBottomToolBarItem detailsContainer2) { GxtBottomToolBarItem detailsContainer2, DNDFileReader dnd) {
this.searchAndFilterContainer = searchAndFilterContainer2; this.searchAndFilterContainer = searchAndFilterContainer2;
this.expPanel = explorerPanel; this.expPanel = explorerPanel;
this.gxtCardLayoutResultPanel = gxtCardLayoutResultPanel; this.gxtCardLayoutResultPanel = gxtCardLayoutResultPanel;
this.toolBarItemDetails = detailsContainer2; this.toolBarItemDetails = detailsContainer2;
this.dnd = dnd;
this.initLayout(); this.initLayout();
this.createLayouts(); 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(){ private void initLayout(){
@ -170,20 +140,17 @@ public class GxtBorderLayoutPanel extends ContentPanel {
@Override @Override
public void handleEvent(BoxComponentEvent be) { public void handleEvent(BoxComponentEvent be) {
toolBarItemDetails.refreshSize(); toolBarItemDetails.refreshSize();
gxtCardLayoutResultPanel.setSize(center.getWidth()-2, center.getHeight()); updateSizeCard();
// GWT.log("gxtCardLayoutResultPanel new width "+newHeight); updateSizeGrid();
gxtCardLayoutResultPanel.getGridGroupViewContainer().refreshSize((center.getWidth()-2)+"px", (center.getHeight()-50)+"px");
} }
}); });
gxtCardLayoutResultPanel.addListener(Events.Render, new Listener<BaseEvent>() { gxtCardLayoutResultPanel.addListener(Events.Render, new Listener<BaseEvent>() {
@Override @Override
public void handleEvent(BaseEvent be) { public void handleEvent(BaseEvent be) {
gxtCardLayoutResultPanel.setSize(center.getWidth(), center.getHeight()); updateSizeCard();
} }
}); });
@ -191,8 +158,7 @@ public class GxtBorderLayoutPanel extends ContentPanel {
@Override @Override
public void handleEvent(BaseEvent be) { public void handleEvent(BaseEvent be) {
GWT.log("gxtCardLayoutResultPanel render"); updateSizeGrid();
gxtCardLayoutResultPanel.getGridGroupViewContainer().refreshSize((center.getWidth()-2)+"px", (center.getHeight()-50)+"px");
} }
}); });
// center.add(this.toolbarContainer); // center.add(this.toolbarContainer);
@ -224,6 +190,15 @@ public class GxtBorderLayoutPanel extends ContentPanel {
// add(south, southData); // 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){ public void updateParentId(String parentId){
dnd.setParameters(parentId, UPLOAD_TYPE.File); dnd.setParameters(parentId, UPLOAD_TYPE.File);