diff --git a/src/main/java/com/cecilia/AppUI.java b/src/main/java/com/cecilia/AppUI.java index 5660626..45211ca 100644 --- a/src/main/java/com/cecilia/AppUI.java +++ b/src/main/java/com/cecilia/AppUI.java @@ -59,7 +59,7 @@ public class AppUI extends Application { } @Override - public void start(Stage stage) throws IOException { + public void start(Stage stage) { Thread.currentThread().setUncaughtExceptionHandler(new DefaultExceptionHandler(stage)); loadApplicationProperties(); diff --git a/src/main/java/com/cecilia/view/window/WindowView.java b/src/main/java/com/cecilia/view/window/WindowView.java index 4fb9d9b..09435ff 100644 --- a/src/main/java/com/cecilia/view/window/WindowView.java +++ b/src/main/java/com/cecilia/view/window/WindowView.java @@ -2,10 +2,12 @@ package com.cecilia.view.window; import animatefx.animation.BounceInRight; import atlantafx.base.controls.Message; +import atlantafx.base.controls.ModalPane; import atlantafx.base.theme.Styles; import atlantafx.base.util.Animations; import com.cecilia.view.loginregister.LoginRegisterView; import com.cecilia.view.loginregister.LoginRegisterViewModel; +import com.goxr3plus.fxborderlessscene.borderless.BorderlessScene; import de.saxsys.mvvmfx.*; import javafx.animation.KeyFrame; import javafx.animation.Timeline; @@ -42,12 +44,16 @@ public class WindowView implements FxmlView, Initializable { private StackPane rootPane; @FXML private StackPane contentPane; + public static final String MAIN_MODAL_ID = "modal-pane"; @Override public void initialize(URL url, ResourceBundle resourceBundle) { - messagePane.visibleProperty().bindBidirectional(windowViewModel.mainViewVisbleProperty()); + var modalPane = new ModalPane(); + modalPane.setId(MAIN_MODAL_ID); + rootPane.getChildren().add(0, modalPane); + //messagePane.visibleProperty().bindBidirectional(windowViewModel.mainViewVisbleProperty()); MvvmFX.getNotificationCenter().subscribe("showMainView", (key, payload) -> { // trigger some actions Platform.runLater(() -> { @@ -66,35 +72,28 @@ public class WindowView implements FxmlView, Initializable { MvvmFX.getNotificationCenter().subscribe("message", (key, payload) -> { // trigger some actions - Platform.runLater(() -> { showMessage((Integer) payload[0], (String) payload[1]); - }); - }); MvvmFX.getNotificationCenter().subscribe("exit", (key, payload) -> { // trigger some actions - Platform.runLater(() -> { Stage stage = (Stage) rootPane.getScene().getWindow(); - stage.close(); - }); - }); - showLoginView(); - } private void showMainView() { - contentPane.getChildren().clear(); ViewTuple load = FluentViewLoader.fxmlView(MainView.class).load(); contentPane.getChildren().add(load.getView()); windowViewModel.mainViewVisbleProperty().setValue(true); + if (contentPane.getScene() instanceof BorderlessScene) { + ((BorderlessScene) contentPane.getScene()).maximizeStage(); + } } @@ -110,9 +109,8 @@ public class WindowView implements FxmlView, Initializable { if (windowViewModel.isMainViewVisble()) { Platform.runLater(() -> { - - Message message = null; + if (code == HttpStatus.SUCCESS) { message = new Message("消息提示", msg, new FontIcon(Material2OutlinedAL.CHECK_CIRCLE_OUTLINE)); message.getStyleClass().addAll(Styles.SUCCESS); @@ -122,26 +120,26 @@ public class WindowView implements FxmlView, Initializable { } message.setPrefHeight(Region.USE_PREF_SIZE); message.setMaxHeight(Region.USE_PREF_SIZE); + message.setMaxWidth(Region.USE_PREF_SIZE); StackPane.setAlignment(message, Pos.TOP_RIGHT); - StackPane.setMargin(message, new Insets(10, 10, 0, 0)); + StackPane.setMargin(message, new Insets(60, 10, 0, 0)); + Message finalMessage = message; message.setOnClose(e -> { var out = Animations.slideOutUp(finalMessage, Duration.millis(250)); - out.setOnFinished(f -> messagePane.getChildren().remove(finalMessage)); + out.setOnFinished(f -> rootPane.getChildren().remove(finalMessage)); out.playFromStart(); }); -// var in = Animations.slideInDown(message, Duration.millis(250)); - if (!messagePane.getChildren().contains(message)) { - messagePane.getChildren().add(message); + if (!rootPane.getChildren().contains(message)) { + rootPane.getChildren().add(message); } new BounceInRight(message).play(); Timeline fiveSecondsWonder = new Timeline(new KeyFrame(Duration.seconds(5), new EventHandler() { - @Override public void handle(ActionEvent event) { var out = Animations.slideOutUp(finalMessage, Duration.millis(250)); - out.setOnFinished(f -> messagePane.getChildren().remove(finalMessage)); + out.setOnFinished(f -> rootPane.getChildren().remove(finalMessage)); out.playFromStart(); } })); diff --git a/src/main/resources/com/cecilia/view/window/WindowView.fxml b/src/main/resources/com/cecilia/view/window/WindowView.fxml index 96bc4c2..df2a501 100644 --- a/src/main/resources/com/cecilia/view/window/WindowView.fxml +++ b/src/main/resources/com/cecilia/view/window/WindowView.fxml @@ -1,27 +1,11 @@ - - - - - - - - - - - - - - - - - + - + \ No newline at end of file