/*
* Copyright 2015 Nokia Solutions and Networks
* Licensed under the Apache License, Version 2.0,
* see license.txt file for details.
*/
package org.robotframework.ide.eclipse.main.plugin.wizards;
import org.eclipse.core.resources.IFile;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.ui.IEditorDescriptor;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.part.FileEditorInput;
import org.eclipse.ui.wizards.newresource.BasicNewResourceWizard;
import org.robotframework.ide.eclipse.main.plugin.tableeditor.RobotFormEditor;
import org.robotframework.ide.eclipse.main.plugin.tableeditor.RobotFormEditor.RobotEditorOpeningException;
public class NewRobotResourceWizard extends BasicNewResourceWizard {
private WizardNewRobotResourceFileCreationPage mainPage;
@Override
public void init(final IWorkbench workbench, final IStructuredSelection currentSelection) {
super.init(workbench, currentSelection);
setNeedsProgressMonitor(true);
setWindowTitle("New Robot Resource file");
}
@Override
public void addPages() {
super.addPages();
mainPage = new WizardNewRobotResourceFileCreationPage("New Robot Resource file", getSelection(), "robot", "txt",
"tsv");
mainPage.setWizard(this);
mainPage.setTitle("Robot Resource file");
mainPage.setDescription("Create new Robot resource file");
this.addPage(mainPage);
}
@Override
public boolean performFinish() {
mainPage.setExtension();
final IFile newFile = mainPage.createNewFile();
selectAndReveal(newFile);
final IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
final IEditorDescriptor desc = PlatformUI.getWorkbench().getEditorRegistry().findEditor(RobotFormEditor.ID);
try {
page.openEditor(new FileEditorInput(newFile), desc.getId());
} catch (final PartInitException e) {
throw new RobotEditorOpeningException("Unable to open editor for file: " + newFile.getName(), e);
}
return true;
}
}