X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/wizards/NewProjectCreationWizard.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/wizards/NewProjectCreationWizard.java index 4378e2f..28ce603 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/wizards/NewProjectCreationWizard.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/wizards/NewProjectCreationWizard.java @@ -1,19 +1,21 @@ package net.sourceforge.phpeclipse.wizards; import java.lang.reflect.InvocationTargetException; +import java.net.URI; -import net.sourceforge.phpeclipse.PHPCore; +import net.sourceforge.phpdt.core.JavaCore; +import net.sourceforge.phpdt.ui.actions.OpenPHPPerspectiveAction; import net.sourceforge.phpeclipse.PHPeclipsePlugin; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IProjectDescription; +import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IWorkspace; +import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IConfigurationElement; import org.eclipse.core.runtime.IExecutableExtension; -import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.SubProgressMonitor; import org.eclipse.jface.operation.IRunnableWithProgress; import org.eclipse.ui.INewWizard; @@ -22,59 +24,75 @@ import org.eclipse.ui.dialogs.WizardNewProjectCreationPage; import org.eclipse.ui.wizards.newresource.BasicNewProjectResourceWizard; import org.eclipse.ui.wizards.newresource.BasicNewResourceWizard; -public class NewProjectCreationWizard extends BasicNewResourceWizard implements INewWizard, IExecutableExtension { +public class NewProjectCreationWizard extends BasicNewResourceWizard implements + INewWizard, IExecutableExtension { protected WizardNewProjectCreationPage projectPage; + protected IConfigurationElement configurationElement; + protected IProject newProject; - + public NewProjectCreationWizard() { - setWindowTitle(PHPWizardMessages.getString("NewProjectCreationWizard.windowTitle")); + setWindowTitle(PHPWizardMessages + .getString("NewProjectCreationWizard.windowTitle")); } public boolean performFinish() { - IRunnableWithProgress projectCreationOperation = new WorkspaceModifyDelegatingOperation(getProjectCreationRunnable()); + IRunnableWithProgress projectCreationOperation = new WorkspaceModifyDelegatingOperation( + getProjectCreationRunnable()); try { getContainer().run(false, true, projectCreationOperation); - } catch (Exception e) { + } catch (Exception e) { PHPeclipsePlugin.log(e); return false; } BasicNewProjectResourceWizard.updatePerspective(configurationElement); selectAndReveal(newProject); - + // open the PHP perspective + new OpenPHPPerspectiveAction().run(); return true; } protected IRunnableWithProgress getProjectCreationRunnable() { return new IRunnableWithProgress() { - public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException { + public void run(IProgressMonitor monitor) + throws InvocationTargetException, InterruptedException { int remainingWorkUnits = 10; - monitor.beginTask(PHPWizardMessages.getString("NewProjectCreationWizard.projectCreationMessage"), remainingWorkUnits); + monitor + .beginTask( + PHPWizardMessages + .getString("NewProjectCreationWizard.projectCreationMessage"), + remainingWorkUnits); IWorkspace workspace = PHPeclipsePlugin.getWorkspace(); - newProject = projectPage.getProjectHandle(); + String projectName = projectPage.getProjectHandle().getName(); + newProject = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName); + IProjectDescription description = workspace + .newProjectDescription(projectName); - IProjectDescription description = workspace.newProjectDescription(newProject.getName()); - IPath path = Platform.getLocation(); - IPath customPath = projectPage.getLocationPath(); - if (!path.equals(customPath)) { - path = customPath; - description.setLocation(path); + URI uriPath = (!projectPage.useDefaults()) ? projectPage + .getLocationURI() : null; + if (uriPath != null) { + description.setLocationURI(uriPath); } try { if (!newProject.exists()) { - newProject.create(description, new SubProgressMonitor(monitor, 1)); + newProject.create(description, new SubProgressMonitor( + monitor, 1)); remainingWorkUnits--; } if (!newProject.isOpen()) { - newProject.open(new SubProgressMonitor(monitor, 1)); + newProject.open(IResource.BACKGROUND_REFRESH, new SubProgressMonitor(monitor, 1)); remainingWorkUnits--; } - PHPCore.addPHPNature(newProject, new SubProgressMonitor(monitor, remainingWorkUnits)); + JavaCore.addPHPNature(newProject, new SubProgressMonitor( + monitor, remainingWorkUnits)); + } catch (CoreException e) { + System.out.println(e); throw new InvocationTargetException(e); } finally { monitor.done(); @@ -86,14 +104,18 @@ public class NewProjectCreationWizard extends BasicNewResourceWizard implements public void addPages() { super.addPages(); - projectPage = new WizardNewProjectCreationPage(PHPWizardMessages.getString("WizardNewProjectCreationPage.pageName")); - projectPage.setTitle(PHPWizardMessages.getString("WizardNewProjectCreationPage.pageTitle")); - projectPage.setDescription(PHPWizardMessages.getString("WizardNewProjectCreationPage.pageDescription")); + projectPage = new WizardNewProjectCreationPage(PHPWizardMessages + .getString("WizardNewProjectCreationPage.pageName")); + projectPage.setTitle(PHPWizardMessages + .getString("WizardNewProjectCreationPage.pageTitle")); + projectPage.setDescription(PHPWizardMessages + .getString("WizardNewProjectCreationPage.pageDescription")); addPage(projectPage); } - public void setInitializationData(IConfigurationElement config, String propertyName, Object data) throws CoreException { + public void setInitializationData(IConfigurationElement config, + String propertyName, Object data) throws CoreException { configurationElement = config; }