From ffd949bf997cd977406eb2dccf490e22fc7a81ef Mon Sep 17 00:00:00 2001 From: Francesco Mangiacrapa Date: Tue, 29 Nov 2016 11:03:48 +0000 Subject: [PATCH] Changed behaviour for Show Bottom when clicking on URL git-svn-id: http://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/portlets/user/workspace@135029 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../user/workspace/client/AppController.java | 11 ++-- .../workspace/client/event/ShowUrlEvent.java | 54 +++++++++++++++++++ .../client/event/ShowUrlEventHandler.java | 7 +++ .../view/grids/GxtGridFilterGroupPanel.java | 4 +- .../toolbars/GxtToolBarItemFunctionality.java | 17 +++--- 5 files changed, 80 insertions(+), 13 deletions(-) create mode 100644 src/main/java/org/gcube/portlets/user/workspace/client/event/ShowUrlEvent.java create mode 100644 src/main/java/org/gcube/portlets/user/workspace/client/event/ShowUrlEventHandler.java 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 2f8081b..8b50c18 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 @@ -58,7 +58,6 @@ import org.gcube.portlets.user.workspace.client.event.OpenContextMenuTreeEventHa import org.gcube.portlets.user.workspace.client.event.OpenReportsEvent; import org.gcube.portlets.user.workspace.client.event.OpenReportsEventHandler; import org.gcube.portlets.user.workspace.client.event.OpenUrlEvent; -import org.gcube.portlets.user.workspace.client.event.OpenUrlEventHandler; import org.gcube.portlets.user.workspace.client.event.PasteItemEvent; import org.gcube.portlets.user.workspace.client.event.PasteItemEventHandler; import org.gcube.portlets.user.workspace.client.event.PathElementSelectedEvent; @@ -76,6 +75,8 @@ import org.gcube.portlets.user.workspace.client.event.SearchTextEvent; import org.gcube.portlets.user.workspace.client.event.SearchTextEventHandler; import org.gcube.portlets.user.workspace.client.event.SendMessageEvent; import org.gcube.portlets.user.workspace.client.event.SendMessageEventHandler; +import org.gcube.portlets.user.workspace.client.event.ShowUrlEvent; +import org.gcube.portlets.user.workspace.client.event.ShowUrlEventHandler; import org.gcube.portlets.user.workspace.client.event.StoreGridChangedEvent; import org.gcube.portlets.user.workspace.client.event.StoreGridChangedEventHandler; import org.gcube.portlets.user.workspace.client.event.TrashEvent; @@ -209,10 +210,12 @@ public class AppController implements SubscriberInterface { */ private void bind() { //double click on URLs - eventBus.addHandler(OpenUrlEvent.TYPE, new OpenUrlEventHandler() { + eventBus.addHandler(ShowUrlEvent.TYPE, new ShowUrlEventHandler() { @Override - public void onClickUrl(OpenUrlEvent openUrlEvent) { - AppControllerExplorer.getInstance().doClickUrl(openUrlEvent); + public void onClickUrl(ShowUrlEvent openUrlEvent) { + if(openUrlEvent.getSourceFileModel()!=null) + + AppControllerExplorer.getInstance().doClickUrl(new OpenUrlEvent(openUrlEvent.getSourceFileModel())); } }); diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/event/ShowUrlEvent.java b/src/main/java/org/gcube/portlets/user/workspace/client/event/ShowUrlEvent.java new file mode 100644 index 0000000..6de6199 --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/workspace/client/event/ShowUrlEvent.java @@ -0,0 +1,54 @@ +package org.gcube.portlets.user.workspace.client.event; + +import org.gcube.portlets.user.workspace.client.model.FileModel; + +import com.google.gwt.event.shared.GwtEvent; + + +/** + * The Class ShowUrlEvent. + * + * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it + * Nov 29, 2016 + */ +public class ShowUrlEvent extends GwtEvent { + public static Type TYPE = new Type(); + + private FileModel sourceFileModel = null; //Url page + + /** + * Instantiates a new show url event. + * + * @param fileSourceModel the file source model + */ + public ShowUrlEvent(FileModel fileSourceModel) { + this.sourceFileModel = fileSourceModel; + } + + /* (non-Javadoc) + * @see com.google.gwt.event.shared.GwtEvent#getAssociatedType() + */ + @Override + public Type getAssociatedType() { + // TODO Auto-generated method stub + return TYPE; + } + + /* (non-Javadoc) + * @see com.google.gwt.event.shared.GwtEvent#dispatch(com.google.gwt.event.shared.EventHandler) + */ + @Override + protected void dispatch(ShowUrlEventHandler handler) { + handler.onClickUrl(this); + + } + + /** + * Gets the source file model. + * + * @return the source file model + */ + public FileModel getSourceFileModel() { + return sourceFileModel; + } +} diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/event/ShowUrlEventHandler.java b/src/main/java/org/gcube/portlets/user/workspace/client/event/ShowUrlEventHandler.java new file mode 100644 index 0000000..4369ea6 --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/workspace/client/event/ShowUrlEventHandler.java @@ -0,0 +1,7 @@ +package org.gcube.portlets.user.workspace.client.event; + +import com.google.gwt.event.shared.EventHandler; + +public interface ShowUrlEventHandler extends EventHandler { + void onClickUrl(ShowUrlEvent openUrlEvent); +} \ No newline at end of file diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/view/grids/GxtGridFilterGroupPanel.java b/src/main/java/org/gcube/portlets/user/workspace/client/view/grids/GxtGridFilterGroupPanel.java index b1c53d2..17826c1 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/client/view/grids/GxtGridFilterGroupPanel.java +++ b/src/main/java/org/gcube/portlets/user/workspace/client/view/grids/GxtGridFilterGroupPanel.java @@ -14,7 +14,7 @@ import org.gcube.portlets.user.workspace.client.event.GridElementUnSelectedEvent import org.gcube.portlets.user.workspace.client.event.ImagePreviewEvent; import org.gcube.portlets.user.workspace.client.event.OpenContextMenuTreeEvent; import org.gcube.portlets.user.workspace.client.event.OpenReportsEvent; -import org.gcube.portlets.user.workspace.client.event.OpenUrlEvent; +import org.gcube.portlets.user.workspace.client.event.ShowUrlEvent; import org.gcube.portlets.user.workspace.client.event.StoreGridChangedEvent; import org.gcube.portlets.user.workspace.client.model.FileGridModel; import org.gcube.portlets.user.workspace.client.model.FileModel; @@ -313,7 +313,7 @@ public class GxtGridFilterGroupPanel extends LayoutContainer { AppController.getEventBus().fireEvent(new FileDownloadEvent(target.getIdentifier(), target.getName(), DownloadType.SHOW, target.isDirectory() || target.isVreFolder())); break; case EXTERNAL_URL: - AppController.getEventBus().fireEvent(new OpenUrlEvent(target)); + AppController.getEventBus().fireEvent(new ShowUrlEvent(target)); break; case REPORT_TEMPLATE: case REPORT: 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 cc5eb04..f24e3a0 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 @@ -13,16 +13,16 @@ import org.gcube.portlets.user.workspace.client.event.DoubleClickElementSelected import org.gcube.portlets.user.workspace.client.event.FileDownloadEvent; import org.gcube.portlets.user.workspace.client.event.FileDownloadEvent.DownloadType; import org.gcube.portlets.user.workspace.client.event.FileUploadEvent; -import org.gcube.portlets.user.workspace.client.event.WsGetFolderLinkEvent; import org.gcube.portlets.user.workspace.client.event.GetPublicLinkEvent; import org.gcube.portlets.user.workspace.client.event.GetShareLinkEvent; import org.gcube.portlets.user.workspace.client.event.GridRefreshEvent; import org.gcube.portlets.user.workspace.client.event.ImagePreviewEvent; -import org.gcube.portlets.user.workspace.client.event.OpenReportsEvent; +import org.gcube.portlets.user.workspace.client.event.ShowUrlEvent; import org.gcube.portlets.user.workspace.client.event.PasteItemEvent; import org.gcube.portlets.user.workspace.client.event.RenameItemEvent; import org.gcube.portlets.user.workspace.client.event.VREChangePermissionsEvent; import org.gcube.portlets.user.workspace.client.event.WebDavUrlEvent; +import org.gcube.portlets.user.workspace.client.event.WsGetFolderLinkEvent; import org.gcube.portlets.user.workspace.client.interfaces.GXTFolderItemTypeEnum; import org.gcube.portlets.user.workspace.client.model.FileGridModel; import org.gcube.portlets.user.workspace.client.model.FileModel; @@ -524,7 +524,7 @@ public class GxtToolBarItemFunctionality { public void componentSelected(ButtonEvent ce) { final FileGridModel fileGridModel = gridGroupViewContainer.getSelectedItem(); - AppController.getEventBus().fireEvent(new FileDownloadEvent(fileGridModel.getIdentifier(), fileGridModel.getName(), DownloadType.DOWNLOAD, (fileGridModel.isDirectory() || fileGridModel.isVreFolder()))); + AppController.getEventBus().fireEvent(new FileDownloadEvent(fileGridModel.getIdentifier(), fileGridModel.getName(), DownloadType.DOWNLOAD, fileGridModel.isDirectory() || fileGridModel.isVreFolder())); } }); @@ -550,10 +550,13 @@ public class GxtToolBarItemFunctionality { if(fileGridModel!=null){ if(fileGridModel.isDirectory()) AppController.getEventBus().fireEvent(new DoubleClickElementSelectedEvent(fileGridModel)); - else if(fileGridModel.getGXTFolderItemType().equals(GXTFolderItemTypeEnum.REPORT) || fileGridModel.getGXTFolderItemType().equals(GXTFolderItemTypeEnum.REPORT_TEMPLATE)) - AppController.getEventBus().fireEvent(new OpenReportsEvent(fileGridModel)); - else - AppController.getEventBus().fireEvent(new FileDownloadEvent(fileGridModel.getIdentifier(), fileGridModel.getName(), DownloadType.SHOW,(fileGridModel.isDirectory() || fileGridModel.isVreFolder()))); +// else if(fileGridModel.getGXTFolderItemType().equals(GXTFolderItemTypeEnum.REPORT) || fileGridModel.getGXTFolderItemType().equals(GXTFolderItemTypeEnum.REPORT_TEMPLATE)) +// AppController.getEventBus().fireEvent(new OpenReportsEvent(fileGridModel)); + else if(fileGridModel.getGXTFolderItemType().equals(GXTFolderItemTypeEnum.EXTERNAL_URL)){ + AppController.getEventBus().fireEvent(new ShowUrlEvent(fileGridModel)); + + }else + AppController.getEventBus().fireEvent(new FileDownloadEvent(fileGridModel.getIdentifier(), fileGridModel.getName(), DownloadType.SHOW,fileGridModel.isDirectory() || fileGridModel.isVreFolder())); } }