/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.components.excel.gui.view;
import org.eclipse.core.resources.IFile;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.wizard.Wizard;
import org.eclipse.swt.graphics.ImageData;
import org.eclipse.ui.INewWizard;
import org.eclipse.ui.IWorkbench;
/**
* A eclipse wizard to create a new script.
* @author Markus Kunde
*/
public class NewFileWizard extends Wizard implements INewWizard {
/**
* File type name.
*/
private final String name;
/**
* File extension to create with the wizard.
*/
private final String extension;
/**
* Boiler-plate code for the file.
*/
private final byte[] initialContent;
/**
* Initial selection (should be the current project).
*/
private IStructuredSelection selection;
/**
* The only page available.
*/
private NewFileWizardPage newFileWizardPage;
/**
* The selected file.
*/
private IFile file = null;
/**
* Constructor.
* @param fileTypeName The file type name, e.g. "Excel"
* @param fileExtension The file extension
* @param initialFileContent The file's contents
* @param imageData The image or null
*/
public NewFileWizard(final String fileTypeName, final String fileExtension,
final byte[] initialFileContent, final ImageData imageData) {
setWindowTitle(Messages.newFileTitle);
setHelpAvailable(false);
setForcePreviousAndNextButtons(false);
setNeedsProgressMonitor(false);
name = fileTypeName;
if (imageData != null) {
setDefaultPageImageDescriptor(ImageDescriptor.createFromImageData(imageData));
}
this.extension = fileExtension;
this.initialContent = initialFileContent;
}
/**
* Adds all wizard pages.
*/
@Override
public void addPages() {
newFileWizardPage = new NewFileWizardPage(selection, name, extension, initialContent);
addPage(newFileWizardPage);
}
/**
* Called when the wizard's finish button is pressed.
* @return True if OK
*/
@Override
public boolean performFinish() {
file = newFileWizardPage.createNewFile();
return file != null;
}
/**
* Used to set some properties.
* @param myWorkbench The workbench
* @param theSelection selection
*/
@Override
public void init(final IWorkbench myWorkbench, final IStructuredSelection theSelection) {
this.selection = theSelection;
}
/**
* Getter for the created file.
* @return The created file
*/
public IFile getFile() {
return file;
}
}