/*******************************************************************************
* 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();
}
}