From 79e0df3def50ec17a426f3e0372ccf54b311f360 Mon Sep 17 00:00:00 2001 From: Giancarlo Panichi Date: Fri, 14 Jul 2017 16:42:08 +0000 Subject: [PATCH] ref 9114: DataMiner - Add pagination to Workspace Explorer https://support.d4science.org/issues/9114 Added pagination to Workspace Explorer git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/data-miner-manager@151097 82a268e6-3cf1-43bd-a215-b396298e98cf --- .classpath | 6 +- distro/changelog.xml | 4 + pom.xml | 2 +- .../ComputationsExecutedPanel.java | 25 ++- .../client/dataspace/InputDataSetsPanel.java | 172 ++++++++---------- .../client/dataspace/OutputDataSetsPanel.java | 18 +- .../dataminermanager/dataminermanager.gwt.xml | 11 +- .../dataminermanager/dataminermanager.gwt.xml | 7 +- 8 files changed, 119 insertions(+), 126 deletions(-) diff --git a/.classpath b/.classpath index fbe419f..46fd279 100644 --- a/.classpath +++ b/.classpath @@ -1,12 +1,12 @@ - + - + @@ -34,5 +34,5 @@ - + diff --git a/distro/changelog.xml b/distro/changelog.xml index c130050..b003251 100644 --- a/distro/changelog.xml +++ b/distro/changelog.xml @@ -1,4 +1,8 @@ + + Updated to support pagination in Workspace Explorer [ticket #9114] + Support Java 8 compatibility [ticket #8471] diff --git a/pom.xml b/pom.xml index 881e8bb..9aae97d 100644 --- a/pom.xml +++ b/pom.xml @@ -12,7 +12,7 @@ org.gcube.portlets.user data-miner-manager - 1.5.0-SNAPSHOT + 1.6.0-SNAPSHOT war data-miner-manager diff --git a/src/main/java/org/gcube/portlets/user/dataminermanager/client/computations/ComputationsExecutedPanel.java b/src/main/java/org/gcube/portlets/user/dataminermanager/client/computations/ComputationsExecutedPanel.java index 3f54d5e..74d6f38 100644 --- a/src/main/java/org/gcube/portlets/user/dataminermanager/client/computations/ComputationsExecutedPanel.java +++ b/src/main/java/org/gcube/portlets/user/dataminermanager/client/computations/ComputationsExecutedPanel.java @@ -25,7 +25,7 @@ import org.gcube.portlets.user.dataminermanager.shared.workspace.ItemDescription import org.gcube.portlets.widgets.workspaceuploader.client.WorkspaceUploadNotification.WorskpaceUploadNotificationListener; import org.gcube.portlets.widgets.workspaceuploader.client.uploader.DialogUpload.UPLOAD_TYPE; import org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload; -import org.gcube.portlets.widgets.wsexplorer.client.explore.WorkspaceResourcesExplorerPanel; +import org.gcube.portlets.widgets.wsexplorer.client.explore.WorkspaceResourcesExplorerPanelPaginated; import org.gcube.portlets.widgets.wsexplorer.client.notification.WorkspaceExplorerSelectNotification.WorskpaceExplorerSelectNotificationListener; import org.gcube.portlets.widgets.wsexplorer.client.view.grid.ItemsTable.DISPLAY_FIELD; import org.gcube.portlets.widgets.wsexplorer.shared.FilterCriteria; @@ -59,7 +59,8 @@ public class ComputationsExecutedPanel extends FramedPanel { private Item selectedItem; private MultipleDNDUpload dnd; - private WorkspaceResourcesExplorerPanel wsResourcesExplorerPanel; + //private WorkspaceResourcesExplorerPanel ; + private WorkspaceResourcesExplorerPanelPaginated wsResourcesExplorerPanel; private TextButton btnShow; private TextButton btnDownload; private TextButton btnDelete; @@ -233,10 +234,15 @@ public class ComputationsExecutedPanel extends FramedPanel { Map map = new HashMap(); filterCriteria.setRequiredProperties(map); - wsResourcesExplorerPanel = new WorkspaceResourcesExplorerPanel( + /*wsResourcesExplorerPanel = new WorkspaceResourcesExplorerPanel( event.getDataMinerWorkArea().getComputations().getFolder() .getId(), false, showProperties, filterCriteria, - true, DISPLAY_FIELD.CREATION_DATE); + true, DISPLAY_FIELD.CREATION_DATE);*/ + + wsResourcesExplorerPanel=new WorkspaceResourcesExplorerPanelPaginated(event.getDataMinerWorkArea().getComputations().getFolder() + .getId(), false, showProperties, filterCriteria, + true, DISPLAY_FIELD.CREATION_DATE); + WorskpaceExplorerSelectNotificationListener wsResourceExplorerListener = new WorskpaceExplorerSelectNotificationListener() { @Override public void onSelectedItem(Item item) { @@ -430,15 +436,20 @@ public class ComputationsExecutedPanel extends FramedPanel { }); forceLayout(); - } catch (Exception e) { - Log.error("Error opening wsResourceExplorerPanel"); + } catch (Throwable e) { + Log.error("Error opening wsResourceExplorerPanel: "+e.getLocalizedMessage(),e); e.printStackTrace(); } } private void refreshWSResourceExplorerPanel() { if (wsResourcesExplorerPanel != null) { - wsResourcesExplorerPanel.refreshRootFolderView(); + try { + wsResourcesExplorerPanel.hardRefresh(); + } catch (Exception e) { + Log.error("Error retrieving data: "+e.getLocalizedMessage()); + + } } } diff --git a/src/main/java/org/gcube/portlets/user/dataminermanager/client/dataspace/InputDataSetsPanel.java b/src/main/java/org/gcube/portlets/user/dataminermanager/client/dataspace/InputDataSetsPanel.java index 4b67c20..56d97c1 100644 --- a/src/main/java/org/gcube/portlets/user/dataminermanager/client/dataspace/InputDataSetsPanel.java +++ b/src/main/java/org/gcube/portlets/user/dataminermanager/client/dataspace/InputDataSetsPanel.java @@ -22,7 +22,7 @@ import org.gcube.portlets.user.dataminermanager.shared.workspace.ItemDescription import org.gcube.portlets.widgets.workspaceuploader.client.WorkspaceUploadNotification.WorskpaceUploadNotificationListener; import org.gcube.portlets.widgets.workspaceuploader.client.uploader.DialogUpload.UPLOAD_TYPE; import org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload; -import org.gcube.portlets.widgets.wsexplorer.client.explore.WorkspaceResourcesExplorerPanel; +import org.gcube.portlets.widgets.wsexplorer.client.explore.WorkspaceResourcesExplorerPanelPaginated; import org.gcube.portlets.widgets.wsexplorer.client.notification.WorkspaceExplorerSelectNotification.WorskpaceExplorerSelectNotificationListener; import org.gcube.portlets.widgets.wsexplorer.client.view.grid.ItemsTable.DISPLAY_FIELD; import org.gcube.portlets.widgets.wsexplorer.shared.FilterCriteria; @@ -56,7 +56,7 @@ public class InputDataSetsPanel extends FramedPanel { private Item selectedItem; private MultipleDNDUpload dnd; - private WorkspaceResourcesExplorerPanel wsResourcesExplorerPanel; + private WorkspaceResourcesExplorerPanelPaginated wsResourcesExplorerPanel; private TextButton btnDownload; private TextButton btnDelete; private TextButton btnRefresh; @@ -87,15 +87,14 @@ public class InputDataSetsPanel extends FramedPanel { private void bindToEvents() { - EventBusProvider.INSTANCE.addHandler(UIStateEvent.TYPE, - new UIStateEvent.UIStateEventHandler() { + EventBusProvider.INSTANCE.addHandler(UIStateEvent.TYPE, new UIStateEvent.UIStateEventHandler() { - @Override - public void onChange(UIStateEvent event) { - manageStateEvents(event); + @Override + public void onChange(UIStateEvent event) { + manageStateEvents(event); - } - }); + } + }); EventBusProvider.INSTANCE.addHandler(DataMinerWorkAreaEvent.TYPE, new DataMinerWorkAreaEvent.DataMinerWorkAreaEventHandler() { @@ -108,19 +107,16 @@ public class InputDataSetsPanel extends FramedPanel { }); - EventBusProvider.INSTANCE - .addHandler( - RefreshDataMinerWorkAreaEvent.TYPE, - new RefreshDataMinerWorkAreaEvent.RefreshDataMinerWorkAreaEventHandler() { + EventBusProvider.INSTANCE.addHandler(RefreshDataMinerWorkAreaEvent.TYPE, + new RefreshDataMinerWorkAreaEvent.RefreshDataMinerWorkAreaEventHandler() { - @Override - public void onRefresh( - RefreshDataMinerWorkAreaEvent event) { - manageRefreshDataMinerWorkAreaEvents(event); + @Override + public void onRefresh(RefreshDataMinerWorkAreaEvent event) { + manageRefreshDataMinerWorkAreaEvents(event); - } + } - }); + }); } @@ -143,8 +139,7 @@ public class InputDataSetsPanel extends FramedPanel { } private void manageDataMinerWorkAreaEvents(DataMinerWorkAreaEvent event) { - Log.debug("InputDataSetsPanel recieved DataMinerWorkAreaEvent: " - + event); + Log.debug("InputDataSetsPanel recieved DataMinerWorkAreaEvent: " + event); if (event == null) { Log.error("DataMinerWorkAreaEvent"); return; @@ -173,10 +168,8 @@ public class InputDataSetsPanel extends FramedPanel { } - private void manageRefreshDataMinerWorkAreaEvents( - RefreshDataMinerWorkAreaEvent event) { - Log.debug("InputDataSetsPanel recieved RefreshDataMinerWorkAreaEvent: " - + event); + private void manageRefreshDataMinerWorkAreaEvents(RefreshDataMinerWorkAreaEvent event) { + Log.debug("InputDataSetsPanel recieved RefreshDataMinerWorkAreaEvent: " + event); if (event == null) { Log.error("RefreshDataMinerWorkAreaEvent"); return; @@ -199,15 +192,11 @@ public class InputDataSetsPanel extends FramedPanel { private void create(DataMinerWorkAreaEvent event) { try { - if (event == null - || event.getDataMinerWorkArea() == null + if (event == null || event.getDataMinerWorkArea() == null || event.getDataMinerWorkArea().getInputDataSets() == null - || event.getDataMinerWorkArea().getInputDataSets() - .getFolder() == null - || event.getDataMinerWorkArea().getInputDataSets() - .getFolder().getId() == null - || event.getDataMinerWorkArea().getInputDataSets() - .getFolder().getId().isEmpty()) { + || event.getDataMinerWorkArea().getInputDataSets().getFolder() == null + || event.getDataMinerWorkArea().getInputDataSets().getFolder().getId() == null + || event.getDataMinerWorkArea().getInputDataSets().getFolder().getId().isEmpty()) { if (v != null) { remove(v); forceLayout(); @@ -217,18 +206,16 @@ public class InputDataSetsPanel extends FramedPanel { } List showProperties = new ArrayList(); - for (DataSpacePropertiesType dataSpaceProperties : DataSpacePropertiesType - .values()) { + for (DataSpacePropertiesType dataSpaceProperties : DataSpacePropertiesType.values()) { showProperties.add(dataSpaceProperties.getLabel()); } FilterCriteria filterCriteria = new FilterCriteria(); Map map = new HashMap(); filterCriteria.setRequiredProperties(map); - wsResourcesExplorerPanel = new WorkspaceResourcesExplorerPanel( - event.getDataMinerWorkArea().getInputDataSets().getFolder() - .getId(), false, showProperties, filterCriteria, - true, DISPLAY_FIELD.CREATION_DATE); + wsResourcesExplorerPanel = new WorkspaceResourcesExplorerPanelPaginated( + event.getDataMinerWorkArea().getInputDataSets().getFolder().getId(), false, showProperties, + filterCriteria, true, DISPLAY_FIELD.CREATION_DATE); WorskpaceExplorerSelectNotificationListener wsResourceExplorerListener = new WorskpaceExplorerSelectNotificationListener() { @Override public void onSelectedItem(Item item) { @@ -254,23 +241,20 @@ public class InputDataSetsPanel extends FramedPanel { } }; - wsResourcesExplorerPanel - .addWorkspaceExplorerSelectNotificationListener(wsResourceExplorerListener); + wsResourcesExplorerPanel.addWorkspaceExplorerSelectNotificationListener(wsResourceExplorerListener); wsResourcesExplorerPanel.ensureDebugId("wsResourceExplorerPanel"); wsResourcesExplorerPanel.setHeightToInternalScroll(300); // DND dnd = new MultipleDNDUpload(); - dnd.setParameters(event.getDataMinerWorkArea().getInputDataSets() - .getFolder().getId(), UPLOAD_TYPE.File); + dnd.setParameters(event.getDataMinerWorkArea().getInputDataSets().getFolder().getId(), UPLOAD_TYPE.File); dnd.addUniqueContainer(wsResourcesExplorerPanel); WorskpaceUploadNotificationListener workspaceUploaderListener = new WorskpaceUploadNotificationListener() { @Override public void onUploadCompleted(String parentId, String itemId) { - Log.debug("Upload completed: [parentID: " + parentId - + ", itemId: " + itemId + "]"); + Log.debug("Upload completed: [parentID: " + parentId + ", itemId: " + itemId + "]"); wsResourcesExplorerPanel.refreshRootFolderView(); forceLayout(); @@ -278,22 +262,18 @@ public class InputDataSetsPanel extends FramedPanel { @Override public void onUploadAborted(String parentId, String itemId) { - Log.debug("Upload Aborted: [parentID: " + parentId - + ", itemId: " + itemId + "]"); + Log.debug("Upload Aborted: [parentID: " + parentId + ", itemId: " + itemId + "]"); } @Override - public void onError(String parentId, String itemId, - Throwable throwable) { - Log.debug("Upload Error: [parentID: " + parentId - + ", itemId: " + itemId + "]"); + public void onError(String parentId, String itemId, Throwable throwable) { + Log.debug("Upload Error: [parentID: " + parentId + ", itemId: " + itemId + "]"); throwable.printStackTrace(); } @Override public void onOverwriteCompleted(String parentId, String itemId) { - Log.debug("Upload Override Completed: [parentID: " - + parentId + ", itemId: " + itemId + "]"); + Log.debug("Upload Override Completed: [parentID: " + parentId + ", itemId: " + itemId + "]"); wsResourcesExplorerPanel.refreshRootFolderView(); forceLayout(); } @@ -360,26 +340,30 @@ public class InputDataSetsPanel extends FramedPanel { @Override public void onResize(ResizeEvent event) { - int scrollBarHeight = event.getHeight() - - toolBar.getElement().getHeight(false); + int scrollBarHeight = event.getHeight() - toolBar.getElement().getHeight(false); Log.debug("ScrollBarHeight: " + scrollBarHeight); - wsResourcesExplorerPanel - .setHeightToInternalScroll(scrollBarHeight); + wsResourcesExplorerPanel.setHeightToInternalScroll(scrollBarHeight); forceLayout(); } }); forceLayout(); - } catch (Exception e) { - Log.error("Error opening wsResourceExplorerPanel"); + } catch (Throwable e) { + Log.error("Error opening wsResourceExplorerPanel: "+e.getLocalizedMessage(),e); e.printStackTrace(); } } private void refreshWSResourceExplorerPanel() { if (wsResourcesExplorerPanel != null) { - wsResourcesExplorerPanel.refreshRootFolderView(); + // wsResourcesExplorerPanel.refreshRootFolderView(); + try { + wsResourcesExplorerPanel.hardRefresh(); + } catch (Exception e) { + Log.error("Error retrieving data: " + e.getLocalizedMessage()); + + } } } @@ -400,12 +384,10 @@ public class InputDataSetsPanel extends FramedPanel { } private void deleteItem(SelectEvent event) { - ItemDescription itemDescription = new ItemDescription( - selectedItem.getId(), selectedItem.getName(), - selectedItem.getOwner(), selectedItem.getPath(), selectedItem - .getType().name()); - DeleteItemRequestEvent deleteItemEvent = new DeleteItemRequestEvent( - DataMinerWorkAreaElementType.InputDataSets, itemDescription); + ItemDescription itemDescription = new ItemDescription(selectedItem.getId(), selectedItem.getName(), + selectedItem.getOwner(), selectedItem.getPath(), selectedItem.getType().name()); + DeleteItemRequestEvent deleteItemEvent = new DeleteItemRequestEvent(DataMinerWorkAreaElementType.InputDataSets, + itemDescription); EventBusProvider.INSTANCE.fireEvent(deleteItemEvent); Log.debug("Fired: " + deleteItemEvent); } @@ -415,52 +397,40 @@ public class InputDataSetsPanel extends FramedPanel { if (selectedItem.isFolder()) { StringBuilder actionUrl = new StringBuilder(); actionUrl.append(GWT.getModuleBaseURL()); - actionUrl - .append(Constants.DOWNLOAD_FOLDER_SERVLET - + "?" - + Constants.DOWNLOAD_FOLDER_SERVLET_ITEM_ID_PARAMETER - + "=" - + selectedItem.getId() - + "&" - + Constants.DOWNLOAD_FOLDER_SERVLET_FOLDER_NAME_PARAMETER - + "=" + selectedItem.getName() + "&" - + Constants.CURR_GROUP_ID + "=" - + GCubeClientContext.getCurrentContextId()); + actionUrl.append(Constants.DOWNLOAD_FOLDER_SERVLET + "?" + + Constants.DOWNLOAD_FOLDER_SERVLET_ITEM_ID_PARAMETER + "=" + selectedItem.getId() + "&" + + Constants.DOWNLOAD_FOLDER_SERVLET_FOLDER_NAME_PARAMETER + "=" + selectedItem.getName() + "&" + + Constants.CURR_GROUP_ID + "=" + GCubeClientContext.getCurrentContextId()); Log.debug("Retrieved link: " + actionUrl); Window.open(actionUrl.toString(), selectedItem.getName(), ""); } else { - final ItemDescription itemDescription = new ItemDescription( - selectedItem.getId(), selectedItem.getName(), - selectedItem.getOwner(), selectedItem.getPath(), + final ItemDescription itemDescription = new ItemDescription(selectedItem.getId(), + selectedItem.getName(), selectedItem.getOwner(), selectedItem.getPath(), selectedItem.getType().name()); - DataMinerPortletServiceAsync.INSTANCE.getPublicLink( - itemDescription, new AsyncCallback() { + DataMinerPortletServiceAsync.INSTANCE.getPublicLink(itemDescription, new AsyncCallback() { - @Override - public void onFailure(Throwable caught) { - if (caught instanceof SessionExpiredServiceException) { - EventBusProvider.INSTANCE - .fireEvent(new SessionExpiredEvent()); - } else { - Log.error("Error open file: " - + caught.getLocalizedMessage()); - UtilsGXT3.alert("Error", - caught.getLocalizedMessage()); - } - caught.printStackTrace(); + @Override + public void onFailure(Throwable caught) { + if (caught instanceof SessionExpiredServiceException) { + EventBusProvider.INSTANCE.fireEvent(new SessionExpiredEvent()); + } else { + Log.error("Error open file: " + caught.getLocalizedMessage()); + UtilsGXT3.alert("Error", caught.getLocalizedMessage()); + } + caught.printStackTrace(); - } + } - @Override - public void onSuccess(String link) { - Log.debug("Retrieved link: " + link); - Window.open(link, itemDescription.getName(), ""); - } + @Override + public void onSuccess(String link) { + Log.debug("Retrieved link: " + link); + Window.open(link, itemDescription.getName(), ""); + } - }); + }); } } else { UtilsGXT3.info("Attention", "Select a file!"); diff --git a/src/main/java/org/gcube/portlets/user/dataminermanager/client/dataspace/OutputDataSetsPanel.java b/src/main/java/org/gcube/portlets/user/dataminermanager/client/dataspace/OutputDataSetsPanel.java index 65042a4..d89c1cb 100644 --- a/src/main/java/org/gcube/portlets/user/dataminermanager/client/dataspace/OutputDataSetsPanel.java +++ b/src/main/java/org/gcube/portlets/user/dataminermanager/client/dataspace/OutputDataSetsPanel.java @@ -22,7 +22,7 @@ import org.gcube.portlets.user.dataminermanager.shared.workspace.ItemDescription import org.gcube.portlets.widgets.workspaceuploader.client.WorkspaceUploadNotification.WorskpaceUploadNotificationListener; import org.gcube.portlets.widgets.workspaceuploader.client.uploader.DialogUpload.UPLOAD_TYPE; import org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload; -import org.gcube.portlets.widgets.wsexplorer.client.explore.WorkspaceResourcesExplorerPanel; +import org.gcube.portlets.widgets.wsexplorer.client.explore.WorkspaceResourcesExplorerPanelPaginated; import org.gcube.portlets.widgets.wsexplorer.client.notification.WorkspaceExplorerSelectNotification.WorskpaceExplorerSelectNotificationListener; import org.gcube.portlets.widgets.wsexplorer.client.view.grid.ItemsTable.DISPLAY_FIELD; import org.gcube.portlets.widgets.wsexplorer.shared.FilterCriteria; @@ -56,7 +56,7 @@ public class OutputDataSetsPanel extends FramedPanel { private Item selectedItem; private MultipleDNDUpload dnd; - private WorkspaceResourcesExplorerPanel wsResourcesExplorerPanel; + private WorkspaceResourcesExplorerPanelPaginated wsResourcesExplorerPanel; private TextButton btnDownload; private TextButton btnDelete; private TextButton btnRefresh; @@ -223,7 +223,7 @@ public class OutputDataSetsPanel extends FramedPanel { Map map = new HashMap(); filterCriteria.setRequiredProperties(map); - wsResourcesExplorerPanel = new WorkspaceResourcesExplorerPanel( + wsResourcesExplorerPanel = new WorkspaceResourcesExplorerPanelPaginated( event.getDataMinerWorkArea().getOutputDataSets() .getFolder().getId(), false, showProperties, filterCriteria, true, DISPLAY_FIELD.CREATION_DATE); @@ -369,15 +369,21 @@ public class OutputDataSetsPanel extends FramedPanel { }); forceLayout(); - } catch (Exception e) { - Log.error("Error opening wsResourceExplorerPanel"); + } catch (Throwable e) { + Log.error("Error opening wsResourceExplorerPanel: "+e.getLocalizedMessage(),e); e.printStackTrace(); } } private void refreshWSResourceExplorerPanel() { if (wsResourcesExplorerPanel != null) { - wsResourcesExplorerPanel.refreshRootFolderView(); + // wsResourcesExplorerPanel.refreshRootFolderView(); + try { + wsResourcesExplorerPanel.hardRefresh(); + } catch (Exception e) { + Log.error("Error retrieving data: " + e.getLocalizedMessage()); + + } } } diff --git a/src/main/java/org/gcube/portlets/user/dataminermanager/dataminermanager.gwt.xml b/src/main/java/org/gcube/portlets/user/dataminermanager/dataminermanager.gwt.xml index cd72d3a..7b0f0ff 100644 --- a/src/main/java/org/gcube/portlets/user/dataminermanager/dataminermanager.gwt.xml +++ b/src/main/java/org/gcube/portlets/user/dataminermanager/dataminermanager.gwt.xml @@ -28,19 +28,20 @@ - + - - + /> --> + - + diff --git a/src/main/resources/org/gcube/portlets/user/dataminermanager/dataminermanager.gwt.xml b/src/main/resources/org/gcube/portlets/user/dataminermanager/dataminermanager.gwt.xml index 332b50e..cd96cc9 100644 --- a/src/main/resources/org/gcube/portlets/user/dataminermanager/dataminermanager.gwt.xml +++ b/src/main/resources/org/gcube/portlets/user/dataminermanager/dataminermanager.gwt.xml @@ -31,11 +31,12 @@ - - + /> --> +