Search in sources :

Example 1 with WCSize

use of com.sun.webkit.graphics.WCSize 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();
            });
        }
    }
}
Also used : WCSize(com.sun.webkit.graphics.WCSize) WebPage(com.sun.webkit.WebPage) Element(org.w3c.dom.Element) Document(org.w3c.dom.Document) WebEngine(javafx.scene.web.WebEngine)

Aggregations

WebPage (com.sun.webkit.WebPage)1 WCSize (com.sun.webkit.graphics.WCSize)1 WebEngine (javafx.scene.web.WebEngine)1 Document (org.w3c.dom.Document)1 Element (org.w3c.dom.Element)1