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())