| /******************************************************************************* |
| * Copyright (c) 2014, 2015 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.jdt.internal.launching; |
| |
| import java.io.File; |
| import java.net.MalformedURLException; |
| import java.net.URL; |
| |
| import org.eclipse.core.runtime.IPath; |
| import org.eclipse.core.runtime.Path; |
| import org.eclipse.jdt.launching.ILibraryLocationResolver; |
| |
| public class JavaFxLibraryResolver implements ILibraryLocationResolver { |
| |
| public static final String JFXRT_JAR = "jfxrt.jar"; //$NON-NLS-1$ |
| private static final String JAVAFX_SRC_ZIP = "javafx-src.zip"; //$NON-NLS-1$ |
| private static final String JAVAFX_8_JAVADOC = "http://docs.oracle.com/javase/8/javafx/api/"; //$NON-NLS-1$ |
| |
| private static boolean isJavaFx(IPath libraryPath) { |
| return JFXRT_JAR.equals(libraryPath.lastSegment()); |
| } |
| |
| @Override |
| public IPath getPackageRoot(IPath libraryPath) { |
| return Path.EMPTY; |
| } |
| |
| @Override |
| public IPath getSourcePath(IPath libraryPath) { |
| if (isJavaFx(libraryPath)) { |
| File parent = libraryPath.toFile().getParentFile(); |
| while (parent != null) { |
| File parentsrc = new File(parent, JAVAFX_SRC_ZIP); |
| if (parentsrc.isFile()) { |
| return new Path(parentsrc.getPath()); |
| } |
| parent = parent.getParentFile(); |
| } |
| } |
| return Path.EMPTY; |
| } |
| |
| @Override |
| public URL getJavadocLocation(IPath libraryPath) { |
| if (isJavaFx(libraryPath)) { |
| /* |
| * TODO: We don't know if JavaSE-9 will ship JavaFX in the ext folder as well. If yes, then we have to use something like |
| * JavaRuntime#getVMInstall(IPath) and IVMInstall2#getJavaVersion() to determine the right Javadoc URL. |
| */ |
| try { |
| return new URL(JAVAFX_8_JAVADOC); |
| } |
| catch (MalformedURLException e) { |
| LaunchingPlugin.log(e); |
| } |
| } |
| return null; |
| } |
| |
| @Override |
| public URL getIndexLocation(IPath libraryPath) { |
| return null; |
| } |
| } |