/** * */ package org.gcube.portlets.user.td.codelistmappingimportwidget.client; import org.gcube.portlets.user.td.wizardwidget.client.WizardCard; 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 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("Codelist Mapping source 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>() { 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"); CodelistMappingUploadFileCard csvUploadFileCard = new CodelistMappingUploadFileCard( importSession); getWizardWindow().addCard(csvUploadFileCard); getWizardWindow().nextCard(); } else { if (sourceId.compareTo("Workspace") == 0) { Log.info("NextCard CSVWorkspaceSelectionCard"); CodelistMappingWorkSpaceSelectionCard csvWorkspaceSelectionCard = new CodelistMappingWorkSpaceSelectionCard( 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); } }