package xapi.jre.ui.demo; import javafx.application.Application; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.stage.Stage; import xapi.fu.Pointer; import xapi.javac.dev.api.CompilerService; import xapi.ui.api.Ui; import static xapi.inject.X_Inject.singleton; /** * Created by james on 6/7/16. */ @Ui("<import file=`Demo.xapi` />") public class JreUiDemo extends Application { private Stage stage; public static void main(String... args) { Application.launch(JreUiDemo.class); } @Override public void start(Stage stage) throws Exception { this.stage = stage; CompilerService compiler = singleton(CompilerService.class); Pointer<Parent> value = Pointer.pointer(); final String generatedName = getClass().getPackage().getName() + ".JavaFxComponent0_" + getClass().getSimpleName(); compiler.startCompile(JreUiDemo.class) .compileAndRun((cl, cls) -> { final Class<?> generated = cl.loadClass(generatedName); Object o = generated.newInstance(); Object test = generated.getMethod("io", JreUiDemo.class).invoke(o, JreUiDemo.this); value.in((Parent)test); } ); stage.setTitle("Hi"); stage.setScene(new Scene(value.out1(), 600, 400)); stage.show(); } public Stage getStage() { return stage; } }