Temporarily replace new Project Wizard until errors in old one investigated..
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpeclipse / wizards / TempnewPHPProject.java
diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/wizards/TempnewPHPProject.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/wizards/TempnewPHPProject.java
new file mode 100644 (file)
index 0000000..ec03535
--- /dev/null
@@ -0,0 +1,93 @@
+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();
+                       }
+               }
+       }
+}