From 9a4286620fb213dcd9871aa6cb5806c93cbefb8f Mon Sep 17 00:00:00 2001 From: Glavo Date: Fri, 24 Feb 2023 03:49:13 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AE=80=E5=8C=96=20JFXHyperlink=20=E7=94=A8?= =?UTF-8?q?=E6=B3=95=20(#2147)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 简化 JFXHyperlink 用法 * fix checkstyle --- .../main/java/org/jackhuang/hmcl/ui/Controllers.java | 6 ++---- .../hmcl/ui/account/ClassicAccountLoginDialog.java | 5 ++--- .../jackhuang/hmcl/ui/account/CreateAccountPane.java | 8 ++++---- .../java/org/jackhuang/hmcl/ui/main/RootPage.java | 2 +- .../org/jackhuang/hmcl/ui/versions/DownloadPage.java | 6 +++--- .../jackhuang/hmcl/ui/versions/ModListPageSkin.java | 12 ++++-------- 6 files changed, 16 insertions(+), 23 deletions(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/Controllers.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/Controllers.java index 03be76c0e..467a9fb24 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/Controllers.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/Controllers.java @@ -227,7 +227,7 @@ public final class Controllers { agreementPane.setHeading(new Label(i18n("launcher.agreement"))); agreementPane.setBody(new Label(i18n("launcher.agreement.hint"))); JFXHyperlink agreementLink = new JFXHyperlink(i18n("launcher.agreement")); - agreementLink.setOnAction(e -> FXUtils.openLink(Metadata.EULA_URL)); + agreementLink.setExternalLink(Metadata.EULA_URL); JFXButton yesButton = new JFXButton(i18n("launcher.agreement.accept")); yesButton.getStyleClass().add("dialog-accept"); yesButton.setOnAction(e -> { @@ -236,9 +236,7 @@ public final class Controllers { }); JFXButton noButton = new JFXButton(i18n("launcher.agreement.decline")); noButton.getStyleClass().add("dialog-cancel"); - noButton.setOnAction(e -> { - System.exit(1); - }); + noButton.setOnAction(e -> System.exit(1)); agreementPane.setActions(agreementLink, yesButton, noButton); Controllers.dialog(agreementPane); } diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/account/ClassicAccountLoginDialog.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/account/ClassicAccountLoginDialog.java index 5fa155c3b..16dfe7935 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/account/ClassicAccountLoginDialog.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/account/ClassicAccountLoginDialog.java @@ -36,7 +36,6 @@ import org.jackhuang.hmcl.auth.yggdrasil.YggdrasilService; import org.jackhuang.hmcl.setting.Accounts; import org.jackhuang.hmcl.task.Schedulers; import org.jackhuang.hmcl.task.Task; -import org.jackhuang.hmcl.ui.FXUtils; import org.jackhuang.hmcl.ui.construct.DialogCloseEvent; import org.jackhuang.hmcl.ui.construct.JFXHyperlink; import org.jackhuang.hmcl.ui.construct.RequiredValidator; @@ -91,10 +90,10 @@ public class ClassicAccountLoginDialog extends StackPane { body.getChildren().add(linkPane); JFXHyperlink migrationLink = new JFXHyperlink(i18n("account.methods.yggdrasil.migration")); - migrationLink.setOnAction(e -> FXUtils.openLink(YggdrasilService.PROFILE_URL)); + migrationLink.setExternalLink(YggdrasilService.PROFILE_URL); JFXHyperlink migrationHowLink = new JFXHyperlink(i18n("account.methods.yggdrasil.migration.how")); - migrationHowLink.setOnAction(e -> FXUtils.openLink(YggdrasilService.MIGRATION_FAQ_URL)); + migrationHowLink.setExternalLink(YggdrasilService.MIGRATION_FAQ_URL); linkPane.getChildren().setAll(migrationLink, migrationHowLink); } diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/account/CreateAccountPane.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/account/CreateAccountPane.java index 0b9f8a425..44cc2307b 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/account/CreateAccountPane.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/account/CreateAccountPane.java @@ -512,13 +512,13 @@ public class CreateAccountPane extends JFXDialogLayout implements DialogAware { GridPane.setColumnSpan(box, 2); JFXHyperlink migrationLink = new JFXHyperlink(i18n("account.methods.yggdrasil.migration")); - migrationLink.setOnAction(e -> FXUtils.openLink("https://aka.ms/MinecraftMigration")); + migrationLink.setExternalLink("https://aka.ms/MinecraftMigration"); JFXHyperlink migrationHowLink = new JFXHyperlink(i18n("account.methods.yggdrasil.migration.how")); - migrationHowLink.setOnAction(e -> FXUtils.openLink("https://help.minecraft.net/hc/articles/4411173197709")); + migrationHowLink.setExternalLink("https://help.minecraft.net/hc/articles/4411173197709"); JFXHyperlink purchaseLink = new JFXHyperlink(i18n("account.methods.yggdrasil.purchase")); - purchaseLink.setOnAction(e -> FXUtils.openLink(YggdrasilService.PURCHASE_URL)); + purchaseLink.setExternalLink(YggdrasilService.PURCHASE_URL); box.getChildren().setAll(migrationLink, migrationHowLink, purchaseLink); add(box, 0, rowIndex); @@ -530,7 +530,7 @@ public class CreateAccountPane extends JFXDialogLayout implements DialogAware { txtUsername.setPromptText(i18n("account.methods.offline.name.special_characters")); JFXHyperlink purchaseLink = new JFXHyperlink(i18n("account.methods.yggdrasil.purchase")); - purchaseLink.setOnAction(e -> FXUtils.openLink(YggdrasilService.PURCHASE_URL)); + purchaseLink.setExternalLink(YggdrasilService.PURCHASE_URL); HBox linkPane = new HBox(purchaseLink); GridPane.setColumnSpan(linkPane, 2); add(linkPane, 0, rowIndex); diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/main/RootPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/main/RootPage.java index 378c16e29..0b3ab66db 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/main/RootPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/main/RootPage.java @@ -157,7 +157,7 @@ public class RootPage extends DecoratorAnimatedPage implements DecoratorPage { multiplayerItem.setActionButtonVisible(false); multiplayerItem.setTitle(i18n("multiplayer")); JFXHyperlink link = new JFXHyperlink(i18n("multiplayer.hint.details")); - link.setOnAction(e -> FXUtils.openLink("https://hmcl.huangyuhui.net/api/redirect/multiplayer-migrate")); + link.setExternalLink("https://hmcl.huangyuhui.net/api/redirect/multiplayer-migrate"); multiplayerItem.setOnAction(e -> Controllers.dialog( new MessageDialogPane.Builder(i18n("multiplayer.hint"), null, MessageDialogPane.MessageType.INFO) .addAction(link) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/DownloadPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/DownloadPage.java index aaee3229e..1757ec5dc 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/DownloadPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/DownloadPage.java @@ -260,18 +260,18 @@ public class DownloadPage extends Control implements DecoratorPage { if (getSkinnable().mod != null) { JFXHyperlink openMcmodButton = new JFXHyperlink(i18n("mods.mcmod")); - openMcmodButton.setOnAction(e -> FXUtils.openLink(getSkinnable().translations.getMcmodUrl(getSkinnable().mod))); + openMcmodButton.setExternalLink(getSkinnable().translations.getMcmodUrl(getSkinnable().mod)); descriptionPane.getChildren().add(openMcmodButton); if (StringUtils.isNotBlank(getSkinnable().mod.getMcbbs())) { JFXHyperlink openMcbbsButton = new JFXHyperlink(i18n("mods.mcbbs")); - openMcbbsButton.setOnAction(e -> FXUtils.openLink(ModManager.getMcbbsUrl(getSkinnable().mod.getMcbbs()))); + openMcbbsButton.setExternalLink(ModManager.getMcbbsUrl(getSkinnable().mod.getMcbbs())); descriptionPane.getChildren().add(openMcbbsButton); } } JFXHyperlink openUrlButton = new JFXHyperlink(control.page.getLocalizedOfficialPage()); - openUrlButton.setOnAction(e -> FXUtils.openLink(getSkinnable().addon.getPageUrl())); + openUrlButton.setExternalLink(getSkinnable().addon.getPageUrl()); descriptionPane.getChildren().add(openUrlButton); } diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/ModListPageSkin.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/ModListPageSkin.java index 5d6d1020d..444142c4c 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/ModListPageSkin.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/ModListPageSkin.java @@ -308,8 +308,7 @@ class ModListPageSkin extends SkinBase { setBody(description); if (StringUtils.isNotBlank(modInfo.getModInfo().getUrl())) { - JFXHyperlink officialPageButton = new JFXHyperlink(); - officialPageButton.setText(i18n("mods.url")); + JFXHyperlink officialPageButton = new JFXHyperlink(i18n("mods.url")); officialPageButton.setOnAction(e -> { fireEvent(new DialogCloseEvent()); FXUtils.openLink(modInfo.getModInfo().getUrl()); @@ -319,8 +318,7 @@ class ModListPageSkin extends SkinBase { } if (modInfo.getMod() != null && StringUtils.isNotBlank(modInfo.getMod().getMcbbs())) { - JFXHyperlink mcbbsButton = new JFXHyperlink(); - mcbbsButton.setText(i18n("mods.mcbbs")); + JFXHyperlink mcbbsButton = new JFXHyperlink(i18n("mods.mcbbs")); mcbbsButton.setOnAction(e -> { fireEvent(new DialogCloseEvent()); FXUtils.openLink(ModManager.getMcbbsUrl(modInfo.getMod().getMcbbs())); @@ -329,8 +327,7 @@ class ModListPageSkin extends SkinBase { } if (modInfo.getMod() == null || StringUtils.isBlank(modInfo.getMod().getMcmod())) { - JFXHyperlink searchButton = new JFXHyperlink(); - searchButton.setText(i18n("mods.mcmod.search")); + JFXHyperlink searchButton = new JFXHyperlink(i18n("mods.mcmod.search")); searchButton.setOnAction(e -> { fireEvent(new DialogCloseEvent()); FXUtils.openLink(NetworkUtils.withQuery("https://search.mcmod.cn/s", mapOf( @@ -341,8 +338,7 @@ class ModListPageSkin extends SkinBase { }); getActions().add(searchButton); } else { - JFXHyperlink mcmodButton = new JFXHyperlink(); - mcmodButton.setText(i18n("mods.mcmod.page")); + JFXHyperlink mcmodButton = new JFXHyperlink(i18n("mods.mcmod.page")); mcmodButton.setOnAction(e -> { fireEvent(new DialogCloseEvent()); FXUtils.openLink(ModTranslations.MOD.getMcmodUrl(modInfo.getMod()));