diff --git a/src/main/java/org/gcube/portlets/user/td/csvexportwidget/client/SourceSelectionCard.java b/src/main/java/org/gcube/portlets/user/td/csvexportwidget/client/SourceSelectionCard.java
new file mode 100644
index 0000000..9b1d465
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/td/csvexportwidget/client/SourceSelectionCard.java
@@ -0,0 +1,142 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.td.csvexportwidget.client;
+
+
+
+import org.gcube.portlets.user.td.gwtservice.shared.csv.CSVImportSession;
+import org.gcube.portlets.user.td.gwtservice.shared.source.FileSource;
+import org.gcube.portlets.user.td.gwtservice.shared.source.WorkspaceSource;
+import org.gcube.portlets.user.td.wizardwidget.client.WizardCard;
+
+import com.allen_sauer.gwt.log.client.Log;
+import com.google.gwt.event.logical.shared.ValueChangeEvent;
+import com.google.gwt.event.logical.shared.ValueChangeHandler;
+import com.google.gwt.user.client.Command;
+import com.google.gwt.user.client.ui.HasValue;
+import com.google.gwt.user.client.ui.VerticalPanel;
+import com.sencha.gxt.core.client.util.ToggleGroup;
+import com.sencha.gxt.widget.core.client.form.Radio;
+
+/**
+ *
+ * @author "Giancarlo Panichi" g.panichi@isti.cnr.it
+ *
+ */
+public class SourceSelectionCard extends WizardCard {
+
+ protected final CSVImportSession importSession;
+
+ final FileSource fileSource = FileSource.INSTANCE;
+ final WorkspaceSource workspaceSource = WorkspaceSource.INSTANCE;
+
+ public SourceSelectionCard(final CSVImportSession importSession) {
+ super("CSV destination selection", "");
+
+ this.importSession = importSession;
+ // Default
+ importSession.setSource(fileSource);
+
+ VerticalPanel sourceSelectionPanel = new VerticalPanel();
+ sourceSelectionPanel.setStylePrimaryName(res.wizardCSS()
+ .getImportSelectionSources());
+
+ Radio radioFileSource = new Radio();
+ radioFileSource.setBoxLabel("
"
+ + fileSource.getName() + "
"
+ + fileSource.getDescription() + "
");
+ radioFileSource.setName(fileSource.getName());
+ radioFileSource.setStylePrimaryName(res.wizardCSS()
+ .getImportSelectionSource());
+ radioFileSource.setValue(true);
+
+ Radio radioWorkspaceSource = new Radio();
+ radioWorkspaceSource.setBoxLabel(""
+ + workspaceSource.getName() + "
"
+ + workspaceSource.getDescription() + "
");
+ radioWorkspaceSource.setName(workspaceSource.getName());
+ radioWorkspaceSource.setStylePrimaryName(res.wizardCSS()
+ .getImportSelectionSource());
+ // radioWorkspaceSource.disable();
+
+ sourceSelectionPanel.add(radioFileSource);
+ sourceSelectionPanel.add(radioWorkspaceSource);
+
+ // we can set name on radios or use toggle group
+ ToggleGroup toggle = new ToggleGroup();
+ toggle.add(radioWorkspaceSource);
+ toggle.add(radioFileSource);
+
+ toggle.addValueChangeHandler(new ValueChangeHandler>() {
+
+ @Override
+ public void onValueChange(ValueChangeEvent> event) {
+ try {
+ ToggleGroup group = (ToggleGroup) event.getSource();
+ Radio radio = (Radio) group.getValue();
+ Log.info("Source Selected:" + radio.getName());
+ if (radio.getName().compareTo(workspaceSource.getName()) == 0) {
+ importSession.setSource(workspaceSource);
+ } else {
+ if (radio.getName().compareTo(fileSource.getName()) == 0) {
+ importSession.setSource(fileSource);
+ } else {
+
+ }
+
+ }
+
+ } catch (Exception e) {
+ Log.error("ToggleGroup: onValueChange "
+ + e.getLocalizedMessage());
+ }
+
+ }
+ });
+
+ setContent(sourceSelectionPanel);
+
+ }
+
+ @Override
+ public void setup() {
+ Log.debug("Setup Card");
+ Command sayNextCard = new Command() {
+ public void execute() {
+ try {
+ String sourceId = importSession.getSource().getId();
+ if (sourceId == null || sourceId.isEmpty()) {
+ Log.error("CSV Import Source Id: " + sourceId);
+ } else {
+ if (sourceId.compareTo("File") == 0) {
+ Log.info("NextCard CSVUploadFileCard");
+ /*CSVUploadFileCard csvUploadFileCard = new CSVUploadFileCard(
+ importSession);
+ getWizardWindow().addCard(csvUploadFileCard);*/
+ getWizardWindow().nextCard();
+ } else {
+ if (sourceId.compareTo("Workspace") == 0) {
+ Log.info("NextCard CSVWorkspaceSelectionCard");
+ /*CSVWorkSpaceSelectionCard csvWorkspaceSelectionCard = new CSVWorkSpaceSelectionCard(
+ importSession);
+ getWizardWindow().addCard(
+ csvWorkspaceSelectionCard);*/
+ getWizardWindow().nextCard();
+ } else {
+ Log.debug("No source selected and no card loaded");
+ }
+ }
+ }
+ } catch (Exception e) {
+ Log.error("sayNextCard :" + e.getLocalizedMessage());
+ }
+ }
+ };
+
+ getWizardWindow().setNextButtonCommand(sayNextCard);
+
+ }
+
+}