// ============================================================================
//
// Copyright (C) 2006-2012 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.repository.ui.wizards.newproject;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.wizard.Wizard;
import org.talend.commons.exception.PersistenceException;
import org.talend.commons.ui.runtime.exception.MessageBoxExceptionHandler;
import org.talend.commons.ui.runtime.image.ECoreImage;
import org.talend.commons.ui.runtime.image.ImageProvider;
import org.talend.core.CorePlugin;
import org.talend.core.context.Context;
import org.talend.core.context.RepositoryContext;
import org.talend.core.model.general.Project;
import org.talend.core.repository.model.ProxyRepositoryFactory;
import org.talend.core.repository.utils.ProjectHelper;
import org.talend.repository.i18n.Messages;
import org.talend.repository.model.IProxyRepositoryFactory;
/**
* Wizard for the creation of a new project. <br/>
*
* $Id: NewProjectWizard.java 78660 2012-02-22 06:33:45Z plv $
*
*/
public class NewProjectWizard extends Wizard {
/** Main page. */
private NewProjectWizardPage mainPage;
private Project project;
private Project[] projects;
private String defaultProjectName;
/**
* Constructs a new NewProjectWizard.
*
* @param author Project author.
* @param server
* @param password
* @param port2
*/
public NewProjectWizard(Project[] projects) {
super();
setDefaultPageImageDescriptor(ImageProvider.getImageDesc(ECoreImage.PROJECT_WIZ));
this.projects = projects;
}
/**
* @see org.eclipse.jface.wizard.Wizard#addPages()
*/
@Override
public void addPages() {
mainPage = new NewProjectWizardPage();
mainPage.setProjects(projects);
addPage(mainPage);
setWindowTitle(Messages.getString("NewProjectWizard.windowTitle")); //$NON-NLS-1$
}
/**
* @see org.eclipse.jface.wizard.Wizard#performFinish()
*/
@Override
public boolean performFinish() {
IProxyRepositoryFactory repositoryFactory = ProxyRepositoryFactory.getInstance();
Context ctx = CorePlugin.getContext();
RepositoryContext repositoryContext = (RepositoryContext) ctx.getProperty(Context.REPOSITORY_CONTEXT_KEY);
try {
Project projectInfor = ProjectHelper.createProject(mainPage.getName().trim().replace(' ', '_'),
mainPage.getDescription(), mainPage.getLanguage(), repositoryContext.getUser());
project = repositoryFactory.createProject(projectInfor);
return true;
} catch (PersistenceException e) {
MessageDialog.openError(getShell(), Messages.getString("NewProjectWizard.failureTitle"), Messages //$NON-NLS-1$
.getString("NewProjectWizard.failureText")); //$NON-NLS-1$ //$NON-NLS-2$
MessageBoxExceptionHandler.process(e);
return false;
}
}
/**
* Getter for project.
*
* @return the project
*/
public Project getProject() {
return this.project;
}
public String getDefaultProjectName() {
return this.defaultProjectName;
}
public void setDefaultProjectName(String defaultProjectName) {
this.defaultProjectName = defaultProjectName;
}
}