Armin Schrenk před 4 měsíci
rodič
revize
aee8844558

+ 7 - 4
src/main/java/org/cryptomator/ui/dialogs/Dialogs.java

@@ -2,31 +2,34 @@ package org.cryptomator.ui.dialogs;
 
 import org.cryptomator.common.settings.Settings;
 import org.cryptomator.common.vaults.Vault;
+import org.cryptomator.ui.common.StageFactory;
 import org.cryptomator.ui.controls.FontAwesome5Icon;
+import org.cryptomator.ui.fxapp.FxApplicationScoped;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import javax.inject.Inject;
-import javax.inject.Singleton;
 import javafx.collections.ObservableList;
 import javafx.stage.Stage;
 import java.util.ResourceBundle;
 import java.util.function.Consumer;
 
-@Singleton
+@FxApplicationScoped
 public class Dialogs {
 
 	private final ResourceBundle resourceBundle;
+	private final StageFactory stageFactory;
 
 	@Inject
-	public Dialogs(ResourceBundle resourceBundle) {
+	public Dialogs(ResourceBundle resourceBundle, StageFactory stageFactory) {
 		this.resourceBundle = resourceBundle;
+		this.stageFactory = stageFactory;
 	}
 
 	private static final Logger LOG = LoggerFactory.getLogger(Dialogs.class);
 
 	private SimpleDialog.Builder createDialogBuilder() {
-		return new SimpleDialog.Builder(resourceBundle);
+		return new SimpleDialog.Builder(resourceBundle, stageFactory);
 	}
 
 	public SimpleDialog.Builder prepareRemoveVaultDialog(Stage window, Vault vault, ObservableList<Vault> vaults) {

+ 5 - 2
src/main/java/org/cryptomator/ui/dialogs/SimpleDialog.java

@@ -2,6 +2,7 @@ package org.cryptomator.ui.dialogs;
 
 import org.cryptomator.ui.common.FxmlFile;
 import org.cryptomator.ui.common.FxmlLoaderFactory;
+import org.cryptomator.ui.common.StageFactory;
 import org.cryptomator.ui.controls.FontAwesome5Icon;
 
 import javafx.scene.Scene;
@@ -22,7 +23,7 @@ public class SimpleDialog {
 
 	SimpleDialog(Builder builder) throws IOException {
 		this.resourceBundle = builder.resourceBundle;
-		dialogStage = new Stage();
+		dialogStage = builder.stageFactory.create();
 		dialogStage.initOwner(builder.owner);
 		dialogStage.initModality(Modality.WINDOW_MODAL);
 		dialogStage.setTitle(resolveText(builder.titleKey, builder.titleArgs));
@@ -60,6 +61,7 @@ public class SimpleDialog {
 
 		private Stage owner;
 		private final ResourceBundle resourceBundle;
+		private final StageFactory stageFactory;
 		private String titleKey;
 		private String[] titleArgs;
 		private String messageKey;
@@ -71,8 +73,9 @@ public class SimpleDialog {
 		private Consumer<Stage> okAction = Stage::close;
 		private Consumer<Stage> cancelAction = Stage::close;
 
-		public Builder(ResourceBundle resourceBundle) {
+		public Builder(ResourceBundle resourceBundle, StageFactory stageFactory) {
 			this.resourceBundle = resourceBundle;
+			this.stageFactory = stageFactory;
 		}
 
 		public Builder setOwner(Stage owner) {