package de.synolo.lib.fw.app; import de.synolo.lib.fw.utils.Logging; import javafx.application.Application; import javafx.scene.Scene; import javafx.stage.Modality; import javafx.stage.Stage; import javafx.stage.StageStyle; public abstract class AbstractApplication extends Application { private C context; private Stage primaryStage; @Override public void init() throws Exception { super.init(); Logging.init(); } @Override public void start(Stage primaryStage) throws Exception { this.primaryStage = primaryStage; this.context = initContext(); buildApplication(primaryStage); } protected abstract void buildApplication(Stage primaryStage) throws Exception; public C getContext() { return this.context; } protected abstract C initContext(); public Stage getPrimaryStage() { return this.primaryStage; } public Stage showDialog(Modality modality, StageStyle style, Scene scene) { Stage dialog = new Stage(); dialog.initOwner(this.primaryStage); dialog.initModality(modality); dialog.initStyle(style); dialog.setScene(scene); dialog.show(); return dialog; } }