From 478c69f82c990fe5b05917418d03fedfb1ff8946 Mon Sep 17 00:00:00 2001 From: Jan-Peter Klein Date: Tue, 25 Feb 2025 18:23:17 +0100 Subject: [PATCH] simple dialog without cancel button --- .../org/cryptomator/ui/dialogs/SimpleDialog.java | 7 +++---- .../ui/dialogs/SimpleDialogController.java | 12 ++++++++++++ src/main/resources/fxml/simple_dialog.fxml | 2 +- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/cryptomator/ui/dialogs/SimpleDialog.java b/src/main/java/org/cryptomator/ui/dialogs/SimpleDialog.java index 84d9e4f75..08f77849e 100644 --- a/src/main/java/org/cryptomator/ui/dialogs/SimpleDialog.java +++ b/src/main/java/org/cryptomator/ui/dialogs/SimpleDialog.java @@ -31,8 +31,9 @@ public class SimpleDialog { FxmlLoaderFactory loaderFactory = FxmlLoaderFactory.forController( // new SimpleDialogController(resolveText(builder.messageKey, null), // resolveText(builder.descriptionKey, null), // - builder.icon, resolveText(builder.okButtonKey, null), // - resolveText(builder.cancelButtonKey, null), // + builder.icon, // + resolveText(builder.okButtonKey, null), // + builder.cancelButtonKey != null ? resolveText(builder.cancelButtonKey, null) : null, // () -> builder.okAction.accept(dialogStage), // () -> builder.cancelAction.accept(dialogStage)), // Scene::new, builder.resourceBundle); @@ -67,7 +68,6 @@ public class SimpleDialog { private String descriptionKey; private String okButtonKey; private String cancelButtonKey; - private FontAwesome5Icon icon; private Consumer okAction = Stage::close; private Consumer cancelAction = Stage::close; @@ -128,7 +128,6 @@ public class SimpleDialog { Objects.requireNonNull(messageKey, "SimpleDialog messageKey must be set."); Objects.requireNonNull(descriptionKey, "SimpleDialog descriptionKey must be set."); Objects.requireNonNull(okButtonKey, "SimpleDialog okButtonKey must be set."); - Objects.requireNonNull(cancelButtonKey, "SimpleDialog cancelButtonKey must be set."); try { return new SimpleDialog(this); diff --git a/src/main/java/org/cryptomator/ui/dialogs/SimpleDialogController.java b/src/main/java/org/cryptomator/ui/dialogs/SimpleDialogController.java index 0eee1b308..9465bf642 100644 --- a/src/main/java/org/cryptomator/ui/dialogs/SimpleDialogController.java +++ b/src/main/java/org/cryptomator/ui/dialogs/SimpleDialogController.java @@ -3,6 +3,8 @@ package org.cryptomator.ui.dialogs; import org.cryptomator.ui.common.FxController; import org.cryptomator.ui.controls.FontAwesome5Icon; +import javafx.beans.property.BooleanProperty; +import javafx.beans.property.SimpleBooleanProperty; import javafx.fxml.FXML; public class SimpleDialogController implements FxController { @@ -14,6 +16,7 @@ public class SimpleDialogController implements FxController { private final String cancelButtonText; private final Runnable okAction; private final Runnable cancelAction; + private final BooleanProperty dismissed = new SimpleBooleanProperty(); public SimpleDialogController(String message, String description, FontAwesome5Icon icon, String okButtonText, String cancelButtonText, Runnable okAction, Runnable cancelAction) { this.message = message; @@ -24,6 +27,10 @@ public class SimpleDialogController implements FxController { this.okAction = okAction; this.cancelAction = cancelAction; } + + public void initialize() { + dismissed.set(cancelButtonText == null || cancelButtonText.isEmpty()); + } public String getMessage() { return message; @@ -45,6 +52,11 @@ public class SimpleDialogController implements FxController { return cancelButtonText; } + @FXML + public boolean getDismissed() { + return dismissed.get(); + } + @FXML private void handleOk() { if (okAction != null) { diff --git a/src/main/resources/fxml/simple_dialog.fxml b/src/main/resources/fxml/simple_dialog.fxml index 32ad63abf..f076ec267 100644 --- a/src/main/resources/fxml/simple_dialog.fxml +++ b/src/main/resources/fxml/simple_dialog.fxml @@ -41,7 +41,7 @@ -