diff --git a/src/main/java/cn/octopusyan/alistgui/Application.java b/src/main/java/cn/octopusyan/alistgui/Application.java index 042aae8..f04cbd6 100644 --- a/src/main/java/cn/octopusyan/alistgui/Application.java +++ b/src/main/java/cn/octopusyan/alistgui/Application.java @@ -3,7 +3,6 @@ package cn.octopusyan.alistgui; import atlantafx.base.theme.PrimerLight; import cn.octopusyan.alistgui.config.Constants; import cn.octopusyan.alistgui.config.Context; -import cn.octopusyan.alistgui.enums.ProxySetup; import cn.octopusyan.alistgui.manager.ConfigManager; import cn.octopusyan.alistgui.manager.http.HttpConfig; import cn.octopusyan.alistgui.manager.http.HttpUtil; @@ -41,7 +40,7 @@ public class Application extends javafx.application.Application { case NO_PROXY -> httpConfig.setProxySelector(HttpClient.Builder.NO_PROXY); case SYSTEM -> httpConfig.setProxySelector(ProxySelector.getDefault()); case MANUAL -> { - if(ConfigManager.hasProxy()) { + if (ConfigManager.hasProxy()) { InetSocketAddress unresolved = InetSocketAddress.createUnresolved( Objects.requireNonNull(ConfigManager.proxyHost()), ConfigManager.getProxyPort() @@ -50,7 +49,7 @@ public class Application extends javafx.application.Application { } } } - httpConfig.setConnectTimeout(10); + httpConfig.setConnectTimeout(3000); HttpUtil.init(httpConfig); } diff --git a/src/main/java/cn/octopusyan/alistgui/manager/http/HttpUtil.java b/src/main/java/cn/octopusyan/alistgui/manager/http/HttpUtil.java index d98c28a..09ddf18 100644 --- a/src/main/java/cn/octopusyan/alistgui/manager/http/HttpUtil.java +++ b/src/main/java/cn/octopusyan/alistgui/manager/http/HttpUtil.java @@ -4,8 +4,6 @@ import cn.octopusyan.alistgui.enums.ProxySetup; import cn.octopusyan.alistgui.model.ProxyInfo; import cn.octopusyan.alistgui.util.JsonUtil; import com.fasterxml.jackson.databind.JsonNode; -//import com.github.markusbernhardt.proxy.ProxySearch; -//import com.github.markusbernhardt.proxy.selector.misc.BufferedProxySelector; import java.io.IOException; import java.net.InetSocketAddress; diff --git a/src/main/java/cn/octopusyan/alistgui/util/alert/AlertUtil.java b/src/main/java/cn/octopusyan/alistgui/util/alert/AlertUtil.java index 8c86a48..eaf8309 100644 --- a/src/main/java/cn/octopusyan/alistgui/util/alert/AlertUtil.java +++ b/src/main/java/cn/octopusyan/alistgui/util/alert/AlertUtil.java @@ -116,6 +116,12 @@ public class AlertUtil { return new TextInputBuilder(dialog, mOwner); } + public static TextInputBuilder input(String content, String defaultResult) { + TextInputDialog dialog = new TextInputDialog(defaultResult); + dialog.setContentText(content); + return new TextInputBuilder(dialog, mOwner); + } + @SafeVarargs public static ChoiceBuilder choices(String hintText, T... choices) { ChoiceDialog dialog = new ChoiceDialog<>(choices[0], choices); diff --git a/src/main/java/cn/octopusyan/alistgui/util/alert/BaseBuilder.java b/src/main/java/cn/octopusyan/alistgui/util/alert/BaseBuilder.java index 74e5654..ccb2cf4 100644 --- a/src/main/java/cn/octopusyan/alistgui/util/alert/BaseBuilder.java +++ b/src/main/java/cn/octopusyan/alistgui/util/alert/BaseBuilder.java @@ -1,5 +1,7 @@ package cn.octopusyan.alistgui.util.alert; +import javafx.application.Platform; +import javafx.collections.ObservableList; import javafx.scene.control.Dialog; import javafx.scene.image.Image; import javafx.stage.Stage; @@ -10,48 +12,52 @@ import java.util.Objects; /** * @author octopus_yan */ -public abstract class BaseBuilder, R> { - T alert; +public abstract class BaseBuilder, D extends Dialog> { + D dialog; - public BaseBuilder(T alert, Window mOwner) { - this.alert = alert; + public BaseBuilder(D dialog, Window mOwner) { + this.dialog = dialog; + icon("/assets/logo.png"); if (mOwner != null) - this.alert.initOwner(mOwner); + this.dialog.initOwner(mOwner); } - public BaseBuilder title(String title) { - alert.setTitle(title); - return this; + public T title(String title) { + dialog.setTitle(title); + return (T) this; } - public BaseBuilder header(String header) { - alert.setHeaderText(header); - return this; + public T header(String header) { + dialog.setHeaderText(header); + return (T) this; } - public BaseBuilder content(String content) { - alert.setContentText(content); - return this; + public T content(String content) { + dialog.setContentText(content); + return (T) this; } - public BaseBuilder icon(String path) { + public T icon(String path) { return icon(new Image(Objects.requireNonNull(this.getClass().getResource(path)).toString())); } - public BaseBuilder icon(Image image) { - getStage().getIcons().add(image); - return this; + public T icon(Image image) { + ObservableList icons = getStage().getIcons(); + if (icons.isEmpty()) { + Platform.runLater(() -> icons.add(image)); + } + return (T) this; } public void show() { - if (alert.isShowing()) { - if (!Objects.equals(alert.getContentText(), alert.getContentText())) - alert.setOnHidden(_ -> show()); + if (dialog.isShowing()) { + if (!Objects.equals(dialog.getContentText(), dialog.getContentText())) + dialog.setOnHidden(_ -> show()); } - alert.showAndWait(); + dialog.showAndWait(); } private Stage getStage() { - return (Stage) alert.getDialogPane().getScene().getWindow(); + return (Stage) dialog.getDialogPane().getScene().getWindow(); } } diff --git a/src/main/java/cn/octopusyan/alistgui/util/alert/ChoiceBuilder.java b/src/main/java/cn/octopusyan/alistgui/util/alert/ChoiceBuilder.java index 0dcaf3d..7f79d82 100644 --- a/src/main/java/cn/octopusyan/alistgui/util/alert/ChoiceBuilder.java +++ b/src/main/java/cn/octopusyan/alistgui/util/alert/ChoiceBuilder.java @@ -9,16 +9,16 @@ import java.util.Optional; /** * @author octopus_yan */ -public class ChoiceBuilder extends BaseBuilder, R> { - public ChoiceBuilder(ChoiceDialog alert, Window mOwner) { - super(alert, mOwner); +public class ChoiceBuilder extends BaseBuilder, ChoiceDialog> { + public ChoiceBuilder(ChoiceDialog dialog, Window mOwner) { + super(dialog, mOwner); } /** * AlertUtil.choices */ public R getChoice(Collection choices) { - Optional result = alert.showAndWait(); + Optional result = dialog.showAndWait(); return result.orElse(null); } } diff --git a/src/main/java/cn/octopusyan/alistgui/util/alert/TextInputBuilder.java b/src/main/java/cn/octopusyan/alistgui/util/alert/TextInputBuilder.java index 695b2ce..cc264fd 100644 --- a/src/main/java/cn/octopusyan/alistgui/util/alert/TextInputBuilder.java +++ b/src/main/java/cn/octopusyan/alistgui/util/alert/TextInputBuilder.java @@ -6,11 +6,13 @@ import javafx.stage.Window; import java.util.Optional; /** + * 获取用户输入弹窗 + * * @author octopus_yan */ -public class TextInputBuilder extends BaseBuilder{ - public TextInputBuilder(TextInputDialog alert, Window mOwner) { - super(alert, mOwner); +public class TextInputBuilder extends BaseBuilder { + public TextInputBuilder(TextInputDialog dialog, Window mOwner) { + super(dialog, mOwner); } /** @@ -18,7 +20,7 @@ public class TextInputBuilder extends BaseBuilder{ * 如果用户点击了取消按钮,将会返回null */ public String getInput() { - Optional result = alert.showAndWait(); + Optional result = dialog.showAndWait(); return result.orElse(null); } } diff --git a/src/main/resources/css/root-view.scss b/src/main/resources/css/root-view.scss index a703d73..c665a83 100644 --- a/src/main/resources/css/root-view.scss +++ b/src/main/resources/css/root-view.scss @@ -1,4 +1,5 @@ @import "root.css"; + /************************************************** * Window Header **************************************************/ diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml index c9386bf..a72bb49 100644 --- a/src/main/resources/logback.xml +++ b/src/main/resources/logback.xml @@ -5,7 +5,8 @@ - +