package com.github.jarlakxen.scala.sbt.wizard.migrate;
import org.eclipse.core.resources.IProject;
import org.eclipse.jface.wizard.Wizard;
import com.github.jarlakxen.scala.sbt.SbtPlugin;
import com.github.jarlakxen.scala.sbt.action.MigrateAction;
import com.github.jarlakxen.scala.sbt.configurations.MigrateToSbtProjectConfiguration;
import com.github.jarlakxen.scala.sbt.jobs.MigrateToSbtProjectJob;
import com.github.jarlakxen.scala.sbt.util.UIUtil;
/**
* Migrates an extsting SBT project to ScalaIDE.
* <p>
* This wizard is called from {@link MigrateAction} and do below:
* <ul>
* <li>Add natures of JDT, ScalaIDE and eclipse-scala-tools.</li>
* <li>Add sbteclipse to project/plugins.sbt (Optional)</li>
* <li>Run "sbt eclipse" to update Eclipse project configuration files.</li>
* </ul>
*
* @see MigrationWizardPage
* @see MigrateAction
* @author Facundo Viale
*/
public class MigrationWizard extends Wizard {
private MigrateToSbtProjectConfiguration configuration = MigrateToSbtProjectConfiguration.getDefault();
public MigrationWizard(IProject project){
configuration.setProject(project);
setWindowTitle("Add SBT Nature");
setNeedsProgressMonitor(true);
}
@Override
public void addPages() {
addPage(new MigrationWizardPage(configuration));
}
@Override
public boolean performFinish() {
try {
MigrateToSbtProjectJob job = new MigrateToSbtProjectJob(configuration);
job.schedule();
return true;
} catch (Exception e) {
UIUtil.showErrorDialog(e.toString());
SbtPlugin.logException(e);
return false;
}
}
}