package com.github.jarlakxen.scala.sbt.action;
import org.eclipse.core.resources.IProject;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.ui.IObjectActionDelegate;
import org.eclipse.ui.IWorkbenchPart;
import com.github.jarlakxen.scala.sbt.wizard.migrate.MigrationWizard;
/**
* Migrates the selected SBT project to ScalaIDE.
*
* @author Naoki Takezoe
*/
public class MigrateAction implements IObjectActionDelegate {
private IProject project;
private IWorkbenchPart targetPart;
@Override
public void run(IAction action) {
WizardDialog dialog = new WizardDialog(targetPart.getSite().getShell(), new MigrationWizard(project));
dialog.open();
}
@Override
public void selectionChanged(IAction action, ISelection selection) {
this.project = null;
if(selection != null && !selection.isEmpty() && selection instanceof IStructuredSelection){
Object obj = ((IStructuredSelection) selection).getFirstElement();
if(obj instanceof IJavaProject){
this.project = ((IJavaProject) obj).getProject();
} else if(obj instanceof IProject){
this.project = (IProject) obj;
}
}
}
@Override
public void setActivePart(IAction action, IWorkbenchPart targetPart) {
this.targetPart = targetPart;
}
}