package top.octopusyan.controller; import com.jfoenix.controls.*; import javafx.application.Platform; import javafx.beans.property.SimpleBooleanProperty; import javafx.beans.value.ObservableValue; import javafx.collections.ObservableList; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; import javafx.fxml.Initializable; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.control.*; import javafx.scene.layout.AnchorPane; import javafx.scene.layout.HBox; import javafx.scene.layout.StackPane; import org.apache.commons.lang3.StringUtils; import org.jetbrains.annotations.NotNull; import top.octopusyan.base.BaseController; import top.octopusyan.config.ProxyConfig; import top.octopusyan.config.ProxyConfig.ProxyServer; import top.octopusyan.config.ProxyConfig.ProxyType; import top.octopusyan.config.TextValidate; import top.octopusyan.http.request.ProxySetup; import top.octopusyan.manager.FrpManager; import top.octopusyan.manager.ProxyManager; import top.octopusyan.manager.http.listener.OnHttpListener; import top.octopusyan.model.ApplicatonStore; import top.octopusyan.model.ProxySetupModel; import top.octopusyan.utils.AlertUtil; import top.octopusyan.utils.DomainUtil; import java.awt.*; import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.StringSelection; import java.io.IOException; import java.util.List; import java.util.*; import static top.octopusyan.model.ApplicatonStore.*; /** * @author : octopus yan * @email : octopus_yan@foxmail.com * @description : * @create : 2022-4-4 22:32 */ public class MainController extends BaseController implements Initializable { public static final String PROXY_LIST_ITEM_CLASS = "proxyListItem"; public static final String PROXY_LIST_ITEM_STOP_CLASS = "proxyListItem-stop"; public static final String PROXY_LIST_ITEM_RUN_CLASS = "proxyListItem-run"; public static final String PROXY_LIST_ITEM_CLOSE_CLASS = "proxyListItem-close"; public static final String PROXY_LIST_ITEM_SELECT_CLASS = "proxyListItem-select"; @FXML public StackPane root; @FXML public JFXButton closeBtn, minimizeBtn; @FXML public JFXButton startProxyBtn, addProxyBtn; @FXML public JFXComboBox proxyProtocolComboBox; @FXML public JFXButton customizeDomainBtn; @FXML public JFXRadioButton openProxyRBtn, closeProxyRBtn; @FXML public JFXTextField domainTextField, domainSuffixTextField; @FXML public JFXTextField proxyNameTextField, localHostTextField, localPortTextField; @FXML public JFXComboBox proxyServerComboBox; @FXML public JFXTabPane tabPane; @FXML public JFXListView