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-codelistmapping-import-widget@117641 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Giancarlo Panichi 2015-08-03 16:56:14 +00:00
parent 60a6c072a2
commit a7b3f43ece
5 changed files with 86 additions and 89 deletions

View File

@ -133,10 +133,11 @@
<!-- WSLT dependencies --> <!-- WSLT dependencies -->
<dependency> <dependency>
<groupId>org.gcube.portlets.widgets</groupId> <groupId>org.gcube.portlets.widgets</groupId>
<artifactId>workspace-light-tree</artifactId> <artifactId>workspace-explorer</artifactId>
<version>[2.13.0-SNAPSHOT, 3.0.0-SNAPSHOT)</version> <version>[1.0.0-SNAPSHOT, 2.0.0-SNAPSHOT)</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.gcube.common</groupId> <groupId>org.gcube.common</groupId>
<artifactId>home-library</artifactId> <artifactId>home-library</artifactId>
@ -166,9 +167,9 @@
<version>4.8.1</version> <version>4.8.1</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
</dependencies> </dependencies>
<build> <build>
<!-- Generate compiled stuff in the folder used for developing mode --> <!-- Generate compiled stuff in the folder used for developing mode -->
<outputDirectory>${webappDirectory}/WEB-INF/classes</outputDirectory> <outputDirectory>${webappDirectory}/WEB-INF/classes</outputDirectory>

View File

