diff --git a/designer-base/src/main/java/com/fr/design/ui/ModernUIPane.java b/designer-base/src/main/java/com/fr/design/ui/ModernUIPane.java index 09fa2bbc0..16b09392f 100644 --- a/designer-base/src/main/java/com/fr/design/ui/ModernUIPane.java +++ b/designer-base/src/main/java/com/fr/design/ui/ModernUIPane.java @@ -196,13 +196,17 @@ public class ModernUIPane extends BasicPane { private ModernUIPane pane; public Builder() { - this(BrowserType.HEAVYWEIGHT); } public Builder(BrowserType browserType) { this.pane = new ModernUIPane<>(browserType); } + public Builder init() { + this.pane = new ModernUIPane<>(BrowserType.HEAVYWEIGHT); + return this; + } + public Builder prepare(ScriptContextListener contextListener) { pane.browser.addScriptContextListener(contextListener); return this; diff --git a/designer-base/src/main/java/com/fr/design/ui/compatible/ModernUIPaneFactory.java b/designer-base/src/main/java/com/fr/design/ui/compatible/ModernUIPaneFactory.java index 68b8950f7..e6b13ce13 100644 --- a/designer-base/src/main/java/com/fr/design/ui/compatible/ModernUIPaneFactory.java +++ b/designer-base/src/main/java/com/fr/design/ui/compatible/ModernUIPaneFactory.java @@ -13,9 +13,9 @@ public class ModernUIPaneFactory { public static ModernUIPane.Builder modernUIPaneBuilder() { if (isV7()) { - return new NewModernUIPane.Builder<>(); + return new NewModernUIPane.Builder().init(); } else { - return new ModernUIPane.Builder<>(); + return new ModernUIPane.Builder().init(); } } diff --git a/designer-base/src/main/java/com/fr/design/ui/compatible/NewModernUIPane.java b/designer-base/src/main/java/com/fr/design/ui/compatible/NewModernUIPane.java index 0b56fc0ad..3c30afbf0 100644 --- a/designer-base/src/main/java/com/fr/design/ui/compatible/NewModernUIPane.java +++ b/designer-base/src/main/java/com/fr/design/ui/compatible/NewModernUIPane.java @@ -182,8 +182,7 @@ public class NewModernUIPane extends ModernUIPane { public void disposeBrowser() { if (browser != null) { - browser.close(); - browser = null; + browser.engine().close(); } } @@ -204,7 +203,13 @@ public class NewModernUIPane extends ModernUIPane { public static class Builder extends ModernUIPane.Builder { - private NewModernUIPane pane = new NewModernUIPane<>(); + private NewModernUIPane pane; + + @Override + public ModernUIPane.Builder init() { + this.pane = new NewModernUIPane<>(); + return this; + } public NewModernUIPane.Builder prepare(InjectJsCallback callback) { pane.browser.set(InjectJsCallback.class, callback);