introduce common base class ProjectWizard
diff --git a/plugins/org.eclipse.dltk.ruby.ui/src/org/eclipse/dltk/ruby/internal/ui/wizards/RubyNewProjectWizard.java b/plugins/org.eclipse.dltk.ruby.ui/src/org/eclipse/dltk/ruby/internal/ui/wizards/RubyNewProjectWizard.java
index d785a9d..e8e2d54 100644
--- a/plugins/org.eclipse.dltk.ruby.ui/src/org/eclipse/dltk/ruby/internal/ui/wizards/RubyNewProjectWizard.java
+++ b/plugins/org.eclipse.dltk.ruby.ui/src/org/eclipse/dltk/ruby/internal/ui/wizards/RubyNewProjectWizard.java
@@ -9,28 +9,18 @@
  *******************************************************************************/
 package org.eclipse.dltk.ruby.internal.ui.wizards;
 
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExecutableExtension;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.dltk.core.DLTKCore;
-import org.eclipse.dltk.core.IModelElement;
 import org.eclipse.dltk.ruby.core.RubyNature;
 import org.eclipse.dltk.ruby.internal.ui.RubyImages;
 import org.eclipse.dltk.ui.DLTKUIPlugin;
-import org.eclipse.dltk.ui.wizards.NewElementWizard;
+import org.eclipse.dltk.ui.wizards.ProjectWizard;
 import org.eclipse.dltk.ui.wizards.ProjectWizardFirstPage;
 import org.eclipse.dltk.ui.wizards.ProjectWizardSecondPage;
-import org.eclipse.ui.INewWizard;
-import org.eclipse.ui.wizards.newresource.BasicNewProjectResourceWizard;
 
-public class RubyNewProjectWizard extends NewElementWizard implements
-		INewWizard, IExecutableExtension {
+public class RubyNewProjectWizard extends ProjectWizard {
 	public static final String WIZARD_ID = "org.eclipse.dltk.ruby.wizards.newproject"; //$NON-NLS-1$
 
 	private ProjectWizardFirstPage fFirstPage;
 	private ProjectWizardSecondPage fSecondPage;
-	private IConfigurationElement fConfigElement;
 
 	public RubyNewProjectWizard() {
 		setDefaultPageImageDescriptor(RubyImages.DESC_WIZBAN_PROJECT_CREATION);
@@ -68,35 +58,4 @@
 		addPage(fSecondPage);
 	}
 
-	protected void finishPage(IProgressMonitor monitor)
-			throws InterruptedException, CoreException {
-		fSecondPage.performFinish(monitor); // use the full progress monitor
-	}
-
-	public boolean performFinish() {
-		boolean res = super.performFinish();
-		if (res) {
-			BasicNewProjectResourceWizard.updatePerspective(fConfigElement);
-			selectAndReveal(fSecondPage.getScriptProject().getProject());
-		}
-		return res;
-	}
-
-	/*
-	 * Stores the configuration element for the wizard. The config element will
-	 * be used in <code>performFinish</code> to set the result perspective.
-	 */
-	public void setInitializationData(IConfigurationElement cfig,
-			String propertyName, Object data) {
-		fConfigElement = cfig;
-	}
-
-	public boolean performCancel() {
-		fSecondPage.performCancel();
-		return super.performCancel();
-	}
-
-	public IModelElement getCreatedElement() {
-		return DLTKCore.create(fFirstPage.getProjectHandle());
-	}
 }