diff --git a/dillon-ui/dillon-ui-fx/src/main/java/com/lw/fx/AppUI.java b/dillon-ui/dillon-ui-fx/src/main/java/com/lw/fx/AppUI.java index a09c102..73fecec 100755 --- a/dillon-ui/dillon-ui-fx/src/main/java/com/lw/fx/AppUI.java +++ b/dillon-ui/dillon-ui-fx/src/main/java/com/lw/fx/AppUI.java @@ -178,4 +178,10 @@ public class AppUI extends Application { private void onBrowseEvent(BrowseEvent event) { getHostServices().showDocument(event.getUri().toString()); } + + @Override + public void stop() throws Exception { + super.stop(); + + } } diff --git a/dillon-ui/dillon-ui-fx/src/main/java/com/lw/fx/view/main/MainView.java b/dillon-ui/dillon-ui-fx/src/main/java/com/lw/fx/view/main/MainView.java index 16796c2..b6f3270 100644 --- a/dillon-ui/dillon-ui-fx/src/main/java/com/lw/fx/view/main/MainView.java +++ b/dillon-ui/dillon-ui-fx/src/main/java/com/lw/fx/view/main/MainView.java @@ -169,9 +169,7 @@ public class MainView implements FxmlView, Initializable { closeBut.setGraphic(close); closeBut.setOnAction(actionEvent -> { - Stage stage = (Stage) closeBut.getScene().getWindow(); - - stage.close(); + mainViewModel.loginOut(true); }); @@ -387,7 +385,7 @@ public class MainView implements FxmlView, Initializable { Bounds bounds = userBut.localToScreen(userBut.getBoundsInLocal()); contextMenu.show(userBut, bounds.getMinX(), bounds.getMinY() + bounds.getHeight()); - menuItem2.setOnAction(actionEvent -> mainViewModel.loginOut()); + menuItem2.setOnAction(actionEvent -> mainViewModel.loginOut(false)); menuItem1.setOnAction(actionEvent -> { ViewTuple viewTuple = FluentViewLoader.fxmlView(UserInfoView.class).load(); diff --git a/dillon-ui/dillon-ui-fx/src/main/java/com/lw/fx/view/main/MainViewModel.java b/dillon-ui/dillon-ui-fx/src/main/java/com/lw/fx/view/main/MainViewModel.java index 26fcb21..26a71fa 100644 --- a/dillon-ui/dillon-ui-fx/src/main/java/com/lw/fx/view/main/MainViewModel.java +++ b/dillon-ui/dillon-ui-fx/src/main/java/com/lw/fx/view/main/MainViewModel.java @@ -5,6 +5,7 @@ import com.lw.dillon.admin.module.system.controller.admin.auth.vo.AuthPermission import com.lw.fx.request.Request; import com.lw.fx.store.AppStore; import com.lw.fx.util.MessageType; +import com.lw.fx.websocket.SSLWebSocketClient; import com.lw.ui.request.api.system.AuthFeign; import com.lw.ui.request.api.system.NotifyMessageFeign; import de.saxsys.mvvmfx.MvvmFX; @@ -62,7 +63,7 @@ public class MainViewModel implements ViewModel, SceneLifecycle { } - public void loginOut() { + public void loginOut(boolean exit) { ProcessChain.create() .addSupplierInExecutor(() -> { return Request.connector(AuthFeign.class).logout(); @@ -70,8 +71,14 @@ public class MainViewModel implements ViewModel, SceneLifecycle { .addConsumerInPlatformThread(r -> { if (r.isSuccess()) { - MvvmFX.getNotificationCenter().publish("showLoginRegister"); - MvvmFX.getNotificationCenter().publish("message", "退出成功!", MessageType.SUCCESS); + SSLWebSocketClient.getInstance().loginOut(); + if (exit) { + System.exit(0); + } else { + MvvmFX.getNotificationCenter().publish("showLoginRegister"); + MvvmFX.getNotificationCenter().publish("message", "退出成功!", MessageType.SUCCESS); + } + } }) .onException(e -> { @@ -87,6 +94,7 @@ public class MainViewModel implements ViewModel, SceneLifecycle { */ @Override public void onViewRemoved() { + System.err.println("------remove"); } diff --git a/dillon-ui/dillon-ui-swing/src/main/java/com/lw/swing/view/MainFrame.java b/dillon-ui/dillon-ui-swing/src/main/java/com/lw/swing/view/MainFrame.java index 3d8ed6b..c992f47 100644 --- a/dillon-ui/dillon-ui-swing/src/main/java/com/lw/swing/view/MainFrame.java +++ b/dillon-ui/dillon-ui-swing/src/main/java/com/lw/swing/view/MainFrame.java @@ -75,7 +75,6 @@ public class MainFrame extends JFrame { public void windowClosed(WindowEvent e) { super.windowClosed(e); loginOut(true); - System.exit(0); } });