package at.ac.tuwien.sepm.assignment.groupphase.application; import at.ac.tuwien.sepm.assignment.groupphase.missioncontrol.controller.CreateOperationController; import at.ac.tuwien.sepm.assignment.groupphase.util.JDBCConnectionManager; import at.ac.tuwien.sepm.assignment.groupphase.util.SpringFXMLLoader; import javafx.application.Application; import javafx.application.Platform; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.stage.Stage; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.ComponentScan; import org.springframework.stereotype.Component; @Component @ComponentScan("at.ac.tuwien.sepm.assignment.groupphase") public class MainApplication extends Application { private static AnnotationConfigApplicationContext configApplicationContext; public static void main(String[] args) { Application.launch(MainApplication.class, args); } @Override public void start(Stage primaryStage) throws Exception { primaryStage.setTitle("Einsatz erstellen"); primaryStage.centerOnScreen(); primaryStage.setOnCloseRequest( event -> { final var jdbcConnectionManager = configApplicationContext.getBean(JDBCConnectionManager.class); jdbcConnectionManager.closeConnection(); Platform.exit(); }); configApplicationContext = new AnnotationConfigApplicationContext(MainApplication.class); final var fxmlLoader = configApplicationContext.getBean(SpringFXMLLoader.class); primaryStage.setScene( new Scene( (Parent) fxmlLoader.load( getClass() .getResourceAsStream( "/fxml/CreateOperationController.fxml")))); CreateOperationController controller = configApplicationContext.getBean(CreateOperationController.class); controller.updateList(); primaryStage.show(); primaryStage.toFront(); } @Override public void stop() throws Exception { super.stop(); configApplicationContext.close(); } }