code: public boolean performFinish() {
  		final String containerName = getProjectName();
  		final IPath location = projectPage.useDefaults() ? null : projectPage.getLocationPath();
  
  		IRunnableWithProgress op = new IRunnableWithProgress() {
  			public void run(IProgressMonitor monitor) throws InvocationTargetException {
  				try {
  					doFinish(containerName, location, monitor);
  				} catch (CoreException e) {
  					throw new InvocationTargetException(e);
  				} finally {
  					monitor.done();
  				}
  			}
  		};
  		try {
  			getContainer().run(true, false, op);
  		} catch (InterruptedException e) {
  			return false;
  		} catch (InvocationTargetException e) {
  			Throwable realException = e.getTargetException();
  			MessageDialog.openError(getShell(), "Error", realException.getMessage());
  			return false;
  		}
  		return true;
  	}
docs: This method is called when 'Finish' button is pressed in the wizard. We
  will create an operation and run it using wizard as execution context.