package at.bestsolution.efxclipse.tooling.jdt.core.internal; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; import org.eclipse.jdt.core.ClasspathContainerInitializer; import org.eclipse.jdt.core.IClasspathContainer; import org.eclipse.jdt.core.IClasspathEntry; import org.eclipse.jdt.core.IJavaProject; import org.eclipse.jdt.core.JavaCore; import at.bestsolution.efxclipse.tooling.jdt.core.JavaFXCore; public class JavaFXClasspathContainerInitializer extends ClasspathContainerInitializer { private static class JavaFXContainer implements IClasspathContainer { private final IClasspathEntry[] fEntries; private final IPath fPath; public JavaFXContainer(IPath path, IClasspathEntry[] entries) { fPath= path; fEntries= entries; } public IClasspathEntry[] getClasspathEntries() { return fEntries; } public String getDescription() { return "JavaFX SDK"; } public int getKind() { return IClasspathContainer.K_APPLICATION; } public IPath getPath() { return fPath; } } @Override public void initialize(IPath containerPath, IJavaProject project) throws CoreException { if (isValidJUnitContainerPath(containerPath)) { JavaFXContainer container= getNewContainer(containerPath); JavaCore.setClasspathContainer(containerPath, new IJavaProject[] { project }, new IClasspathContainer[] { container }, null); } } private static JavaFXContainer getNewContainer(IPath containerPath) { IClasspathEntry entry= null; entry= BuildPathSupport.getJavaFXLibraryEntry(); IClasspathEntry[] entries; if (entry == null) { entries= new IClasspathEntry[] { }; } else { entries= new IClasspathEntry[] { entry }; } return new JavaFXContainer(containerPath, entries); } private static boolean isValidJUnitContainerPath(IPath path) { return path != null && JavaFXCore.JAVAFX_CONTAINER_ID.equals(path.segment(0)); } }