From 5eb46395ae66cbabe887beba63bf246aa9c58e03 Mon Sep 17 00:00:00 2001 From: huangyuhui Date: Mon, 5 Mar 2018 19:13:58 +0800 Subject: [PATCH] Close popup when deleted an account --- .../org/jackhuang/hmcl/ui/AccountPage.java | 19 ++++++++++++++++++- .../jackhuang/hmcl/ui/LeftPaneController.java | 1 + 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/AccountPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/AccountPage.java index be8aded3b..05de0e601 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/AccountPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/AccountPage.java @@ -18,6 +18,8 @@ package org.jackhuang.hmcl.ui; import com.jfoenix.controls.JFXButton; +import javafx.beans.property.ObjectProperty; +import javafx.beans.property.SimpleObjectProperty; import javafx.beans.property.SimpleStringProperty; import javafx.beans.property.StringProperty; import javafx.fxml.FXML; @@ -37,8 +39,11 @@ import org.jackhuang.hmcl.task.Schedulers; import org.jackhuang.hmcl.ui.construct.ComponentList; import org.jackhuang.hmcl.ui.wizard.DecoratorPage; +import java.util.Optional; + public class AccountPage extends StackPane implements DecoratorPage { private final StringProperty title; + private final ObjectProperty onDelete = new SimpleObjectProperty<>(this, "onDelete"); private final Account account; @@ -95,7 +100,7 @@ public class AccountPage extends StackPane implements DecoratorPage { @FXML private void onDelete() { Settings.INSTANCE.deleteAccount(account); - Controllers.navigate(null); + Optional.ofNullable(onDelete.get()).ifPresent(Runnable::run); } @FXML @@ -116,4 +121,16 @@ public class AccountPage extends StackPane implements DecoratorPage { public void setTitle(String title) { this.title.set(title); } + + public Runnable getOnDelete() { + return onDelete.get(); + } + + public ObjectProperty onDeleteProperty() { + return onDelete; + } + + public void setOnDelete(Runnable onDelete) { + this.onDelete.set(onDelete); + } } diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/LeftPaneController.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/LeftPaneController.java index 3f02eaa97..87dc236fa 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/LeftPaneController.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/LeftPaneController.java @@ -150,6 +150,7 @@ public final class LeftPaneController { item.setOnSettingsButtonClicked(e -> { AccountPage accountPage = new AccountPage(account); JFXPopup popup = new JFXPopup(accountPage); + accountPage.setOnDelete(popup::hide); popup.show((Node) e.getSource(), JFXPopup.PopupVPosition.TOP, JFXPopup.PopupHPosition.LEFT, e.getX(), e.getY()); }); ripplerContainer.setOnMouseClicked(e -> {