package com.dubture.symfony.core.facet; import java.util.ArrayList; import java.util.Arrays; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IProjectDescription; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.php.internal.core.project.PHPNature; import org.eclipse.wst.common.project.facet.core.IDelegate; import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion; import com.dubture.symfony.core.builder.SymfonyNature; @SuppressWarnings("restriction") public class UninstallActionDelegate implements IDelegate { @Override public void execute(IProject project, IProjectFacetVersion version, Object object, IProgressMonitor monitor) throws CoreException { if (!project.hasNature(PHPNature.ID)) { return; } monitor.subTask("Uninstalling Symfony nature"); // remove the composer nature IProjectDescription desc = project.getDescription(); ArrayList<String> natures = new ArrayList<String>(Arrays.asList(desc.getNatureIds())); int index = natures.indexOf(SymfonyNature.NATURE_ID); if (index != -1) { natures.remove(index); } desc.setNatureIds(natures.toArray(new String[]{})); project.setDescription(desc, monitor); } }