/*
* This software is Copyright 2005,2006,2007,2008 Langdale Consultants.
* Langdale Consultants can be contacted at: http://www.langdale.com.au
*/
package au.com.langdale.cimtoole.wizards;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IWorkspaceRunnable;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.wizard.Wizard;
import org.eclipse.ui.INewWizard;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.dialogs.WizardNewProjectCreationPage;
import au.com.langdale.cimtoole.project.Task;
import au.com.langdale.util.Jobs;
public class NewProject extends Wizard implements INewWizard {
public NewProject() {
setNeedsProgressMonitor(true);
}
private WizardNewProjectCreationPage main = new WizardNewProjectCreationPage("main") {
@Override
protected boolean validatePage() {
if( !super.validatePage())
return false;
schema.setNewProject(main.getProjectHandle());
return true;
}
};
private SchemaWizardPage schema = new SchemaWizardPage(true);
public void init(IWorkbench workbench, IStructuredSelection selection) {
main.setTitle("New CIMTool Project");
main.setDescription("Create a new CIMTool project and import a copy of the CIM.");
schema.setTitle("Import Initial Schema");
schema.setDescription("Import an XMI or OWL base schema.");
}
@Override
public void addPages() {
addPage(main);
addPage(schema);
}
@Override
public boolean performFinish() {
IWorkspaceRunnable job = Task.createProject(main.getProjectHandle(), main.useDefaults()? null: main.getLocationURI());
String pathname = schema.getPathname();
if( pathname.length() != 0) {
IFile schemaFile = schema.getFile();
String namespace = schema.getNamespace();
job = Task.chain( job, Task.importSchema(schemaFile, pathname, namespace));
}
return Jobs.runInteractive(job, ResourcesPlugin.getWorkspace().getRoot(), getContainer(), getShell());
}
}