use of com.sun.webkit.WebPage in project intellij-community by JetBrains.
the class IpnbJfxUtils method adjustHeight.
private static void adjustHeight(final WebView webView, final JFXPanel javafxPanel, String source) {
final WebEngine engine = webView.getEngine();
final Document document = engine.getDocument();
if (document != null) {
final Element mydiv = document.getElementById("mydiv");
if (mydiv != null) {
final WebPage webPage = Accessor.getPageFor(engine);
final WCSize wcsize = webPage.getContentSize(webPage.getMainFrame());
final int height = wcsize.getIntHeight();
int width = wcsize.getIntWidth();
if (width < javafxPanel.getWidth())
width = javafxPanel.getWidth();
if (height <= 0 || width <= 0)
return;
webView.setPrefWidth(wcsize.getWidth());
webView.setMinWidth(wcsize.getWidth());
int count = 1;
if (source.contains("```")) {
count += 1;
}
boolean inMath = false;
if (source.contains("\\frac")) {
count += 1;
}
while (source.contains("$$")) {
if (inMath) {
final String substring = source.substring(0, source.indexOf("$$") + 2);
count += StringUtil.countNewLines(substring);
for (int i = 0, len = substring.length(); i < len; ++i) {
if (substring.charAt(i) == '\\' && i + 1 < substring.length() && substring.charAt(i + 1) == '\\') {
count++;
i += 1;
}
}
}
inMath = !inMath;
source = source.substring(source.indexOf("$$") + 2);
}
int finalHeight = height + count * EditorColorsManager.getInstance().getGlobalScheme().getEditorFontSize();
int finalWidth = width;
UIUtil.invokeLaterIfNeeded(() -> {
final Dimension size = new Dimension(finalWidth, finalHeight);
javafxPanel.setPreferredSize(size);
javafxPanel.setMinimumSize(size);
javafxPanel.revalidate();
});
}
}
}