/******************************************************************************* * Copyright (c) 2010 Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is made available under the terms of the * Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.cdi.ui.wizard; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.jdt.core.IJavaElement; import org.eclipse.jdt.internal.ui.wizards.NewElementWizard; import org.eclipse.jdt.ui.wizards.NewClassWizardPage; import org.jboss.tools.cdi.ui.CDIUIMessages; /** * * @author Viacheslav Kabanovich * */ public class NewAnnotationLiteralCreationWizard extends NewElementWizard { private NewClassWizardPage fPage; private boolean fOpenEditorOnFinish = true; public NewAnnotationLiteralCreationWizard() { setWindowTitle(CDIUIMessages.NEW_ANNOTATION_LITERAL_WIZARD_TITLE); } public boolean isOpenEditorAfterFinish() { return fOpenEditorOnFinish; } public void setOpenEditorAfterFinish(boolean set) { this.fOpenEditorOnFinish = set; } /* * @see Wizard#createPages */ public void addPages() { super.addPages(); if (fPage == null) { fPage = new NewAnnotationLiteralWizardPage(); fPage.init(getSelection()); } addPage(fPage); } /* * (non-Javadoc) * * @see org.eclipse.jdt.internal.ui.wizards.NewElementWizard#canRunForked() */ protected boolean canRunForked() { return !fPage.isEnclosingTypeSelected(); } /* * (non-Javadoc) * * @see * org.eclipse.jdt.internal.ui.wizards.NewElementWizard#finishPage(org.eclipse * .core.runtime.IProgressMonitor) */ protected void finishPage(IProgressMonitor monitor) throws InterruptedException, CoreException { fPage.createType(monitor); // use the full progress monitor } /* * (non-Javadoc) * * @see org.eclipse.jface.wizard.IWizard#performFinish() */ public boolean performFinish() { warnAboutTypeCommentDeprecation(); boolean res = super.performFinish(); if (res) { IResource resource = fPage.getModifiedResource(); if (resource != null) { selectAndReveal(resource); if (fOpenEditorOnFinish) { openResource((IFile) resource); } } } return res; } /* * (non-Javadoc) * * @see * org.eclipse.jdt.internal.ui.wizards.NewElementWizard#getCreatedElement() */ public IJavaElement getCreatedElement() { return fPage.getCreatedType(); } }