/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.gui.workflow.editor; import java.io.ByteArrayInputStream; import java.io.IOException; import java.util.UUID; import org.eclipse.core.resources.IFile; import org.eclipse.core.runtime.CoreException; 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.dialogs.WizardNewFileCreationPage; import de.rcenvironment.core.component.workflow.model.api.WorkflowDescription; import de.rcenvironment.core.component.workflow.model.api.WorkflowDescriptionPersistenceHandler; /** * Wizard to create a new workflow file. * * @author Heinrich Wendel */ public class NewWorkflowWizard extends Wizard implements INewWizard { /** The current selection in the navigator. */ private IStructuredSelection selection; /** Content of the wizard. */ private NewWorkflowPage mainPage; @Override public boolean performFinish() { IFile file = mainPage.createNewFile(); WorkflowDescription wd = new WorkflowDescription(UUID.randomUUID().toString()); WorkflowDescriptionPersistenceHandler wdHandler = new WorkflowDescriptionPersistenceHandler(); try { file.setContents(new ByteArrayInputStream(wdHandler.writeWorkflowDescriptionToStream(wd).toByteArray()), 0, null); } catch (CoreException e) { throw new RuntimeException(e); } catch (IOException e) { throw new RuntimeException(e); } return file != null; } @Override public void init(IWorkbench workbench, IStructuredSelection currentSelection) { selection = currentSelection; setWindowTitle(Messages.newWorkflow); } @Override public void addPages() { mainPage = new NewWorkflowPage(selection); addPage(mainPage); } /** * Content of the new Workflow wizard. * * @author Heinrich Wendel */ class NewWorkflowPage extends WizardNewFileCreationPage { /** * Constructor. * @param selection The current selection in the navigator. */ NewWorkflowPage(IStructuredSelection selection) { super("NewWorkflowPage", selection); //$NON-NLS-1$ setFileExtension("wf"); //$NON-NLS-1$ setDescription(Messages.createWorkflow); setTitle(Messages.fileWorkflow); } } }