/**
* Copyright (c) Red Hat, Inc., contributors and others 2013 - 2014. All rights reserved
*
* Licensed under the Eclipse Public License version 1.0, available at
* http://www.eclipse.org/legal/epl-v10.html
*/
package org.jboss.tools.forge.ui.internal.ext.wizards;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.Path;
import org.jboss.tools.forge.ui.internal.ext.context.UIContextImpl;
import org.jboss.tools.forge.ui.internal.ext.context.UISelectionImpl;
import org.jboss.tools.forge.ui.internal.jobs.ImportNewProjectsJob;
import org.jboss.tools.forge.ui.internal.jobs.RefreshInitialSelectionJob;
import org.jboss.tools.forge.ui.internal.jobs.ShowFinalSelectionJob;
import org.jboss.tools.forge.ui.internal.jobs.UpdateProjectConfigurationJob;
public class ForgeWizardHelper {
private ImportNewProjectsJob importNewProjectsJob;
private RefreshInitialSelectionJob refreshInitialSelectionJob;
private UpdateProjectConfigurationJob updateProjectConfigurationJob;
private ShowFinalSelectionJob showFinalSelectionJob;
public ForgeWizardHelper() {
initializeJobs();
}
private void initializeJobs() {
importNewProjectsJob = new ImportNewProjectsJob();
refreshInitialSelectionJob = new RefreshInitialSelectionJob();
updateProjectConfigurationJob = new UpdateProjectConfigurationJob();
showFinalSelectionJob = new ShowFinalSelectionJob();
importNewProjectsJob.setSuccessor(refreshInitialSelectionJob);
refreshInitialSelectionJob.setSuccessor(updateProjectConfigurationJob);
updateProjectConfigurationJob.setSuccessor(showFinalSelectionJob);
}
public void onFinish(final UIContextImpl context) {
refreshInitialSelectionJob.setContext(context);
showFinalSelectionJob.setContext(context);
importNewProjectsJob.schedule();
}
public void onCancel(UIContextImpl context) {
updateProjectConfigurationJob.setPomFile(null);
}
public void onCreate(UIContextImpl context) {
UISelectionImpl<?> selection = context.getInitialSelection();
if (selection != null) {
IResource resource = selection.getResource();
if (resource != null) {
updateProjectConfigurationJob.setPomFile(determinePomFile(selection.getResource()));
}
}
}
private IFile determinePomFile(IResource resource) {
IFile result = null;
IProject project = resource.getProject();
if (project != null) {
result = project.getFile(new Path("pom.xml"));
}
return result;
}
}