/******************************************************************************* * Copyright (c) 2012 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.core.IType; import org.eclipse.jdt.internal.ui.wizards.NewElementWizard; import org.eclipse.jdt.ui.wizards.NewTypeWizardPage; import org.jboss.tools.common.model.ui.wizards.INewClassWizard; import org.jboss.tools.common.model.ui.wizards.NewTypeWizardAdapter; public class NewCDIElementWizard extends NewElementWizard implements INewClassWizard { protected boolean fOpenEditorOnFinish = true; protected NewTypeWizardPage fPage; protected NewTypeWizardAdapter adapter; public NewCDIElementWizard() {} public void setAdapter(NewTypeWizardAdapter adapter) { this.adapter = adapter; } public boolean isOpenEditorAfterFinish() { return fOpenEditorOnFinish; } public void setOpenEditorAfterFinish(boolean set) { this.fOpenEditorOnFinish = set; } public String getQualifiedClassName() { IType type = fPage.getCreatedType(); return type == null ? "" : type.getFullyQualifiedName(); } protected void initPageFromAdapter() { if(adapter != null) { fPage.setPackageFragmentRoot(adapter.getPackageFragmentRoot(), true); fPage.setPackageFragment(adapter.getPackageFragment(), true); fPage.setTypeName(adapter.getTypeName(), true); } } /* (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.jdt.internal.ui.wizards.NewElementWizard#getCreatedElement() */ public IJavaElement getCreatedElement() { return fPage.getCreatedType(); } /* (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; } }