diff --git a/pom.xml b/pom.xml index 3d3493e..7ce9ef1 100644 --- a/pom.xml +++ b/pom.xml @@ -281,7 +281,7 @@ org.gcube.portlets.widgets workspace-uploader - [1.4.0-SNAPSHOT,2.0.0-SNAPSHOT) + [2.0.0-SNAPSHOT,3.0.0-SNAPSHOT) diff --git a/src/main/java/org/gcube/portlets/user/dataminermanager/client/dataspace/DataSpacePanel.java b/src/main/java/org/gcube/portlets/user/dataminermanager/client/dataspace/DataSpacePanel.java index 6b01ba8..9e3e0a4 100644 --- a/src/main/java/org/gcube/portlets/user/dataminermanager/client/dataspace/DataSpacePanel.java +++ b/src/main/java/org/gcube/portlets/user/dataminermanager/client/dataspace/DataSpacePanel.java @@ -16,7 +16,7 @@ import com.sencha.gxt.widget.core.client.container.SimpleContainer; * */ public class DataSpacePanel extends SimpleContainer { - + private TabPanel dataSpaceTabPanel; private OutputDataSetsPanel outputDataSetsPanel; private InputDataSetsPanel inputDataSetsPanel; @@ -31,32 +31,25 @@ public class DataSpacePanel extends SimpleContainer { } private void create() { - outputDataSetsPanel = new OutputDataSetsPanel(); inputDataSetsPanel = new InputDataSetsPanel(); + outputDataSetsPanel = new OutputDataSetsPanel(); - dataSpaceTabPanel=new TabPanel(); + dataSpaceTabPanel = new TabPanel(); dataSpaceTabPanel.setBorders(false); dataSpaceTabPanel.setBodyBorder(false); - - TabItemConfig outputDataItemConf = new TabItemConfig("Output Data Sets", - false); - outputDataItemConf.setIcon(DataMinerManager.resources - .folderExplore()); - + + TabItemConfig outputDataItemConf = new TabItemConfig("Output Data Sets", false); + outputDataItemConf.setIcon(DataMinerManager.resources.folderExplore()); dataSpaceTabPanel.add(outputDataSetsPanel, outputDataItemConf); - TabItemConfig inputDataSetsItemConf = new TabItemConfig( - "Input Data Sets", false); - inputDataSetsItemConf.setIcon(DataMinerManager.resources - .folderExplore()); + TabItemConfig inputDataSetsItemConf = new TabItemConfig("Input Data Sets", false); + inputDataSetsItemConf.setIcon(DataMinerManager.resources.folderExplore()); dataSpaceTabPanel.add(inputDataSetsPanel, inputDataSetsItemConf); dataSpaceTabPanel.setActiveWidget(outputDataSetsPanel); - add(dataSpaceTabPanel); - + forceLayout(); + } - - } 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 655e6be..13c185f 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 @@ -13,6 +13,7 @@ import org.gcube.portlets.user.dataminermanager.client.events.DataMinerWorkAreaE import org.gcube.portlets.user.dataminermanager.client.events.DeleteItemRequestEvent; import org.gcube.portlets.user.dataminermanager.client.events.RefreshDataMinerWorkAreaEvent; import org.gcube.portlets.user.dataminermanager.client.events.SessionExpiredEvent; +import org.gcube.portlets.user.dataminermanager.client.events.SyncRefreshUploadDataSpaceEvent; import org.gcube.portlets.user.dataminermanager.client.events.UIStateEvent; import org.gcube.portlets.user.dataminermanager.client.rpc.DataMinerPortletServiceAsync; import org.gcube.portlets.user.dataminermanager.client.type.DataMinerWorkAreaElementType; @@ -56,7 +57,8 @@ public class InputDataSetsPanel extends FramedPanel { private Item selectedItem; private MultipleDNDUpload dnd; - //private WorkspaceResourcesExplorerPanelPaginated wsResourcesExplorerPanel; + // private WorkspaceResourcesExplorerPanelPaginated + // wsResourcesExplorerPanel; private WorkspaceResourcesExplorerPanel wsResourcesExplorerPanel; private TextButton btnDownload; private TextButton btnDelete; @@ -81,7 +83,7 @@ public class InputDataSetsPanel extends FramedPanel { setHeaderVisible(false); setResize(true); setAnimCollapse(false); - setCollapsible(true); + setCollapsible(false); setHeadingText("Input Data Sets"); setBodyStyle("backgroundColor:white;"); } @@ -119,6 +121,17 @@ public class InputDataSetsPanel extends FramedPanel { }); + EventBusProvider.INSTANCE.addHandler(SyncRefreshUploadDataSpaceEvent.TYPE, + new SyncRefreshUploadDataSpaceEvent.SyncRefreshUploadDataSpaceEventHandler() { + + @Override + public void onRefresh(SyncRefreshUploadDataSpaceEvent event) { + manageSyncRefreshUploadDataSpaceEvents(); + + } + + }); + } private void manageStateEvents(UIStateEvent event) { @@ -175,7 +188,6 @@ public class InputDataSetsPanel extends FramedPanel { Log.error("RefreshDataMinerWorkAreaEvent"); return; } - switch (event.getDataMinerWorkAreaElementType()) { case Computations: break; @@ -190,8 +202,14 @@ public class InputDataSetsPanel extends FramedPanel { } + private void manageSyncRefreshUploadDataSpaceEvents() { + Log.debug("InputDataSetsPanel received SyncRefreshUploadDataSpaceEvents: "); + refreshWSResourceExplorerPanel(); + } + private void create(DataMinerWorkAreaEvent event) { Log.debug("Create InputDataSetsPanel"); + Log.debug("DataMinerWorkAreaEvent: " + event); try { if (event == null || event.getDataMinerWorkArea() == null @@ -216,12 +234,13 @@ public class InputDataSetsPanel extends FramedPanel { filterCriteria.setRequiredProperties(map); Log.debug("Create wsResourcesExplorerPanel for Input: [" - + event.getDataMinerWorkArea().getInputDataSets().getFolder().getId() + ", false, " - + showProperties+", "+ filterCriteria + ", true, " + DISPLAY_FIELD.CREATION_DATE + "]"); + + event.getDataMinerWorkArea().getInputDataSets().getFolder().getId() + ", false, " + showProperties + + ", " + filterCriteria + ", true, " + DISPLAY_FIELD.CREATION_DATE + "]"); wsResourcesExplorerPanel = new WorkspaceResourcesExplorerPanel( event.getDataMinerWorkArea().getInputDataSets().getFolder().getId(), false, showProperties, filterCriteria, true, DISPLAY_FIELD.CREATION_DATE); + WorskpaceExplorerSelectNotificationListener wsResourceExplorerListener = new WorskpaceExplorerSelectNotificationListener() { @Override public void onSelectedItem(Item item) { @@ -258,38 +277,44 @@ public class InputDataSetsPanel extends FramedPanel { dnd = new MultipleDNDUpload(); dnd.setParameters(event.getDataMinerWorkArea().getInputDataSets().getFolder().getId(), UPLOAD_TYPE.File); dnd.addUniqueContainer(wsResourcesExplorerPanel); - WorskpaceUploadNotificationListener workspaceUploaderListener = new WorskpaceUploadNotificationListener() { + WorskpaceUploadNotificationListener workspaceUploaderListenerInputDataSetsPanel = new WorskpaceUploadNotificationListener() { @Override public void onUploadCompleted(String parentId, String itemId) { - Log.debug("Upload completed: [parentID: " + parentId + ", itemId: " + itemId + "]"); - wsResourcesExplorerPanel.refreshRootFolderView(); - forceLayout(); + Log.debug("InputDataSetsPanel Upload completed: [parentID: " + parentId + ", itemId: " + itemId + + "]"); + SyncRefreshUploadDataSpaceEvent ev=new SyncRefreshUploadDataSpaceEvent(); + EventBusProvider.INSTANCE.fireEvent(ev); + //wsResourcesExplorerPanel.refreshRootFolderView(); + //forceLayout(); } @Override public void onUploadAborted(String parentId, String itemId) { - Log.debug("Upload Aborted: [parentID: " + parentId + ", itemId: " + itemId + "]"); + Log.debug( + "InputDataSetsPanel Upload Aborted: [parentID: " + parentId + ", itemId: " + itemId + "]"); } @Override public void onError(String parentId, String itemId, Throwable throwable) { - Log.debug("Upload Error: [parentID: " + parentId + ", itemId: " + itemId + "]"); + Log.debug("InputDataSetsPanel 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 + "]"); - wsResourcesExplorerPanel.refreshRootFolderView(); - forceLayout(); + Log.debug("InputDataSetsPanel Upload Override Completed: [parentID: " + parentId + ", itemId: " + + itemId + "]"); + SyncRefreshUploadDataSpaceEvent ev=new SyncRefreshUploadDataSpaceEvent(); + EventBusProvider.INSTANCE.fireEvent(ev); + //wsResourcesExplorerPanel.refreshRootFolderView(); + //forceLayout(); } }; - dnd.addWorkspaceUploadNotificationListener(workspaceUploaderListener); - - + dnd.addWorkspaceUploadNotificationListener(workspaceUploaderListenerInputDataSetsPanel); + Log.debug("Create ToolBar for InputDataSetsPanel"); // ToolBar btnDownload = new TextButton("Download"); @@ -368,7 +393,6 @@ public class InputDataSetsPanel extends FramedPanel { private void refreshWSResourceExplorerPanel() { if (wsResourcesExplorerPanel != null) { try { - //wsResourcesExplorerPanel.hardRefresh(); wsResourcesExplorerPanel.refreshRootFolderView(); } catch (Exception e) { Log.error("Error retrieving data: " + e.getLocalizedMessage()); @@ -421,7 +445,6 @@ public class InputDataSetsPanel extends FramedPanel { 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(), selectedItem.getType().name()); @@ -433,7 +456,7 @@ public class InputDataSetsPanel extends FramedPanel { if (caught instanceof SessionExpiredServiceException) { EventBusProvider.INSTANCE.fireEvent(new SessionExpiredEvent()); } else { - Log.error("Error open file: " + caught.getLocalizedMessage()); + Log.error("Error open file: " + caught.getLocalizedMessage(), caught); UtilsGXT3.alert("Error", caught.getLocalizedMessage()); } caught.printStackTrace(); 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 0236754..c42c820 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 @@ -13,6 +13,7 @@ import org.gcube.portlets.user.dataminermanager.client.events.DataMinerWorkAreaE import org.gcube.portlets.user.dataminermanager.client.events.DeleteItemRequestEvent; import org.gcube.portlets.user.dataminermanager.client.events.RefreshDataMinerWorkAreaEvent; import org.gcube.portlets.user.dataminermanager.client.events.SessionExpiredEvent; +import org.gcube.portlets.user.dataminermanager.client.events.SyncRefreshUploadDataSpaceEvent; import org.gcube.portlets.user.dataminermanager.client.events.UIStateEvent; import org.gcube.portlets.user.dataminermanager.client.rpc.DataMinerPortletServiceAsync; import org.gcube.portlets.user.dataminermanager.client.type.DataMinerWorkAreaElementType; @@ -56,8 +57,8 @@ public class OutputDataSetsPanel extends FramedPanel { private Item selectedItem; private MultipleDNDUpload dnd; - - //private WorkspaceResourcesExplorerPanelPaginated wsResourcesExplorerPanel; + // private WorkspaceResourcesExplorerPanelPaginated + // wsResourcesExplorerPanel; private WorkspaceResourcesExplorerPanel wsResourcesExplorerPanel; private TextButton btnDownload; private TextButton btnDelete; @@ -82,6 +83,7 @@ public class OutputDataSetsPanel extends FramedPanel { setHeaderVisible(false); setResize(true); setAnimCollapse(false); + setCollapsible(false); setHeadingText("Output Data Sets"); setBodyStyle("backgroundColor:white;"); } @@ -119,6 +121,17 @@ public class OutputDataSetsPanel extends FramedPanel { }); + EventBusProvider.INSTANCE.addHandler(SyncRefreshUploadDataSpaceEvent.TYPE, + new SyncRefreshUploadDataSpaceEvent.SyncRefreshUploadDataSpaceEventHandler() { + + @Override + public void onRefresh(SyncRefreshUploadDataSpaceEvent event) { + manageSyncRefreshUploadDataSpaceEvents(); + + } + + }); + } private void manageStateEvents(UIStateEvent event) { @@ -147,7 +160,7 @@ public class OutputDataSetsPanel extends FramedPanel { } switch (event.getDataMinerWorkAreaRegionType()) { case Computations: - break; + break; case DataSets: manageMyDataMinerWorkAreaEvents(event); break; @@ -188,9 +201,17 @@ public class OutputDataSetsPanel extends FramedPanel { } } + + + private void manageSyncRefreshUploadDataSpaceEvents() { + Log.debug("OutputDataSetsPanel received SyncRefreshUploadDataSpaceEvents: "); + refreshWSResourceExplorerPanel(); + } + private void create(DataMinerWorkAreaEvent event) { Log.debug("Create OutputDataSetsPanel"); + Log.debug("DataMinerWorkAreaEvent: " + event); try { if (event == null || event.getDataMinerWorkArea() == null @@ -217,6 +238,7 @@ public class OutputDataSetsPanel extends FramedPanel { Log.debug("Create wsResourcesExplorerPanel for Output: [" + event.getDataMinerWorkArea().getOutputDataSets().getFolder().getId() + ", false, " + showProperties + ", " + filterCriteria + ", true, " + DISPLAY_FIELD.CREATION_DATE + "]"); + wsResourcesExplorerPanel = new WorkspaceResourcesExplorerPanel( event.getDataMinerWorkArea().getOutputDataSets().getFolder().getId(), false, showProperties, filterCriteria, true, DISPLAY_FIELD.CREATION_DATE); @@ -253,41 +275,45 @@ public class OutputDataSetsPanel extends FramedPanel { Log.debug("Define DND for OutputDataSetsPanel"); // DND - dnd = new MultipleDNDUpload(); + dnd.setParameters(event.getDataMinerWorkArea().getOutputDataSets().getFolder().getId(), UPLOAD_TYPE.File); dnd.addUniqueContainer(wsResourcesExplorerPanel); - WorskpaceUploadNotificationListener workspaceUploaderListener = new WorskpaceUploadNotificationListener() { + WorskpaceUploadNotificationListener workspaceUploaderListenerOutputDataSetsPanel = new WorskpaceUploadNotificationListener() { @Override public void onUploadCompleted(String parentId, String itemId) { - Log.debug("Upload completed: [parentID: " + parentId + ", itemId: " + itemId + "]"); - wsResourcesExplorerPanel.refreshRootFolderView(); - forceLayout(); + Log.debug("OutputDataSetsPanel Upload completed: [parentID: " + parentId + ", itemId: " + itemId + "]"); + SyncRefreshUploadDataSpaceEvent ev=new SyncRefreshUploadDataSpaceEvent(); + EventBusProvider.INSTANCE.fireEvent(ev); + //wsResourcesExplorerPanel.refreshRootFolderView(); + //forceLayout(); } @Override public void onUploadAborted(String parentId, String itemId) { - Log.debug("Upload Aborted: [parentID: " + parentId + ", itemId: " + itemId + "]"); + Log.debug("OutputDataSetsPanel Upload Aborted: [parentID: " + parentId + ", itemId: " + itemId + "]"); } @Override public void onError(String parentId, String itemId, Throwable throwable) { - Log.debug("Upload Error: [parentID: " + parentId + ", itemId: " + itemId + "]"); + Log.debug("OutputDataSetsPanel 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 + "]"); - wsResourcesExplorerPanel.refreshRootFolderView(); - forceLayout(); + Log.debug("OutputDataSetsPanel Upload Override Completed: [parentID: " + parentId + ", itemId: " + itemId + "]"); + SyncRefreshUploadDataSpaceEvent ev=new SyncRefreshUploadDataSpaceEvent(); + EventBusProvider.INSTANCE.fireEvent(ev); + //wsResourcesExplorerPanel.refreshRootFolderView(); + //forceLayout(); } }; - dnd.addWorkspaceUploadNotificationListener(workspaceUploaderListener); - + dnd.addWorkspaceUploadNotificationListener(workspaceUploaderListenerOutputDataSetsPanel); + Log.debug("Create ToolBar for OutputDatasetsPanel"); // ToolBar btnDownload = new TextButton("Download"); @@ -338,10 +364,10 @@ public class OutputDataSetsPanel extends FramedPanel { toolBar.add(btnRefresh, new BoxLayoutData(new Margins(0))); v = new VerticalLayoutContainer(); + v.setItemId("OutputDataSetsPanelVert"); v.add(toolBar, new VerticalLayoutData(1, -1, new Margins(0))); v.add(dnd, new VerticalLayoutData(1, 1, new Margins(0))); - //v.add(wsResourcesExplorerPanel, new VerticalLayoutData(1, 1, new Margins(0))); add(v); v.addResizeHandler(new ResizeHandler() { @@ -367,8 +393,6 @@ public class OutputDataSetsPanel extends FramedPanel { if (wsResourcesExplorerPanel != null) { try { wsResourcesExplorerPanel.refreshRootFolderView(); - - // wsResourcesExplorerPanel.hardRefresh(); } catch (Exception e) { Log.error("Error retrieving data: " + e.getLocalizedMessage()); @@ -431,7 +455,7 @@ public class OutputDataSetsPanel extends FramedPanel { if (caught instanceof SessionExpiredServiceException) { EventBusProvider.INSTANCE.fireEvent(new SessionExpiredEvent()); } else { - Log.error("Error open file: " + caught.getLocalizedMessage(),caught); + Log.error("Error open file: " + caught.getLocalizedMessage(), caught); UtilsGXT3.alert("Error", caught.getLocalizedMessage()); } caught.printStackTrace(); @@ -446,7 +470,6 @@ public class OutputDataSetsPanel extends FramedPanel { }); } - } else { UtilsGXT3.info("Attention", "Select a file!"); } diff --git a/src/main/java/org/gcube/portlets/user/dataminermanager/client/events/SyncRefreshUploadDataSpaceEvent.java b/src/main/java/org/gcube/portlets/user/dataminermanager/client/events/SyncRefreshUploadDataSpaceEvent.java new file mode 100644 index 0000000..500c445 --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/dataminermanager/client/events/SyncRefreshUploadDataSpaceEvent.java @@ -0,0 +1,59 @@ +package org.gcube.portlets.user.dataminermanager.client.events; + +import org.gcube.portlets.user.dataminermanager.client.type.DataMinerWorkAreaElementType; + +import com.google.gwt.event.shared.EventHandler; +import com.google.gwt.event.shared.GwtEvent; +import com.google.gwt.event.shared.HandlerRegistration; +import com.google.gwt.event.shared.HasHandlers; + +/** + * SyncRefreshUpload + * + * + * @author Giancarlo Panichi + * + * + */ +public class SyncRefreshUploadDataSpaceEvent + extends GwtEvent { + + public static Type TYPE = new Type(); + + public interface SyncRefreshUploadDataSpaceEventHandler extends EventHandler { + void onRefresh(SyncRefreshUploadDataSpaceEvent event); + } + + public interface HasSyncRefreshUploadDataSpaceEventHandler extends HasHandlers { + public HandlerRegistration addSyncRefreshUploadDataSpaceEventHandler( + SyncRefreshUploadDataSpaceEventHandler handler); + } + + public SyncRefreshUploadDataSpaceEvent() { + + } + + @Override + protected void dispatch(SyncRefreshUploadDataSpaceEventHandler handler) { + handler.onRefresh(this); + } + + @Override + public Type getAssociatedType() { + return TYPE; + } + + public static Type getType() { + return TYPE; + } + + public static void fire(HasHandlers source, SyncRefreshUploadDataSpaceEvent deleteItemEvent) { + source.fireEvent(deleteItemEvent); + } + + @Override + public String toString() { + return "SyncRefreshUploadDataSpaceEvent []"; + } + +} 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 d3557f6..97c08c6 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 @@ -6,10 +6,8 @@ - - + + @@ -43,21 +41,17 @@ - - - - - --> - - + + + + diff --git a/src/main/java/org/gcube/portlets/user/dataminermanager/server/util/DataMinerWorkAreaManager.java b/src/main/java/org/gcube/portlets/user/dataminermanager/server/util/DataMinerWorkAreaManager.java index 11d4e28..3ee5f5a 100644 --- a/src/main/java/org/gcube/portlets/user/dataminermanager/server/util/DataMinerWorkAreaManager.java +++ b/src/main/java/org/gcube/portlets/user/dataminermanager/server/util/DataMinerWorkAreaManager.java @@ -109,6 +109,7 @@ public class DataMinerWorkAreaManager { } dataMinerWorkArea.setComputations(computations); + logger.debug("DataMinerWorkArea: "+dataMinerWorkArea); return dataMinerWorkArea; } 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 d3557f6..97c08c6 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 @@ -6,10 +6,8 @@ - - + + @@ -43,21 +41,17 @@ - - - - - --> - - + + + +