/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.gui.workflow.editor; import org.eclipse.core.commands.AbstractHandler; import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.commands.ExecutionException; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.wizard.Wizard; import org.eclipse.jface.wizard.WizardDialog; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.IPageLayout; import org.eclipse.ui.PlatformUI; /** * Handler for the WorkflowProjectWizard. * * @author Oliver Seebach */ public class ShowNewWorkflowProjectWizardHandler extends AbstractHandler{ @Override public Object execute(ExecutionEvent event) throws ExecutionException { //get the selection from the project explorer tree ISelection selection = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(). findView(IPageLayout.ID_PROJECT_EXPLORER).getSite().getSelectionProvider().getSelection(); Shell shell = Display.getCurrent().getActiveShell(); NewWorkflowProjectWizard wizard = new NewWorkflowProjectWizard(selection); WorkflowProjectWizardDialog dialog = new WorkflowProjectWizardDialog(shell, wizard); dialog.setBlockOnOpen(true); dialog.open(); return null; } /** * Dialog controlling the WorkflowProjectWizard. * * @author Oliver Seebach * */ private static final class WorkflowProjectWizardDialog extends WizardDialog{ WorkflowProjectWizardDialog(Shell parentShell, Wizard newWizard) { super(parentShell, newWizard); } @Override public void create() { setShellStyle(SWT.DIALOG_TRIM | SWT.PRIMARY_MODAL); super.create(); } @Override protected void backPressed() { NewWorkflowProjectWizard.preventFinish(); super.backPressed(); } @Override protected boolean canHandleShellCloseEvent() { return true; } @Override protected void cancelPressed() { NewWorkflowProjectWizard.preventFinish(); super.cancelPressed(); } } }