/**
*
*/
package com.aptana.ide.projects;
import org.eclipse.core.resources.ICommand;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IProjectDescription;
import org.eclipse.core.resources.IProjectNature;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.NullProgressMonitor;
import com.aptana.ide.core.builder.UnifiedProjectBuilder;
/**
* A WebNature basic implementation
*
* @author Shalom G
* @author cwilliams
*/
public class WebNature implements IProjectNature
{
private IProject project;
/*
* (non-Javadoc)
* @see org.eclipse.core.resources.IProjectNature#configure()
*/
public void configure() throws CoreException
{
IProjectDescription desc = getProject().getDescription();
if (containsUnifiedBuilder(desc.getBuildSpec()))
return;
ICommand unifiedBuilderCommand = desc.newCommand();
unifiedBuilderCommand.setBuilderName(UnifiedProjectBuilder.BUILDER_ID);
int size = desc.getBuildSpec().length;
ICommand[] newBuildSpec = new ICommand[size + 1];
System.arraycopy(desc.getBuildSpec(), 0, newBuildSpec, 0, size);
newBuildSpec[size] = unifiedBuilderCommand;
desc.setBuildSpec(newBuildSpec);
getProject().setDescription(desc, new NullProgressMonitor());
}
private boolean containsUnifiedBuilder(ICommand[] builders)
{
for (ICommand command : builders)
{
if (command.getBuilderName().equals(UnifiedProjectBuilder.BUILDER_ID))
return true;
}
return false;
}
/*
* (non-Javadoc)
* @see org.eclipse.core.resources.IProjectNature#deconfigure()
*/
public void deconfigure() throws CoreException
{
// TODO Remove the unified project builder!
}
/*
* (non-Javadoc)
* @see org.eclipse.core.resources.IProjectNature#getProject()
*/
public IProject getProject()
{
return project;
}
/*
* (non-Javadoc)
* @see org.eclipse.core.resources.IProjectNature#setProject(org.eclipse.core.resources.IProject)
*/
public void setProject(IProject project)
{
this.project = project;
}
}