/******************************************************************************* * Copyright (c) 2004, 2008 QNX Software Systems and others. * All rights reserved. This program and the accompanying materials * are 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: * QNX Software Systems - initial API and implementation * Anton Leherbauer (Wind River Systems) *******************************************************************************/ package org.eclipse.cdt.internal.ui.wizards.filewizard; import org.eclipse.cdt.core.model.ITranslationUnit; import org.eclipse.cdt.internal.ui.CPluginImages; import org.eclipse.cdt.internal.ui.wizards.NewElementWizard; import org.eclipse.cdt.ui.CUIPlugin; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; public abstract class AbstractFileCreationWizard extends NewElementWizard { protected AbstractFileCreationWizardPage fPage = null; public AbstractFileCreationWizard() { super(); setDefaultPageImageDescriptor(CPluginImages.DESC_WIZBAN_NEW_FILE); setDialogSettings(CUIPlugin.getDefault().getDialogSettings()); setWindowTitle(NewFileWizardMessages.AbstractFileCreationWizard_title); } /* * (non-Javadoc) * * @see org.eclipse.cdt.internal.ui.wizards.NewElementWizard#canRunForked() */ @Override protected boolean canRunForked() { return true; } /* * (non-Javadoc) * * @see org.eclipse.cdt.internal.ui.wizards.NewElementWizard#finishPage(org.eclipse.core.runtime.IProgressMonitor) */ @Override protected void finishPage(IProgressMonitor monitor) throws InterruptedException, CoreException { fPage.createFile(monitor); // use the full progress monitor } /* * (non-Javadoc) * * @see org.eclipse.jface.wizard.IWizard#performFinish() */ @Override public boolean performFinish() { boolean res = super.performFinish(); if (res) { //TODO need prefs option for opening editor boolean openInEditor = true; ITranslationUnit headerTU = fPage.getCreatedFileTU(); if (headerTU != null) { IResource resource= headerTU.getResource(); selectAndReveal(resource); if (openInEditor) { openResource((IFile) resource); } } } return res; } }