From 012b1200357d9d49bae8f52227e65748b2ffb803 Mon Sep 17 00:00:00 2001 From: Francesco Mangiacrapa Date: Thu, 12 Sep 2013 12:53:00 +0000 Subject: [PATCH] enhancement on copy/paste git-svn-id: http://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/portlets/user/workspace@81304 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../user/workspace/client/AppController.java | 41 +++++++++++++++---- .../toolbars/GxtToolBarItemFunctionality.java | 18 ++++---- 2 files changed, 44 insertions(+), 15 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 f29b6f7..08108a8 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 @@ -56,7 +56,6 @@ import org.gcube.portlets.user.workspace.client.event.PathElementSelectedEvent; import org.gcube.portlets.user.workspace.client.event.PathElementSelectedEventHandler; import org.gcube.portlets.user.workspace.client.event.PreviewMessageEvent; import org.gcube.portlets.user.workspace.client.event.PreviewMessageEventHandler; -import org.gcube.portlets.user.workspace.client.event.RefreshFolderEvent; import org.gcube.portlets.user.workspace.client.event.RenameItemEvent; import org.gcube.portlets.user.workspace.client.event.RenameItemEventHandler; import org.gcube.portlets.user.workspace.client.event.SaveAttachmentsEvent; @@ -138,7 +137,8 @@ public class AppController implements SubscriberInterface { EventsTypeEnum.REPLY_FORWARD_MESSAGE, EventsTypeEnum.FILE_DOWNLAD_EVENT, EventsTypeEnum.SESSION_EXPIRED, - EventsTypeEnum.PASTED_EVENT + EventsTypeEnum.PASTED_EVENT, + EventsTypeEnum.COPY_EVENT }); bind(); } @@ -173,7 +173,21 @@ public class AppController implements SubscriberInterface { @Override public void onCopyAndPaste(PasteItemEvent pasteItemEvent) { - AppControllerExplorer.getEventBus().fireEvent(new PasteItemEvent(pasteItemEvent.getItemId(), pasteItemEvent.getFolderDestinationId())); + + String folderDestinationId = null; + if(pasteItemEvent.getFolderDestinationId()!=null){ //IF FOLDER DESTINATION EXISTS + folderDestinationId = pasteItemEvent.getFolderDestinationId(); + }else{ + FileModel file = wsPortlet.getToolBarPath().getLastParent(); + + if(file.getIdentifier()!=null){ //GET LAST PARENT FROM BREADRUMB + folderDestinationId = file.getIdentifier(); + } + + } + + if(folderDestinationId!=null) + AppControllerExplorer.getEventBus().fireEvent(new PasteItemEvent(pasteItemEvent.getItemId(), folderDestinationId)); } }); @@ -1257,12 +1271,15 @@ public class AppController implements SubscriberInterface { @Override public void refreshFolder(FileModel folderTarget) { - //REFRESH FOLDER ONLY IF IS DISPLAYED YOUR CHILDREN - FileGridModel file = wsPortlet.getGridGroupContainer().getFileGridModelByIdentifier(folderTarget.getIdentifier()); + if(folderTarget!=null){ - if(file==null) - updateStoreByRpc(folderTarget); + //REFRESH FOLDER ONLY IF IS DISPLAYED YOUR CHILDREN + FileGridModel folder = wsPortlet.getGridGroupContainer().getFileGridModelByIdentifier(folderTarget.getIdentifier()); + + GWT.log("refresh folder :" +folder); + updateStoreByRpc(folderTarget); + } } // @Override @@ -1347,4 +1364,14 @@ public class AppController implements SubscriberInterface { } + + /* (non-Javadoc) + * @see org.gcube.portlets.user.workspace.client.interfaces.SubscriberInterface#copyEventIsCompleted() + */ + @Override + public void copyEventIsCompleted() { + wsPortlet.getGxtCardLayoutResultPanel().getToolBarItemFunctionalities().activePasteButton(true); + + } + } diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/view/toolbars/GxtToolBarItemFunctionality.java b/src/main/java/org/gcube/portlets/user/workspace/client/view/toolbars/GxtToolBarItemFunctionality.java index 894b2ea..8a581f6 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/client/view/toolbars/GxtToolBarItemFunctionality.java +++ b/src/main/java/org/gcube/portlets/user/workspace/client/view/toolbars/GxtToolBarItemFunctionality.java @@ -309,15 +309,17 @@ public class GxtToolBarItemFunctionality { public void componentSelected(ButtonEvent ce) { final FileGridModel fileGridModel = gridGroupViewContainer.getSelectedItem(); - FileModel parentTarget = getDirectoryOrParent(fileGridModel); - if(parentTarget!=null){ + + String parentId = null; + + if(parentTarget!=null) + parentId=parentTarget.getIdentifier(); + + AppController.getEventBus().fireEvent(new PasteItemEvent(CopyAndPaste.getCopiedfileModelId(), parentId)); + CopyAndPaste.setCopiedfileModelId(null); + btnPasteItem.setEnabled(false); - AppController.getEventBus().fireEvent(new PasteItemEvent(CopyAndPaste.getCopiedfileModelId(), parentTarget.getIdentifier())); - CopyAndPaste.setCopiedfileModelId(null); - btnPasteItem.setEnabled(false); - - } } }); @@ -510,7 +512,7 @@ public class GxtToolBarItemFunctionality { * @param fileModel * @return */ - private FileModel getDirectoryOrParent(FileModel fileModel){ + private FileModel getDirectoryOrParent(FileGridModel fileModel){ if(fileModel!=null){ if(fileModel.isDirectory())