package org.molgenis.omx.plugins;
import java.io.File;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import org.molgenis.framework.db.CsvToDatabase.ImportResult;
/**
* Import wizard model
*/
public class ImportWizard
{
private List<WizardPage> pages = new ArrayList<WizardPage>();
private int currentPageIndex = 0;
private String errorMessage;// Error messages are shown in red and if
// present the wizard will not go to the next
// page
private String validationMessage;// Validation message are shown in red but
// wizard will move to the next page
private String successMessage;// Success message are shown in green (on the
// next page)
private File file;
private ImportResult importResult;
private Map<String, Boolean> entitiesImportable;
private Map<String, Boolean> dataImportable;
private Map<String, Collection<String>> fieldsDetected;
private Map<String, Collection<String>> fieldsUnknown;
private Map<String, Collection<String>> fieldsRequired;
private Map<String, Collection<String>> fieldsAvailable;
public ImportWizard()
{
super();
addPage(new UploadWizardPage());
addPage(new ValidationResultWizardPage());
addPage(new ImportFileWizardPage());
addPage(new ImportResultsWizardPage());
}
public String getErrorMessage()
{
return errorMessage;
}
public void setErrorMessage(String errorMessage)
{
this.errorMessage = errorMessage;
}
public String getValidationMessage()
{
return validationMessage;
}
public void setValidationMessage(String validationMessage)
{
this.validationMessage = validationMessage;
}
public String getSuccessMessage()
{
return successMessage;
}
public void setSuccessMessage(String successMessage)
{
this.successMessage = successMessage;
}
public File getFile()
{
return file;
}
public void setFile(File file)
{
this.file = file;
}
public ImportResult getImportResult()
{
return importResult;
}
public void setImportResult(ImportResult importResult)
{
this.importResult = importResult;
}
public void addPage(WizardPage page)
{
page.setWizard(this);
pages.add(page);
}
public WizardPage getCurrentPage()
{
return pages.get(currentPageIndex);
}
public int getCurrentPageIndex()
{
return currentPageIndex;
}
public List<WizardPage> getPages()
{
return Collections.unmodifiableList(pages);
}
public boolean isLastPage()
{
return getCurrentPageIndex() == getPages().size() - 1;
}
public boolean isFirstPage()
{
return getCurrentPageIndex() == 0;
}
public void next()
{
if (currentPageIndex < pages.size() - 1)
{
currentPageIndex++;
}
}
public void previous()
{
if (currentPageIndex > 0)
{
currentPageIndex--;
}
}
public Map<String, Boolean> getEntitiesImportable()
{
return entitiesImportable;
}
public void setEntitiesImportable(Map<String, Boolean> entitiesImportable)
{
this.entitiesImportable = entitiesImportable;
}
public Map<String, Boolean> getDataImportable()
{
return dataImportable;
}
public void setDataImportable(Map<String, Boolean> dataImportable)
{
this.dataImportable = dataImportable;
}
public Map<String, Collection<String>> getFieldsDetected()
{
return fieldsDetected;
}
public void setFieldsDetected(Map<String, Collection<String>> fieldsDetected)
{
this.fieldsDetected = fieldsDetected;
}
public Map<String, Collection<String>> getFieldsUnknown()
{
return fieldsUnknown;
}
public void setFieldsUnknown(Map<String, Collection<String>> fieldsUnknown)
{
this.fieldsUnknown = fieldsUnknown;
}
public Map<String, Collection<String>> getFieldsRequired()
{
return fieldsRequired;
}
public void setFieldsRequired(Map<String, Collection<String>> fieldsRequired)
{
this.fieldsRequired = fieldsRequired;
}
public Map<String, Collection<String>> getFieldsAvailable()
{
return fieldsAvailable;
}
public void setFieldsAvailable(Map<String, Collection<String>> fieldsAvailable)
{
this.fieldsAvailable = fieldsAvailable;
}
public void setCurrentPageIndex(int currentPageIndex)
{
this.currentPageIndex = currentPageIndex;
}
public void setPages(List<WizardPage> pages)
{
this.pages = pages;
}
}