From 04b300f453ae6adb9f74926213cb7532848a85dd Mon Sep 17 00:00:00 2001 From: Glavo Date: Sat, 6 Dec 2025 21:18:58 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AE=80=E5=8C=96=20MessageDialogPane=20(#4918?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jackhuang/hmcl/ui/construct/HintPane.java | 24 +---------- .../hmcl/ui/construct/MessageDialogPane.java | 42 +++++++------------ 2 files changed, 17 insertions(+), 49 deletions(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/HintPane.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/HintPane.java index 16e80579b..cfa318a3f 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/HintPane.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/HintPane.java @@ -28,7 +28,6 @@ import javafx.scene.text.Text; import javafx.scene.text.TextFlow; import org.jackhuang.hmcl.ui.Controllers; import org.jackhuang.hmcl.ui.FXUtils; -import org.jackhuang.hmcl.ui.SVG; import java.util.Locale; @@ -45,28 +44,7 @@ public class HintPane extends VBox { setFillWidth(true); getStyleClass().addAll("hint", type.name().toLowerCase(Locale.ROOT)); - SVG svg; - switch (type) { - case INFO: - svg = SVG.INFO; - break; - case ERROR: - svg = SVG.ERROR; - break; - case SUCCESS: - svg = SVG.CHECK_CIRCLE; - break; - case WARNING: - svg = SVG.WARNING; - break; - case QUESTION: - svg = SVG.HELP; - break; - default: - throw new IllegalArgumentException("Unrecognized message box message type " + type); - } - - HBox hbox = new HBox(svg.createIcon(16), new Text(type.getDisplayName())); + HBox hbox = new HBox(type.getIcon().createIcon(16), new Text(type.getDisplayName())); hbox.setAlignment(Pos.CENTER_LEFT); hbox.setSpacing(2); flow.getChildren().setAll(label); diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/MessageDialogPane.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/MessageDialogPane.java index 320111eb3..d58ddc643 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/MessageDialogPane.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/MessageDialogPane.java @@ -46,11 +46,21 @@ import static org.jackhuang.hmcl.util.i18n.I18n.i18n; public final class MessageDialogPane extends HBox { public enum MessageType { - ERROR, - INFO, - WARNING, - QUESTION, - SUCCESS; + ERROR(SVG.ERROR), + INFO(SVG.INFO), + WARNING(SVG.WARNING), + QUESTION(SVG.HELP), + SUCCESS(SVG.CHECK_CIRCLE); + + private final SVG icon; + + MessageType(SVG icon) { + this.icon = icon; + } + + public SVG getIcon() { + return icon; + } public String getDisplayName() { return i18n("message." + name().toLowerCase(Locale.ROOT)); @@ -70,27 +80,7 @@ public final class MessageDialogPane extends HBox { graphic.setTranslateY(10); graphic.setMinSize(40, 40); graphic.setMaxSize(40, 40); - SVG svg; - switch (type) { - case INFO: - svg = SVG.INFO; - break; - case ERROR: - svg = SVG.ERROR; - break; - case SUCCESS: - svg = SVG.CHECK_CIRCLE; - break; - case WARNING: - svg = SVG.WARNING; - break; - case QUESTION: - svg = SVG.HELP; - break; - default: - throw new IllegalArgumentException("Unrecognized message box message type " + type); - } - graphic.setGraphic(svg.createIcon(40)); + graphic.setGraphic(type.getIcon().createIcon(40)); VBox vbox = new VBox(); HBox.setHgrow(vbox, Priority.ALWAYS);