From 102194f7b336202c36eb8994743f06b4dbad522c Mon Sep 17 00:00:00 2001 From: Harrison Date: Thu, 16 Nov 2023 09:57:36 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20REPORT-106669=20=E6=8A=A5=E8=A1=A8?= =?UTF-8?q?=E5=9F=8B=E7=82=B9=E8=A1=A5=E5=85=85=20-=20=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E8=B4=A8=E9=87=8F=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/DesignerWorkspaceActivator.java | 80 ++++++++++--------- 1 file changed, 42 insertions(+), 38 deletions(-) diff --git a/designer-realize/src/main/java/com/fr/start/module/DesignerWorkspaceActivator.java b/designer-realize/src/main/java/com/fr/start/module/DesignerWorkspaceActivator.java index e8e2e0f121..3813edcdbd 100644 --- a/designer-realize/src/main/java/com/fr/start/module/DesignerWorkspaceActivator.java +++ b/designer-realize/src/main/java/com/fr/start/module/DesignerWorkspaceActivator.java @@ -22,6 +22,46 @@ import java.util.concurrent.ExecutorService; */ public class DesignerWorkspaceActivator extends Activator { + private final Listener stopModuleAction = new Listener(Integer.MIN_VALUE) { + + @Override + public void on(Event event, Workspace current) { + + stopSub(EnvBasedModule.class); + recordModuleStop(); + } + + private void recordModuleStop() { + + WorkspaceSwitchProcess process = WorkContext.getSwitcher().getProgress(); + Optional.ofNullable(process) + .ifPresent((e) -> e.recordModuleStopUsed(() -> { + FineModule module = (FineModule) ModuleContext.getModule(EnvBasedModule.class); + return module.profileStop(); + })); + } + }; + + private final Listener startModuleAction = new Listener(Integer.MAX_VALUE) { + + @Override + public void on(Event event, Workspace current) { + + startSub(EnvBasedModule.class); + recordModuleStart(); + } + + private void recordModuleStart() { + + WorkspaceSwitchProcess process = WorkContext.getSwitcher().getProgress(); + Optional.ofNullable(process) + .ifPresent((e) -> e.recordModuleStartUsed(() -> { + FineModule module = (FineModule) ModuleContext.getModule(EnvBasedModule.class); + return module.profile(); + })); + } + }; + @Override public void start() { @@ -34,45 +74,9 @@ public class DesignerWorkspaceActivator extends Activator { private void registerEnvListener() { /*切换环境前,关闭所有相关模块,最后执行*/ - listenEvent(WorkspaceEvent.BeforeSwitch, new Listener(Integer.MIN_VALUE) { - - @Override - public void on(Event event, Workspace current) { - - stopSub(EnvBasedModule.class); - recordModuleStop(); - } - - private void recordModuleStop() { - - WorkspaceSwitchProcess process = WorkContext.getSwitcher().getProgress(); - Optional.ofNullable(process) - .ifPresent((e) -> e.recordModuleStopUsed(() -> { - FineModule module = (FineModule) ModuleContext.getModule(EnvBasedModule.class); - return module.profileStop(); - })); - } - }); + listenEvent(WorkspaceEvent.BeforeSwitch, stopModuleAction); /*切换环境后,重新启动所有相关模块,最先执行*/ - listenEvent(WorkspaceEvent.AfterSwitch, new Listener(Integer.MAX_VALUE) { - - @Override - public void on(Event event, Workspace current) { - - startSub(EnvBasedModule.class); - recordModuleStart(); - } - - private void recordModuleStart() { - - WorkspaceSwitchProcess process = WorkContext.getSwitcher().getProgress(); - Optional.ofNullable(process) - .ifPresent((e) -> e.recordModuleStartUsed(() -> { - FineModule module = (FineModule) ModuleContext.getModule(EnvBasedModule.class); - return module.profile(); - })); - } - }); + listenEvent(WorkspaceEvent.AfterSwitch, startModuleAction); /*切换环境前,存储一下打开的所有文件对象,要先于 关闭相关模块部分 被触发*/ listenEvent(WorkspaceEvent.BeforeSwitch, new Listener(Integer.MAX_VALUE) {