/**
* Copyright (c) 2005-2006 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM - Initial API and implementation
*/
package org.eclipse.emf.importer.ui;
import java.util.List;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Platform;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.dialogs.WizardNewProjectCreationPage;
import org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry;
import org.eclipse.emf.importer.ImporterPlugin;
import org.eclipse.emf.importer.ui.contribution.IModelImporterWizard;
import org.eclipse.emf.importer.ui.contribution.ModelImporterDescriptor;
import org.eclipse.emf.importer.ui.contribution.ModelImporterManager;
/**
* @since 2.1.0
*/
public class EMFProjectWizard extends EMFModelWizard
{
protected IPath projectLocation;
protected IPath projectPath;
protected WizardNewProjectCreationPage newProjectCreationPage;
public EMFProjectWizard()
{
super();
setWindowTitle(ImporterPlugin.INSTANCE.getString("_UI_EMFProjectWizard_title"));
}
@Override
protected ImageDescriptor getDefaultImageDescriptor()
{
return ExtendedImageRegistry.INSTANCE.getImageDescriptor(ImporterPlugin.INSTANCE.getImage("full/wizban/NewEMFProject"));
}
@Override
public void addPages()
{
newProjectCreationPage = new WizardNewProjectCreationPage("NewProjectCreationPage")
{
@Override
protected boolean validatePage()
{
if (super.validatePage())
{
IPath locationPath = getLocationPath();
projectLocation = Platform.getLocation().equals(locationPath) ? null : locationPath;
projectPath = getProjectHandle().getFullPath();
return true;
}
else
{
return false;
}
}
@Override
public void createControl(Composite parent)
{
super.createControl(parent);
createWorkingSetGroup
((Composite) getControl(),
selection,
new String[] { "org.eclipse.jdt.ui.JavaWorkingSetPage", "org.eclipse.pde.ui.pluginWorkingSet", "org.eclipse.ui.resourceWorkingSetPage"});
}
};
newProjectCreationPage.setTitle(ImporterPlugin.INSTANCE.getString("_UI_EMFProjectWizard_name"));
newProjectCreationPage.setDescription(ImporterPlugin.INSTANCE.getString("_UI_CreateEMFProject_label"));
addPage(newProjectCreationPage);
if (defaultPath != null)
{
String path = defaultPath.removeLastSegments(defaultPath.segmentCount()-1).toString();
newProjectCreationPage.setInitialProjectName(path.charAt(0) == '/' ? path.substring(1) : path);
newProjectCreationPage.setPageComplete(newProjectCreationPage.isPageComplete());
}
addSelectionPage();
}
@Override
protected List<ModelImporterDescriptor> getModelImporterDescriptors()
{
return ModelImporterManager.INSTANCE.filterModelImporterDescriptors(ModelImporterDescriptor.TYPE_PROJECT);
}
@Override
protected void adjustModelImporterWizard(IModelImporterWizard modelImporterWizard, ModelImporterDescriptor modelImporterDescriptor)
{
super.adjustModelImporterWizard(modelImporterWizard, modelImporterDescriptor);
if (isValidNewValue(projectLocation, modelImporterWizard.getGenModelProjectLocation()))
{
modelImporterWizard.setGenModelProjectLocation(projectLocation);
}
if (isValidNewValue(projectPath, modelImporterWizard.getGenModelProjectPath()))
{
modelImporterWizard.setGenModelProjectPath(projectPath);
}
if (isValidNewValue(newProjectCreationPage.getSelectedWorkingSets(), modelImporterWizard.getWorkingSets()))
{
modelImporterWizard.setWorkingSets(newProjectCreationPage.getSelectedWorkingSets());
}
}
}