package com.github.jarlakxen.scala.sbt.wizard.create;
import org.eclipse.ui.dialogs.WizardNewProjectCreationPage;
import org.eclipse.ui.wizards.newresource.BasicNewProjectResourceWizard;
import com.github.jarlakxen.scala.sbt.SbtPlugin;
import com.github.jarlakxen.scala.sbt.configurations.CreateSbtProjectConfiguration;
import com.github.jarlakxen.scala.sbt.jobs.CreateSbtProjectJob;
import com.github.jarlakxen.scala.sbt.util.UIUtil;
/**
* Creates new SBT project.
* <p>
* This wizard creates a new Scala project by SBT layout, put sbt-launcher.jar
* into the project root directory and add the classpath container to your
* project for adding depended libraries into project classpath.
*
* @see SbtProjectWizardPage SbtOptionsWizardPage
* @author Facundo Viale
*/
public class SbtWizard extends BasicNewProjectResourceWizard {
private CreateSbtProjectConfiguration configuration = CreateSbtProjectConfiguration.getDefault();
@Override
public void addPages() {
super.addPages();
WizardNewProjectCreationPage mainPage = (WizardNewProjectCreationPage) getPage("basicNewProjectPage");
addPage(new SbtProjectWizardPage(mainPage, configuration));
addPage(new SbtOptionsWizardPage(configuration));
}
@Override
public boolean performFinish() {
if (super.performFinish() == false) {
return false;
}
configuration.setProject(getNewProject());
try {
CreateSbtProjectJob job = new CreateSbtProjectJob(configuration);
job.schedule();
return true;
} catch (Exception e) {
UIUtil.showErrorDialog(e.toString());
SbtPlugin.logException(e);
return false;
}
}
}