package fr.inria.diverse.k3.ui.tools.classpath; import java.util.ArrayList; import org.eclipse.core.resources.IFolder; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.Path; import org.eclipse.jdt.core.IClasspathEntry; import org.eclipse.jdt.core.IJavaProject; import org.eclipse.jdt.core.IPackageFragmentRoot; import org.eclipse.jdt.core.JavaCore; import fr.inria.diverse.k3.ui.Activator; public class ManageClasspathPlugin extends ManageClasspath { private boolean useSLE; public ManageClasspathPlugin(boolean useSLE) { super(); this.useSLE = useSLE; } @Override public void setClasspath (IProject project, IProgressMonitor monitor) { try { IJavaProject javaProject = (IJavaProject)project.getNature(JavaCore.NATURE_ID); IFolder sourceFolder = project.getFolder("src"); try { sourceFolder.create(true, true, monitor); } catch (Exception ex) {} ArrayList<IClasspathEntry> newClassPathArrayList = new ArrayList<IClasspathEntry>(); IPackageFragmentRoot root = javaProject.getPackageFragmentRoot(sourceFolder); newClassPathArrayList.add( JavaCore.newSourceEntry(root.getPath())); newClassPathArrayList.add(JavaCore.newContainerEntry(new Path("org.eclipse.jdt.launching.JRE_CONTAINER"))); newClassPathArrayList.add(JavaCore.newContainerEntry(new Path("org.eclipse.pde.core.requiredPlugins"))); if (useSLE) newClassPathArrayList.add(JavaCore.newSourceEntry(javaProject.getPackageFragmentRoot(project.getFolder("src-gen")).getPath())); // convert the array to the appropriate table IClasspathEntry[] newClassPath = new IClasspathEntry[newClassPathArrayList.size()]; javaProject.setRawClasspath(newClassPathArrayList.toArray(newClassPath), monitor); } catch (Exception e) { Activator.logErrorMessage(e.getMessage(), e); } } }