From 94653603196be4c5278e52a6072144ce843182e0 Mon Sep 17 00:00:00 2001 From: Giancarlo Panichi Date: Thu, 30 Jul 2015 16:36:55 +0000 Subject: [PATCH] 428: TDM - Support the new Workspace Explorer Task-Url: https://support.d4science.org/issues/428 Updated support to workspace explorer git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/tabular-data-csv-import-widget@117578 82a268e6-3cf1-43bd-a215-b396298e98cf --- pom.xml | 20 +- .../client/CSVImportWizardTD.java | 4 + .../client/CSVWorkSpaceSelectionCard.java | 198 +++++++++++------- .../client/SourceSelectionCard.java | 1 + .../csvimportwidget/CSVImportWizardTD.gwt.xml | 62 +++--- src/main/webapp/WEB-INF/web.xml | 28 ++- 6 files changed, 190 insertions(+), 123 deletions(-) diff --git a/pom.xml b/pom.xml index 72e72c2..a76a617 100644 --- a/pom.xml +++ b/pom.xml @@ -43,13 +43,13 @@ distro config - + 2.6.1 3.3.2 - 3.1.1 - - + 3.1.1 + + ${env.KEYS} UTF-8 @@ -115,7 +115,7 @@ [1.0.0-SNAPSHOT,2.0.0-SNAPSHOT) provided - + org.gcube.portlets.user @@ -140,6 +140,14 @@ [2.13.0-SNAPSHOT, 3.0.0-SNAPSHOT) provided + + + org.gcube.portlets.widgets + workspace-explorer + [1.0.0-SNAPSHOT, 2.0.0-SNAPSHOT) + provided + + org.gcube.common home-library @@ -162,7 +170,7 @@ org.slf4j slf4j-api - + junit diff --git a/src/main/java/org/gcube/portlets/user/td/csvimportwidget/client/CSVImportWizardTD.java b/src/main/java/org/gcube/portlets/user/td/csvimportwidget/client/CSVImportWizardTD.java index 615d506..f84ef39 100644 --- a/src/main/java/org/gcube/portlets/user/td/csvimportwidget/client/CSVImportWizardTD.java +++ b/src/main/java/org/gcube/portlets/user/td/csvimportwidget/client/CSVImportWizardTD.java @@ -2,6 +2,7 @@ package org.gcube.portlets.user.td.csvimportwidget.client; import org.gcube.portlets.user.td.wizardwidget.client.WizardWindow; import org.gcube.portlets.user.td.gwtservice.shared.csv.CSVImportSession; + import com.google.web.bindery.event.shared.EventBus; /** @@ -10,6 +11,8 @@ import com.google.web.bindery.event.shared.EventBus; public class CSVImportWizardTD extends WizardWindow { protected CSVImportSession importSession; + protected String WIZARDWIDTH = "712px"; + protected String WIZARDHEIGHT = "520px"; //private CSVImportWizardTD wizard; /** @@ -19,6 +22,7 @@ public class CSVImportWizardTD extends WizardWindow { public CSVImportWizardTD(String title, EventBus eventBus) { super(title,eventBus); + setWidth(WIZARDWIDTH); importSession= new CSVImportSession(); //this.wizard=this; diff --git a/src/main/java/org/gcube/portlets/user/td/csvimportwidget/client/CSVWorkSpaceSelectionCard.java b/src/main/java/org/gcube/portlets/user/td/csvimportwidget/client/CSVWorkSpaceSelectionCard.java index 0f57412..93f75fb 100644 --- a/src/main/java/org/gcube/portlets/user/td/csvimportwidget/client/CSVWorkSpaceSelectionCard.java +++ b/src/main/java/org/gcube/portlets/user/td/csvimportwidget/client/CSVWorkSpaceSelectionCard.java @@ -3,23 +3,30 @@ */ package org.gcube.portlets.user.td.csvimportwidget.client; -import org.gcube.portlets.user.td.widgetcommonevent.client.event.SessionExpiredEvent; -import org.gcube.portlets.user.td.widgetcommonevent.client.type.SessionExpiredType; -import org.gcube.portlets.user.td.wizardwidget.client.WizardCard; -import org.gcube.portlets.user.td.csvimportwidget.client.workspace.WorkspacePanel; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; + import org.gcube.portlets.user.td.gwtservice.client.rpc.TDGWTServiceAsync; import org.gcube.portlets.user.td.gwtservice.shared.csv.CSVImportSession; import org.gcube.portlets.user.td.gwtservice.shared.exception.TDGWTSessionExpiredException; -import org.gcube.portlets.widgets.lighttree.client.Item; -import org.gcube.portlets.widgets.lighttree.client.ItemType; -import org.gcube.portlets.widgets.lighttree.client.event.ItemSelectionEvent; -import org.gcube.portlets.widgets.lighttree.client.event.ItemSelectionHandler; +import org.gcube.portlets.user.td.widgetcommonevent.client.event.SessionExpiredEvent; +import org.gcube.portlets.user.td.widgetcommonevent.client.type.SessionExpiredType; +import org.gcube.portlets.user.td.wizardwidget.client.WizardCard; +import org.gcube.portlets.widgets.wsexplorer.client.notification.WorkspaceExplorerSelectNotification.WorskpaceExplorerSelectNotificationListener; +import org.gcube.portlets.widgets.wsexplorer.client.select.WorkspaceExplorerSelectPanel; +import org.gcube.portlets.widgets.wsexplorer.shared.FilterCriteria; +import org.gcube.portlets.widgets.wsexplorer.shared.Item; +import org.gcube.portlets.widgets.wsexplorer.shared.ItemType; import com.allen_sauer.gwt.log.client.Log; import com.google.gwt.user.client.Command; import com.google.gwt.user.client.rpc.AsyncCallback; +import com.sencha.gxt.core.client.util.Margins; import com.sencha.gxt.widget.core.client.container.MarginData; import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer; +import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer.VerticalLayoutData; /** * @@ -28,76 +35,105 @@ import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer; * */ public class CSVWorkSpaceSelectionCard extends WizardCard { - + protected CSVImportSession importSession; protected CSVWorkSpaceSelectionCard thisCard; - - - protected Item item; + + protected ItemType item; protected VerticalLayoutContainer p; - protected WorkspacePanel wpanel; + protected WorkspaceExplorerSelectPanel wpanel; public CSVWorkSpaceSelectionCard(final CSVImportSession importSession) { super("CSV Import From Workspace", ""); this.importSession = importSession; thisCard = this; - - p=new VerticalLayoutContainer(); + + p = new VerticalLayoutContainer(); Log.debug("Set Workspace Panel"); - wpanel=new WorkspacePanel(); - wpanel.setSpWidth("536px"); - wpanel.setSpHeight("384px"); - //wpanel.setShowableTypes(ItemType.EXTERNAL_FILE); - wpanel.setSelectableTypes(ItemType.EXTERNAL_FILE); - wpanel.getSelectableTypes().remove(ItemType.ROOT); - wpanel.getSelectableTypes().remove(ItemType.FOLDER); - wpanel.setAllowedMimeTypes("text/csv", "application/zip", "application/x-zip", "application/x-zip-compressed", "application/octet","application/octet-stream"); - wpanel.addSelectionHandler(new ItemSelectionHandler() { - - - public void onSelection(ItemSelectionEvent event) { - item=event.getSelectedItem(); - Log.debug("Selected Item:"+item); - if(item.getType()==ItemType.EXTERNAL_FILE){ - String filename=item.getName(); - if(filename!=null&&!filename.isEmpty()){ - Log.debug("Item name: "+filename); - Log.debug("Item path: "+item.getPath()); - - importSession.setItemId(item.getId()); - getWizardWindow().setEnableNextButton(true); - + List selectableTypes = new ArrayList(); + selectableTypes.add(ItemType.EXTERNAL_FILE); + List showableTypes = new ArrayList(); + showableTypes.addAll(Arrays.asList(ItemType.values())); + + List allowedMimeTypes = Arrays.asList("text/csv", + "application/zip", "application/x-zip", + "application/x-zip-compressed", "application/octet", + "application/octet-stream"); + List allowedFileExtensions = Arrays.asList("csv", "zip"); + + FilterCriteria filterCriteria = new FilterCriteria(allowedMimeTypes, + allowedFileExtensions, new HashMap()); + + wpanel = new WorkspaceExplorerSelectPanel(new String( + "Workspace Selection"), filterCriteria); + + // wpanel.setSpWidth("536px"); + // wpanel.setSpHeight("384px"); + // wpanel.setShowableTypes(ItemType.EXTERNAL_FILE); + // wpanel.setSelectableTypes(ItemType.EXTERNAL_FILE); + // wpanel.getSelectableTypes().remove(ItemType.ROOT); + // wpanel.getSelectableTypes().remove(ItemType.FOLDER); + // wpanel.setAllowedMimeTypes("text/csv", "application/zip", + // "application/x-zip", "application/x-zip-compressed", + // "application/octet","application/octet-stream"); + + WorskpaceExplorerSelectNotificationListener handler = new WorskpaceExplorerSelectNotificationListener() { + + @Override + public void onSelectedItem(Item item) { + Log.debug("Selected Item:" + item); + if (item.getType() == ItemType.EXTERNAL_FILE) { + String filename = item.getName(); + if (filename != null && !filename.isEmpty()) { + Log.debug("Item name: " + filename); + Log.debug("Item path: " + item.getPath()); + + importSession.setItemId(item.getId()); + getWizardWindow().setEnableNextButton(true); + } else { Log.debug("Item name null or empty"); getWizardWindow().setEnableNextButton(false); } - + } else { - Log.debug("Item type:"+item.getType()); + Log.debug("Item type:" + item.getType()); getWizardWindow().setEnableNextButton(false); } + } - }); - p.add(wpanel); - wpanel.loadTree(); + + @Override + public void onFailed(Throwable throwable) { + Log.error("Error in workspaceExplorer: " + + throwable.getLocalizedMessage()); + throwable.printStackTrace(); + } + + @Override + public void onAborted() { + Log.debug("WorkspaceExplorer Aborted"); + + } + }; + + wpanel.addWorkspaceExplorerSelectNotificationListener(handler); + + p.add(wpanel, new VerticalLayoutData(1, 1, new Margins(0))); setCenterWidget(p, new MarginData(0)); } - - - @Override public void setup() { Log.debug("CSVWorkSpaceSelectionCard Call Setup "); Command sayNextCard = new Command() { public void execute() { - Log.debug("CSVWorkSpaceSelectionCard Call sayNextCard wpanel:"+wpanel); - wpanel.disable(); - wpanel.startWaiting(); + Log.debug("CSVWorkSpaceSelectionCard Call sayNextCard wpanel:" + + wpanel); getWizardWindow().setEnableNextButton(false); getWizardWindow().setEnableBackButton(false); getFileFromWorkspace(); @@ -123,39 +159,41 @@ public class CSVWorkSpaceSelectionCard extends WizardCard { getWizardWindow().setEnableNextButton(false); } - - protected void getFileFromWorkspace(){ - TDGWTServiceAsync tdGwtServiceAsync=TDGWTServiceAsync.INSTANCE; - tdGwtServiceAsync.getFileFromWorkspace(importSession, new AsyncCallback(){ - public void onFailure(Throwable caught) { - wpanel.endWaiting(); - if (caught instanceof TDGWTSessionExpiredException) { - getEventBus().fireEvent(new SessionExpiredEvent( - SessionExpiredType.EXPIREDONSERVER)); - } else { - thisCard.showErrorAndHide("Error", "Error retrieving the file from the workspace.", - caught.getLocalizedMessage(), caught); - } - } + protected void getFileFromWorkspace() { + TDGWTServiceAsync tdGwtServiceAsync = TDGWTServiceAsync.INSTANCE; + tdGwtServiceAsync.getFileFromWorkspace(importSession, + new AsyncCallback() { + + public void onFailure(Throwable caught) { + if (caught instanceof TDGWTSessionExpiredException) { + getEventBus() + .fireEvent( + new SessionExpiredEvent( + SessionExpiredType.EXPIREDONSERVER)); + } else { + thisCard.showErrorAndHide( + "Error", + "Error retrieving the file from the workspace.", + caught.getLocalizedMessage(), caught); + } + } + + public void onSuccess(Void result) { + goForward(); + + } + + }); + + } + + protected void goForward() { + CSVConfigCard csvConfigCard = new CSVConfigCard(importSession); + getWizardWindow().addCard(csvConfigCard); + Log.info("NextCard CSVConfigCard"); + getWizardWindow().nextCard(); - public void onSuccess(Void result) { - wpanel.endWaiting(); - goForward(); - - } - - }); - - } - - protected void goForward(){ - CSVConfigCard csvConfigCard = new CSVConfigCard(importSession); - getWizardWindow().addCard(csvConfigCard); - Log.info("NextCard CSVConfigCard"); - getWizardWindow().nextCard(); - } - } diff --git a/src/main/java/org/gcube/portlets/user/td/csvimportwidget/client/SourceSelectionCard.java b/src/main/java/org/gcube/portlets/user/td/csvimportwidget/client/SourceSelectionCard.java index 08a41e9..0e14e15 100644 --- a/src/main/java/org/gcube/portlets/user/td/csvimportwidget/client/SourceSelectionCard.java +++ b/src/main/java/org/gcube/portlets/user/td/csvimportwidget/client/SourceSelectionCard.java @@ -130,6 +130,7 @@ public class SourceSelectionCard extends WizardCard { } } catch (Exception e) { Log.error("sayNextCard :" + e.getLocalizedMessage()); + e.printStackTrace(); } } }; diff --git a/src/main/resources/org/gcube/portlets/user/td/csvimportwidget/CSVImportWizardTD.gwt.xml b/src/main/resources/org/gcube/portlets/user/td/csvimportwidget/CSVImportWizardTD.gwt.xml index 8848aaa..75f7b3f 100644 --- a/src/main/resources/org/gcube/portlets/user/td/csvimportwidget/CSVImportWizardTD.gwt.xml +++ b/src/main/resources/org/gcube/portlets/user/td/csvimportwidget/CSVImportWizardTD.gwt.xml @@ -1,36 +1,40 @@ - - + + - - - + + + - - - - - - + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml index e9b3d5b..2020a99 100644 --- a/src/main/webapp/WEB-INF/web.xml +++ b/src/main/webapp/WEB-INF/web.xml @@ -4,13 +4,13 @@ "http://java.sun.com/dtd/web-app_2_3.dtd"> - - + + TDGWTService org.gcube.portlets.user.td.gwtservice.server.TDGWTServiceImpl - + jUnitHostImpl com.google.gwt.junit.server.JUnitHostImpl @@ -20,8 +20,14 @@ WorkspaceLightService org.gcube.portlets.widgets.lighttree.server.WorkspaceServiceImpl - - + + + workspaceExplorer + org.gcube.portlets.widgets.wsexplorer.server.WorkspaceExplorerServiceImpl + + + + TDGWTService @@ -31,13 +37,19 @@ jUnitHostImpl CSVImportWizardTDManagerWidgets/junithost/* - + WorkspaceLightService /CSVImportWizardTDManagerWidgets/WorkspaceLightService - - + + + workspaceExplorer + /CSVImportWizardTDManagerWidgets/WorkspaceExplorerService + + + + CSVImportWizardTD.html