package org.jbehave.eclipse.wizards; 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.slf4j.Logger; import org.slf4j.LoggerFactory; public class NewStoryWizard extends Wizard implements INewWizard { private static Logger log = LoggerFactory.getLogger(NewStoryWizard.class); private NewStoryWizardPage page; private IStructuredSelection selection; private IWorkbench workbench; public NewStoryWizard() { setWindowTitle(WizardsMessages.NewStoryWizardTitle); } public void addPages() { this.page = new NewStoryWizardPage(selection); addPage(page); } 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 performed = false; IFile file = page.createNewFile(); if (file != null) { // open the file in editor openEditor(file); // everything is fine performed = true; } return performed; } public void init(IWorkbench workbench, IStructuredSelection selection) { this.selection = selection; this.workbench = workbench; } }