+++ /dev/null
-package net.sourceforge.phpeclipse.wizards;
-
-import java.lang.reflect.InvocationTargetException;
-
-import net.sourceforge.phpeclipse.PHPeclipsePlugin;
-import net.sourceforge.phpeclipse.PHPCore;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IWorkspace;
-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;
-import org.eclipse.ui.actions.WorkspaceModifyDelegatingOperation;
-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 {
- protected WizardNewProjectCreationPage projectPage;
- protected IConfigurationElement configurationElement;
- protected IProject newProject;
-
- public NewProjectCreationWizard() {
- setWindowTitle(PHPWizardMessages.getString("NewProjectCreationWizard.windowTitle"));
- }
-
- public boolean performFinish() {
- IRunnableWithProgress projectCreationOperation = new WorkspaceModifyDelegatingOperation(getProjectCreationRunnable());
-
- try {
- getContainer().run(false, true, projectCreationOperation);
- } catch (Exception e) {
- PHPeclipsePlugin.log(e);
- return false;
- }
-
- BasicNewProjectResourceWizard.updatePerspective(configurationElement);
- selectAndReveal(newProject);
-
- return true;
- }
-
- protected IRunnableWithProgress getProjectCreationRunnable() {
- return new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- int remainingWorkUnits = 10;
- monitor.beginTask(PHPWizardMessages.getString("NewProjectCreationWizard.projectCreationMessage"), remainingWorkUnits);
-
- IWorkspace workspace = PHPeclipsePlugin.getWorkspace();
- newProject = projectPage.getProjectHandle();
-
- IProjectDescription description = workspace.newProjectDescription(newProject.getName());
- IPath path = Platform.getLocation();
- IPath customPath = projectPage.getLocationPath();
- if (!path.equals(customPath)) {
- path = customPath;
- description.setLocation(path);
- }
-
- try {
- if (!newProject.exists()) {
- newProject.create(description, new SubProgressMonitor(monitor, 1));
- remainingWorkUnits--;
- }
- if (!newProject.isOpen()) {
- newProject.open(new SubProgressMonitor(monitor, 1));
- remainingWorkUnits--;
- }
- PHPCore.addPHPNature(newProject, new SubProgressMonitor(monitor, remainingWorkUnits));
- } catch (CoreException e) {
- throw new InvocationTargetException(e);
- } finally {
- monitor.done();
- }
- }
- };
- }
-
- public void addPages() {
- super.addPages();
-
- 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 {
- configurationElement = config;
- }
-
-}
\ No newline at end of file