java-lib-fw/src/main/java/de/synolo/lib/fw/app/AbstractApplication.java

49 lines
1.1 KiB
Java

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<C extends ApplicationContext> 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;
}
}