@ -3,7 +3,11 @@
*/ */
package org.gcube.portlets.user.td.codelistmappingimportwidget.client; package org.gcube.portlets.user.td.codelistmappingimportwidget.client;
import org.gcube.portlets.user.td.codelistmappingimportwidget.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.client.rpc.TDGWTServiceAsync;
import org.gcube.portlets.user.td.gwtservice.shared.codelisthelper.CodelistMappingSession; import org.gcube.portlets.user.td.gwtservice.shared.codelisthelper.CodelistMappingSession;
import org.gcube.portlets.user.td.gwtservice.shared.exception.TDGWTIsFinalException; import org.gcube.portlets.user.td.gwtservice.shared.exception.TDGWTIsFinalException;
@ -12,15 +16,18 @@ import org.gcube.portlets.user.td.gwtservice.shared.exception.TDGWTSessionExpire
import org.gcube.portlets.user.td.widgetcommonevent.client.event.SessionExpiredEvent; 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.widgetcommonevent.client.type.SessionExpiredType;
import org.gcube.portlets.user.td.wizardwidget.client.WizardCard; import org.gcube.portlets.user.td.wizardwidget.client.WizardCard;
import org.gcube.portlets.widgets.lighttree.client.Item; import org.gcube.portlets.widgets.wsexplorer.client.notification.WorkspaceExplorerSelectNotification.WorskpaceExplorerSelectNotificationListener;
import org.gcube.portlets.widgets.lighttree.client.ItemType; import org.gcube.portlets.widgets.wsexplorer.client.select.WorkspaceExplorerSelectPanel;
import org.gcube.portlets.widgets.lighttree.client.event.ItemSelectionEvent; import org.gcube.portlets.widgets.wsexplorer.shared.FilterCriteria;
import org.gcube.portlets.widgets.lighttree.client.event.ItemSelectionHandler; 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.allen_sauer.gwt.log.client.Log;
import com.google.gwt.user.client.Command; import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.rpc.AsyncCallback;
import com.sencha.gxt.core.client.util.Margins;
import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer; import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer;
import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer.VerticalLayoutData;
/** /**
* *
@ -30,12 +37,17 @@ import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer;
*/ */
public class CodelistMappingWorkSpaceSelectionCard extends WizardCard { public class CodelistMappingWorkSpaceSelectionCard extends WizardCard {
protected CodelistMappingSession codelistMappingSession; /*
protected CodelistMappingWorkSpaceSelectionCard thisCard; public interface HtmlLayoutContainerTemplate extends XTemplates {
@XTemplate("<div class=\"wspaceSelectionCard\" style=\"margin:auto;padding:auto;\"></div>")
SafeHtml getTemplate();
}*/
protected Item item; private CodelistMappingSession codelistMappingSession;
protected VerticalLayoutContainer p; private CodelistMappingWorkSpaceSelectionCard thisCard;
protected WorkspacePanel wpanel;
private VerticalLayoutContainer p;
private WorkspaceExplorerSelectPanel wpanel;
public CodelistMappingWorkSpaceSelectionCard( public CodelistMappingWorkSpaceSelectionCard(
final CodelistMappingSession codelistMappingSession) { final CodelistMappingSession codelistMappingSession) {
@ -44,23 +56,38 @@ public class CodelistMappingWorkSpaceSelectionCard extends WizardCard {
this.codelistMappingSession = codelistMappingSession; this.codelistMappingSession = codelistMappingSession;
thisCard = this; thisCard = this;
/*HtmlLayoutContainerTemplate templates = GWT
.create(HtmlLayoutContainerTemplate.class);
HtmlLayoutContainer htmlLayoutContainer = new HtmlLayoutContainer(
templates.getTemplate());
htmlLayoutContainer.add(button1, new HtmlData(".wspaceSelectionCard"));*/
p = new VerticalLayoutContainer(); p = new VerticalLayoutContainer();
Log.debug("Set Workspace Panel"); Log.debug("Set Workspace Panel");
wpanel = new WorkspacePanel(); List<ItemType> selectableTypes = new ArrayList<ItemType>();
wpanel.setSpWidth("536px"); selectableTypes.add(ItemType.EXTERNAL_FILE);
wpanel.setSpHeight("384px"); List<ItemType> showableTypes = new ArrayList<ItemType>();
// wpanel.setShowableTypes(ItemType.EXTERNAL_FILE); showableTypes.addAll(Arrays.asList(ItemType.values()));
wpanel.setSelectableTypes(ItemType.EXTERNAL_FILE);
wpanel.getSelectableTypes().remove(ItemType.ROOT);
wpanel.getSelectableTypes().remove(ItemType.FOLDER);
wpanel.setAllowedMimeTypes("application/xml", "application/zip",
"application/x-zip", "application/x-zip-compressed",
"application/octet", "application/octet-stream");
wpanel.addSelectionHandler(new ItemSelectionHandler() {
public void onSelection(ItemSelectionEvent event) { List<String> allowedMimeTypes = Arrays.asList("application/xml",
item = event.getSelectedItem(); "application/zip", "application/x-zip",
"application/x-zip-compressed", "application/octet",
"application/octet-stream");
List<String> allowedFileExtensions = Arrays.asList("xml", "zip");
FilterCriteria filterCriteria = new FilterCriteria(allowedMimeTypes,
allowedFileExtensions, new HashMap<String, String>());
wpanel = new WorkspaceExplorerSelectPanel(new String(
"Workspace Selection"), filterCriteria);
WorskpaceExplorerSelectNotificationListener handler = new WorskpaceExplorerSelectNotificationListener() {
@Override
public void onSelectedItem(Item item) {
Log.debug("Selected Item:" + item); Log.debug("Selected Item:" + item);
if (item.getType() == ItemType.EXTERNAL_FILE) { if (item.getType() == ItemType.EXTERNAL_FILE) {
String filename = item.getName(); String filename = item.getName();
@ -80,10 +107,29 @@ public class CodelistMappingWorkSpaceSelectionCard extends WizardCard {
Log.debug("Item type:" + item.getType()); Log.debug("Item type:" + item.getType());
getWizardWindow().setEnableNextButton(false); getWizardWindow().setEnableNextButton(false);
} }
} }
});
p.add(wpanel); @Override
wpanel.loadTree(); 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)));
setContent(p); setContent(p);
} }
@ -96,8 +142,6 @@ public class CodelistMappingWorkSpaceSelectionCard extends WizardCard {
public void execute() { public void execute() {
Log.debug("CodelistMappingWorkSpaceSelectionCard Call sayNextCard wpanel:" Log.debug("CodelistMappingWorkSpaceSelectionCard Call sayNextCard wpanel:"
+ wpanel); + wpanel);
wpanel.disable();
wpanel.startWaiting();
getWizardWindow().setEnableNextButton(false); getWizardWindow().setEnableNextButton(false);
getWizardWindow().setEnableBackButton(false); getWizardWindow().setEnableBackButton(false);
getFileFromWorkspace(); getFileFromWorkspace();
@ -130,7 +174,6 @@ public class CodelistMappingWorkSpaceSelectionCard extends WizardCard {
new AsyncCallback<Void>() { new AsyncCallback<Void>() {
public void onFailure(Throwable caught) { public void onFailure(Throwable caught) {
wpanel.endWaiting();
if (caught instanceof TDGWTSessionExpiredException) { if (caught instanceof TDGWTSessionExpiredException) {
getEventBus() getEventBus()
.fireEvent( .fireEvent(
@ -160,7 +203,6 @@ public class CodelistMappingWorkSpaceSelectionCard extends WizardCard {
} }
public void onSuccess(Void result) { public void onSuccess(Void result) {
wpanel.endWaiting();
goNext(); goNext();
} }

View File

@ -1,47 +0,0 @@
package org.gcube.portlets.user.td.codelistmappingimportwidget.client.workspace;
import org.gcube.portlets.widgets.lighttree.client.WorkspaceLightTreePanel;
import com.allen_sauer.gwt.log.client.Log;
import com.sencha.gxt.widget.core.client.box.AutoProgressMessageBox;
import com.sencha.gxt.widget.core.client.event.DisableEvent;
import com.sencha.gxt.widget.core.client.event.EnableEvent;
public class WorkspacePanel extends WorkspaceLightTreePanel {
AutoProgressMessageBox box;
public void setSpWidth(String w) {
sp.setWidth(w);
}
public void setSpHeight(String h) {
sp.setHeight(h);
}
public void disable() {
Log.debug("WorkspacePanel Disable");
fireEvent(new DisableEvent());
}
public void enable() {
Log.debug("WorkspacePanel Enable");
fireEvent(new EnableEvent());
}
public void startWaiting() {
box= new AutoProgressMessageBox("Loading",
"Retriving data from workspace, please wait...");
box.setProgressText("Loading...");
box.setModal(false);
box.auto();
box.show();
}
public void endWaiting() {
box.hide();
}
}

View File

@ -21,8 +21,8 @@
<inherits name='org.gcube.portlets.user.td.wizardwidget.Wizard' /> <inherits name='org.gcube.portlets.user.td.wizardwidget.Wizard' />
<inherits name='org.gcube.portlets.user.td.monitorwidget.MonitorWidgetTD' /> <inherits name='org.gcube.portlets.user.td.monitorwidget.MonitorWidgetTD' />
<inherits name='org.gcube.portlets.widgets.lighttree.WorkspacePortletLightTree' /> <inherits name='org.gcube.portlets.widgets.wsexplorer.WorkspaceExplorer' />
<!-- Specify the app entry point class. --> <!-- Specify the app entry point class. -->
<!-- <entry-point class='org.gcube.portlets.user.SDMXImportWizardTD.client.SDMXImportWizardTDEntry' /> --> <!-- <entry-point class='org.gcube.portlets.user.SDMXImportWizardTD.client.SDMXImportWizardTDEntry' /> -->

View File

@ -17,8 +17,8 @@
</servlet> </servlet>
<servlet> <servlet>
<servlet-name>WorkspaceLightService</servlet-name> <servlet-name>workspaceExplorer</servlet-name>
<servlet-class>org.gcube.portlets.widgets.lighttree.server.WorkspaceServiceImpl</servlet-class> <servlet-class>org.gcube.portlets.widgets.wsexplorer.server.WorkspaceExplorerServiceImpl</servlet-class>
</servlet> </servlet>
<servlet> <servlet>
@ -31,18 +31,19 @@
<!-- Servlets Mapping --> <!-- Servlets Mapping -->
<servlet-mapping> <servlet-mapping>
<servlet-name>TDGWTService</servlet-name> <servlet-name>TDGWTService</servlet-name>
<url-pattern>tdgwtservice/TDGWTService</url-pattern> <url-pattern>/CodelistMappingImportWizardWidgets/TDGWTService</url-pattern>
</servlet-mapping> </servlet-mapping>
<servlet-mapping> <servlet-mapping>
<servlet-name>jUnitHostImpl</servlet-name> <servlet-name>jUnitHostImpl</servlet-name>
<url-pattern>CodelistMappingImportWizardWidgets/junithost/*</url-pattern> <url-pattern>/CodelistMappingImportWizardWidgets/junithost/*</url-pattern>
</servlet-mapping> </servlet-mapping>
<servlet-mapping> <servlet-mapping>
<servlet-name>WorkspaceLightService</servlet-name> <servlet-name>workspaceExplorer</servlet-name>
<url-pattern>/CodelistMappingImportWizardWidgets/WorkspaceLightService</url-pattern> <url-pattern>/CodelistMappingImportWizardWidgets/WorkspaceExplorerService</url-pattern>
</servlet-mapping> </servlet-mapping>
<servlet-mapping> <servlet-mapping>
<servlet-name>CodelistMappingUploadServlet</servlet-name> <servlet-name>CodelistMappingUploadServlet</servlet-name>
<url-pattern>/CodelistMappingImportWizardWidgets/CodelistMappingUploadServlet</url-pattern> <url-pattern>/CodelistMappingImportWizardWidgets/CodelistMappingUploadServlet</url-pattern>