package net.sourceforge.phpeclipse.wizards; import java.lang.reflect.InvocationTargetException; import net.sourceforge.phpdt.internal.ui.util.ExceptionHandler; import net.sourceforge.phpeclipse.PHPCore; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IProjectDescription; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IConfigurationElement; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.Platform; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.INewWizard; import org.eclipse.ui.dialogs.WizardNewProjectCreationPage; import org.eclipse.ui.wizards.newresource.BasicNewProjectResourceWizard; import org.eclipse.ui.wizards.newresource.BasicNewResourceWizard; public class TempnewPHPProject extends BasicNewResourceWizard implements INewWizard { /*This class has been added to cvs to provide a project page that * works correctly and doesn't freezde while i investigate the * errors completely */ private WizardNewProjectCreationPage phpProjPage; private IConfigurationElement fConfigElement; public TempnewPHPProject() { setNeedsProgressMonitor(true); setWindowTitle("New Project creation"); //$NON-NLS-1$ } public void addPages() { super.addPages(); phpProjPage= new WizardNewProjectCreationPage("NewProjectCreationWizard"); //$NON-NLS-1$ phpProjPage.setTitle(PHPWizardMessages.getString("WizardNewProjectCreationPage.pageTitle")); //$NON-NLS-1$ phpProjPage.setDescription(PHPWizardMessages.getString("WizardNewProjectCreationPage.pageDescription")); //$NON-NLS-1$ addPage(phpProjPage); } public void setInitializationData(IConfigurationElement cfig, String propertyName, Object data) { fConfigElement= cfig; } protected void initializeDefaultPageImageDescriptor() { // not used yet } protected void finishPage() throws InterruptedException, CoreException { createProject(phpProjPage.getProjectHandle(), phpProjPage.getLocationPath(), new NullProgressMonitor()); BasicNewProjectResourceWizard.updatePerspective(fConfigElement); selectAndReveal(phpProjPage.getProjectHandle()); } protected void handleFinishException(Shell shell, InvocationTargetException e) { ExceptionHandler.handle(e, getShell(), "Error title", "Error message"); } public boolean performFinish() { try { finishPage(); } catch (InterruptedException e) { } catch (CoreException e) { } return true; } public void createProject(IProject project, IPath locationPath, IProgressMonitor monitor) throws CoreException { try { if (!project.exists()) { IProjectDescription desc= project.getWorkspace().newProjectDescription(project.getName()); if (Platform.getLocation().equals(locationPath)) { locationPath= null; } desc.setLocation(locationPath); project.create(desc, monitor); monitor= null; } if (!project.isOpen()) { project.open(monitor); monitor= null; } PHPCore.addPHPNature(project, new NullProgressMonitor()); } finally { if (monitor != null) { monitor.done(); } } } }