package org.jbehave.eclipse.wizards;
import java.util.List;
import org.eclipse.core.resources.IFile;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.wizard.Wizard;
import org.eclipse.ui.INewWizard;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.ide.IDE;
import org.jbehave.eclipse.wizards.NewStepsSelectWizardPage.NewStep;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class GenerateStepsWizard extends Wizard implements INewWizard {
private static Logger log = LoggerFactory
.getLogger(GenerateStepsWizard.class);
private NewStepsSelectWizardPage selectPage;
private NewStepsWizardPage createPage;
private IStructuredSelection selection;
private IWorkbench workbench;
public GenerateStepsWizard() {
super();
setWindowTitle(WizardsMessages.GenerateStepsPageTitle);
}
public void addPages() {
selectPage = new NewStepsSelectWizardPage(selection);
addPage(selectPage);
createPage = new NewStepsWizardPage(selection);
addPage(createPage);
}
private void openEditor(final IFile file) {
if (file != null) {
getShell().getDisplay().asyncExec(new Runnable() {
public void run() {
try {
IWorkbenchPage page = PlatformUI.getWorkbench()
.getActiveWorkbenchWindow().getActivePage();
IDE.openEditor(page, file, true);
} catch (PartInitException e) {
log.debug(e.getMessage(), e);
}
}
});
}
}
public boolean performFinish() {
boolean performedOK = false;
List<NewStep> selectedSteps = selectPage.getSelectedSteps();
if (!selectedSteps.isEmpty()) {
createPage.useSteps(selectedSteps);
IFile file = createPage.createNewFile();
if (file != null) {
// open the file in editor
openEditor(file);
}
// everything is fine
performedOK = true;
}
return performedOK;
}
public void init(IWorkbench workbench, IStructuredSelection selection) {
this.selection = selection;
this.workbench = workbench;
}
}