Use Controllers.dialog for AddAuthlibInjectorServerDialog

This commit is contained in:
yushijinhun
2018-07-07 18:03:21 +08:00
parent 25261c99f1
commit 76a04343d9
3 changed files with 62 additions and 62 deletions

View File

@@ -21,6 +21,7 @@ import static org.jackhuang.hmcl.ui.FXUtils.loadFXML;
import static org.jackhuang.hmcl.util.i18n.I18n.i18n; import static org.jackhuang.hmcl.util.i18n.I18n.i18n;
import java.io.IOException; import java.io.IOException;
import java.util.function.Consumer;
import org.jackhuang.hmcl.auth.authlibinjector.AuthlibInjectorServer; import org.jackhuang.hmcl.auth.authlibinjector.AuthlibInjectorServer;
import org.jackhuang.hmcl.setting.Settings; import org.jackhuang.hmcl.setting.Settings;
@@ -32,16 +33,16 @@ import org.jackhuang.hmcl.ui.construct.SpinnerPane;
import org.jackhuang.hmcl.util.NetworkUtils; import org.jackhuang.hmcl.util.NetworkUtils;
import com.jfoenix.controls.JFXButton; import com.jfoenix.controls.JFXButton;
import com.jfoenix.controls.JFXDialog;
import com.jfoenix.controls.JFXDialogLayout; import com.jfoenix.controls.JFXDialogLayout;
import com.jfoenix.controls.JFXTextField; import com.jfoenix.controls.JFXTextField;
import javafx.beans.binding.Bindings; import javafx.beans.binding.Bindings;
import javafx.fxml.FXML; import javafx.fxml.FXML;
import javafx.scene.control.Label; import javafx.scene.control.Label;
import javafx.scene.layout.Region;
import javafx.scene.layout.StackPane; import javafx.scene.layout.StackPane;
public class AddAuthlibInjectorServerDialog extends JFXDialog { public class AddAuthlibInjectorServerPane extends StackPane {
@FXML private StackPane addServerContainer; @FXML private StackPane addServerContainer;
@FXML private Label lblServerUrl; @FXML private Label lblServerUrl;
@@ -54,11 +55,14 @@ public class AddAuthlibInjectorServerDialog extends JFXDialog {
@FXML private SpinnerPane nextPane; @FXML private SpinnerPane nextPane;
@FXML private JFXButton btnAddNext; @FXML private JFXButton btnAddNext;
private Consumer<Region> finalization;
private TransitionHandler transitionHandler; private TransitionHandler transitionHandler;
private AuthlibInjectorServer serverBeingAdded; private AuthlibInjectorServer serverBeingAdded;
public AddAuthlibInjectorServerDialog() { public AddAuthlibInjectorServerPane(Consumer<Region> finalization) {
this.finalization = finalization;
loadFXML(this, "/assets/fxml/authlib-injector-server-add.fxml"); loadFXML(this, "/assets/fxml/authlib-injector-server-add.fxml");
transitionHandler = new TransitionHandler(addServerContainer); transitionHandler = new TransitionHandler(addServerContainer);
transitionHandler.setContent(addServerPane, ContainerAnimations.NONE.getAnimationProducer()); transitionHandler.setContent(addServerPane, ContainerAnimations.NONE.getAnimationProducer());
@@ -85,7 +89,7 @@ public class AddAuthlibInjectorServerDialog extends JFXDialog {
@FXML @FXML
private void onAddCancel() { private void onAddCancel() {
this.close(); finalization.accept(this);
} }
@FXML @FXML
@@ -122,10 +126,10 @@ public class AddAuthlibInjectorServerDialog extends JFXDialog {
@FXML @FXML
private void onAddFinish() { private void onAddFinish() {
if (!Settings.INSTANCE.SETTINGS.authlibInjectorServers.contains(serverBeingAdded)) { if (!Settings.SETTINGS.authlibInjectorServers.contains(serverBeingAdded)) {
Settings.INSTANCE.SETTINGS.authlibInjectorServers.add(serverBeingAdded); Settings.SETTINGS.authlibInjectorServers.add(serverBeingAdded);
} }
this.close(); finalization.accept(this);
} }
} }

View File

@@ -63,9 +63,7 @@ public class AuthlibInjectorServersPage extends StackPane implements DecoratorPa
@FXML @FXML
private void onAdd() { private void onAdd() {
AddAuthlibInjectorServerDialog dialog = new AddAuthlibInjectorServerDialog(); Controllers.dialog(new AddAuthlibInjectorServerPane(Controllers::closeDialog));
dialog.setDialogContainer(this);
dialog.show();
} }
public String getTitle() { public String getTitle() {

View File

@@ -9,8 +9,7 @@
<fx:root xmlns="http://javafx.com/javafx" <fx:root xmlns="http://javafx.com/javafx"
xmlns:fx="http://javafx.com/fxml" xmlns:fx="http://javafx.com/fxml"
type="JFXDialog"> type="StackPane">
<StackPane>
<StackPane fx:id="addServerContainer"> <StackPane fx:id="addServerContainer">
<JFXDialogLayout fx:id="addServerPane"> <JFXDialogLayout fx:id="addServerPane">
<heading> <heading>
@@ -62,5 +61,4 @@
</actions> </actions>
</JFXDialogLayout> </JFXDialogLayout>
</StackPane> </StackPane>
</StackPane>
</fx:root> </fx:root>