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.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
}

View File

@ -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;
}
}

View File

@ -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<BaseEvent>() {
@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);