/* Date: February 2, 2010
* Template: PluginScreenJavaTemplateGen.java.ftl
* generator: org.molgenis.generators.ui.PluginScreenJavaTemplateGen 3.3.2-testing
*
* THIS FILE IS A TEMPLATE. PLEASE EDIT :-)
*/
package plugins.genericwizard;
import java.io.File;
import org.molgenis.framework.db.Database;
import org.molgenis.framework.ui.PluginModel;
import org.molgenis.framework.ui.ScreenController;
import org.molgenis.framework.ui.ScreenMessage;
import org.molgenis.util.Entity;
import org.molgenis.util.SimpleTuple;
import org.molgenis.util.Tuple;
import app.ExcelImport;
import app.ImportWizardExcelPrognosis;
public class GenericWizard extends PluginModel<Entity>
{
private static final long serialVersionUID = -6011550003937663086L;
private GenericWizardModel model = new GenericWizardModel();
public GenericWizardModel getMyModel()
{
return model;
}
public GenericWizard(String name, ScreenController<?> parent)
{
super(name, parent);
}
@Override
public String getViewName()
{
return "GenericWizard";
}
@Override
public String getViewTemplate()
{
return "plugins/genericwizard/GenericWizard.ftl";
}
public void handleRequest(Database db, Tuple request)
{
if (request.getString("__action") != null)
{
try
{
// BUTTONS ON SCREEN ONE
if (request.getString("__action").equals("upload"))
{
// get uploaded file and do checks
File file = request.getFile("upload");
if (file == null)
{
throw new Exception("No file selected.");
}
else if (!file.getName().endsWith(".xls"))
{
throw new Exception("File does not end with '.xls', other formats are not supported.");
}
// run prognosis
ImportWizardExcelPrognosis iwep = new ImportWizardExcelPrognosis(db, file);
// if no error, set prognosis, set file, and continue
this.model.setIwep(iwep);
this.model.setCurrentFile(file);
this.model.setWhichScreen("two");
// BUTTONS ON SCREEN TWO
}
else if (request.getString("__action").equals("toScreenOne"))
{
// goto screen one
this.model.setWhichScreen("one");
// reset stuff
this.model.setCurrentFile(null);
this.model.setIwep(null);
this.model.setImportSuccess(false);
}
else if (request.getString("__action").equals("import"))
{
// goto screen three
this.model.setWhichScreen("three");
// set import succes to false (again), to be sure
this.model.setImportSuccess(false);
ExcelImport.importAll(this.model.getCurrentFile(), db, new SimpleTuple());
// when no error, set success to true
this.model.setImportSuccess(true);
}
}
catch (Exception e)
{
e.printStackTrace();
this.setMessages(new ScreenMessage(e.getMessage() != null ? e.getMessage() : "null", false));
}
}
}
@Override
public void reload(Database db)
{
}
}