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); + + } + +}