addJavaBuildSpec( description );
if ( isJavaProject ) addJavaBuildSpec( description );
	private IProject createNewProject( )	{		if ( newProject != null )			return newProject;		// get a project handle		final IProject newProjectHandle = mainPage.getProjectHandle( );		// get a project descriptor		IPath newPath = null;		if ( !mainPage.useDefaults( ) )			newPath = mainPage.getLocationPath( );		IWorkspace workspace = ResourcesPlugin.getWorkspace( );		final IProjectDescription description = workspace				.newProjectDescription( newProjectHandle.getName( ) );		description.setLocation( newPath );		String[] natures = null;		if ( isJavaProject )			natures = new String[]{					"org.eclipse.birt.report.designer.ui.reportprojectnature",					JavaCore.NATURE_ID};		else			natures = new String[]{"org.eclipse.birt.report.designer.ui.reportprojectnature"};		description.setNatureIds( natures ); //$NON-NLS-1$		addJavaBuildSpec( description );		// create the new project operation		WorkspaceModifyOperation op = new WorkspaceModifyOperation( )		{			protected void execute( IProgressMonitor monitor )					throws CoreException			{				createProject( description, newProjectHandle, monitor );			}		};		// run the new project creation operation		try		{			getContainer( ).run( true, true, op );		}		catch ( InterruptedException e )		{			return null;		}		catch ( InvocationTargetException e )		{			// ie.- one of the steps resulted in a core exception			Throwable t = e.getTargetException( );			if ( t instanceof CoreException )			{				if ( ( (CoreException) t ).getStatus( ).getCode( ) == IResourceStatus.CASE_VARIANT_EXISTS )				{					MessageDialog							.openError(									getShell( ),									Messages											.getString( "NewReportProjectWizard.errorMessage" ), //$NON-NLS-1$									Messages											.getFormattedString(													"NewReportProjectWizard.caseVariantExistsError", new String[]{newProjectHandle.getName( )} ) //$NON-NLS-1$,							);				}				else				{					ErrorDialog							.openError(									getShell( ),									Messages											.getString( "NewReportProjectWizard.errorMessage" ), //$NON-NLS-1$									null, // no special message									( (CoreException) t ).getStatus( ) );				}			}			else			{				// CoreExceptions are handled above, but unexpected runtime				// exceptions and errors may still occur.				ExceptionHandler.handle( e );				MessageDialog						.openError(								getShell( ),								Messages										.getString( "NewReportProjectWizard.errorMessage" ), //$NON-NLS-1$								Messages										.getFormattedString(												"NewReportProjectWizard.internalError", new Object[]{t.getMessage( )} ) ); //$NON-NLS-1$			}			return null;		}		newProject = newProjectHandle;		return newProject;	}