Switched to JavaFX and added builtin Support
This commit is contained in:
@@ -1,5 +1,12 @@
|
||||
package org.openautonomousconnection.luascript.hosts;
|
||||
|
||||
import javafx.scene.web.WebEngine;
|
||||
import org.openautonomousconnection.luascript.fx.FxDomHost;
|
||||
import org.openautonomousconnection.luascript.fx.FxEventHost;
|
||||
import org.openautonomousconnection.luascript.fx.FxUiHost;
|
||||
import org.openautonomousconnection.luascript.fx.FxWebViewResourceHost;
|
||||
import org.openautonomousconnection.luascript.runtime.LuaRuntime;
|
||||
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
|
||||
@@ -24,6 +31,38 @@ public final class HostServices {
|
||||
this.resources = b.resources;
|
||||
}
|
||||
|
||||
/**
|
||||
* Builds a JavaFX WebView preset of HostServices (DOM + events + resources + UI).
|
||||
*
|
||||
* <p>Important: This method creates the {@link EventHost} using the provided {@link LuaRuntime}'s
|
||||
* {@link org.openautonomousconnection.luascript.runtime.LuaEventRouter}. Therefore, the runtime must already
|
||||
* be constructed before calling this method.</p>
|
||||
*
|
||||
* <p>Note: You should call {@link FxDomHost#ensureAllElementsHaveId()} after the WebEngine finished loading.</p>
|
||||
*
|
||||
* @param engine JavaFX WebEngine
|
||||
* @param runtime Lua runtime used for event routing
|
||||
* @param console optional console host (may be null)
|
||||
* @return HostServices preset for JavaFX WebView
|
||||
*/
|
||||
public static HostServices fxPreset(WebEngine engine, LuaRuntime runtime, ConsoleHost console) {
|
||||
Objects.requireNonNull(engine, "engine");
|
||||
Objects.requireNonNull(runtime, "runtime");
|
||||
|
||||
FxDomHost dom = new FxDomHost(engine);
|
||||
FxWebViewResourceHost resources = new FxWebViewResourceHost(engine);
|
||||
FxUiHost ui = new FxUiHost(engine, dom);
|
||||
FxEventHost events = new FxEventHost(dom, runtime.eventRouter());
|
||||
|
||||
Builder b = builder().dom(dom).events(events).resources(resources).ui(ui);
|
||||
|
||||
if (console != null) {
|
||||
b.console(console);
|
||||
}
|
||||
|
||||
return b.build();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return builder
|
||||
*/
|
||||
@@ -124,4 +163,3 @@ public final class HostServices {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user