49 lines
1.1 KiB
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;
|
|
}
|
|
|
|
}
|