/** * 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.importer; import java.util.HashSet; import java.util.Set; import org.jboss.forge.addon.projects.Project; import org.jboss.forge.addon.projects.ProjectListener; import org.jboss.forge.addon.projects.facets.MetadataFacet; import org.jboss.forge.addon.resource.Resource; import org.jboss.tools.forge.ui.internal.ForgeUIPlugin; import org.jboss.tools.forge.ui.internal.ext.context.UIContextImpl; import org.jboss.tools.forge.ui.internal.ext.wizards.WizardListener; /** * A project listener that imports created projects into the Eclipse Workspace * * @author <a href="mailto:ggastald@redhat.com">George Gastaldi</a> * */ public enum ImportEclipseProjectListener implements ProjectListener, WizardListener { INSTANCE; private Set<Project> projects = new HashSet<>(); @Override public void projectCreated(Project project) { projects.add(project); } public boolean projectsAvailableForImport() { return !projects.isEmpty(); } public void doImport() { try { for (Project project : projects) { Resource<?> projectRoot = project.getRoot(); String baseDirPath = projectRoot.getParent() .getFullyQualifiedName(); String moduleLocation = projectRoot.getName(); String projectName = project.getFacet(MetadataFacet.class) .getProjectName(); ProjectImporter projectImporter = new ProjectImporter( baseDirPath, moduleLocation, projectName); projectImporter.importProject(); } } catch (Exception e) { ForgeUIPlugin.log(e); } finally { projects.clear(); } } @Override public void onFinish(UIContextImpl context) { doImport(); } @Override public void dispose() { projects.clear(); } }