package org.asciidoc.intellij.editor.javafx;
import com.intellij.openapi.editor.Document;
import org.asciidoc.intellij.editor.AsciiDocHtmlPanel;
import org.asciidoc.intellij.editor.AsciiDocHtmlPanelProvider;
import org.jetbrains.annotations.NotNull;
import java.net.URL;
import java.nio.file.Path;
public class JavaFxHtmlPanelProvider extends AsciiDocHtmlPanelProvider {
static {
URL.setURLStreamHandlerFactory(new LocalfileURLStreamHandlerFactory());
}
@NotNull
@Override
public AsciiDocHtmlPanel createHtmlPanel(Document document, Path imagesPath) {
return new JavaFxHtmlPanel(document, imagesPath);
}
@NotNull
@Override
public AvailabilityInfo isAvailable() {
/* trying to determine 64bit platforms, due to problem with OpenJDK x86 on Windows */
String architecture = System.getProperty("os.arch");
if (!architecture.equals("amd64") // Windows und Linux amd64 = 64bit
&& !architecture.equals("x86_64") // Mac Intel x86_64 = 64bit
) {
return AvailabilityInfo.UNAVAILABLE;
}
try {
if (Class.forName("javafx.scene.web.WebView", false, getClass().getClassLoader()) != null) {
return AvailabilityInfo.AVAILABLE;
}
}
catch (ClassNotFoundException ignored) {
}
return AvailabilityInfo.UNAVAILABLE;
}
@NotNull
@Override
public ProviderInfo getProviderInfo() {
return new ProviderInfo("JavaFX WebView", JavaFxHtmlPanelProvider.class.getName());
}
}