diff --git a/designer-realize/src/main/java/com/fr/start/EnvSwitcher.java b/designer-realize/src/main/java/com/fr/start/EnvSwitcher.java deleted file mode 100644 index 301c38f2d..000000000 --- a/designer-realize/src/main/java/com/fr/start/EnvSwitcher.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.fr.start; - -import com.fr.design.DesignerEnvManager; -import com.fr.design.env.DesignerWorkspaceGenerator; -import com.fr.design.mainframe.TemplatePane; -import com.fr.workspace.WorkContext; -import com.fr.workspace.Workspace; - -/** - * Created by juhaoyu on 2018/1/31. - * 环境切换器 - */ -public class EnvSwitcher { - - public void switch2LastEnv() { - try { - - String current = DesignerEnvManager.getEnvManager().getCurEnvName(); - Workspace workspace = DesignerWorkspaceGenerator.generate(DesignerEnvManager.getEnvManager().getWorkspaceInfo(current)); - if (workspace == null) { - TemplatePane.getInstance().dealEvnExceptionWhenStartDesigner(); - } else { - WorkContext.switchTo(workspace); - } - } catch (Throwable e) { - TemplatePane.getInstance().dealEvnExceptionWhenStartDesigner(); - } - } -} diff --git a/designer-realize/src/main/java/com/fr/start/module/DesignerStartup.java b/designer-realize/src/main/java/com/fr/start/module/DesignerStartup.java index 4698b760d..aac6112ee 100644 --- a/designer-realize/src/main/java/com/fr/start/module/DesignerStartup.java +++ b/designer-realize/src/main/java/com/fr/start/module/DesignerStartup.java @@ -1,11 +1,9 @@ package com.fr.start.module; -import com.fr.design.DesignerEnvManager; import com.fr.design.mainframe.DesignerContext; import com.fr.event.Event; import com.fr.event.Listener; -import com.fr.general.ComparatorUtils; import com.fr.module.Activator; import com.fr.record.analyzer.EnableMetrics; import com.fr.record.analyzer.Metrics; @@ -28,30 +26,25 @@ public class DesignerStartup extends Activator { @Override @Metrics public void start() { + startSub(PreStartActivator.class); //启动基础部分 startSub(BasicActivator.class); final String[] args = getModule().upFindSingleton(StartupArgs.class).get(); final Designer designer = new Designer(args); - + startSub(DesignerWorkspaceProvider.class); registerEnvListener(); //启动env startSub(EnvBasedModule.class); - - if (args != null) { - for (String arg : args) { - if (ComparatorUtils.equals(arg, "demo")) { - DesignerEnvManager.getEnvManager().setCurrentEnv2Default(); - ServerStarter.browserDemoURL(); - break; - } - } - } + //designer模块启动好后,查看demo + browserDemo(); ExecutorService service = Executors.newSingleThreadExecutor(); service.submit(new Runnable() { + @Override public void run() { + designer.show(args); DesignerContext.getDesignerFrame().getProgressDialog().dispose(); } @@ -60,11 +53,19 @@ public class DesignerStartup extends Activator { DesignerContext.getDesignerFrame().setVisible(true); //启动画面结束 SplashContext.getInstance().hide(); - + DesignerContext.getDesignerFrame().getProgressDialog().setVisible(true); startSub(StartFinishActivator.class); + } - + + private void browserDemo() { + + if (getModule().leftFindSingleton(StartupArgs.class) != null && getModule().leftFindSingleton(StartupArgs.class).isDemo()) { + ServerStarter.browserDemoURL(); + } + } + /** * 切换环境时,重新启动所有相关模块 */ diff --git a/designer-realize/src/main/java/com/fr/start/module/DesignerWorkspaceProvider.java b/designer-realize/src/main/java/com/fr/start/module/DesignerWorkspaceProvider.java index bd8159c6d..bfcb4fefe 100644 --- a/designer-realize/src/main/java/com/fr/start/module/DesignerWorkspaceProvider.java +++ b/designer-realize/src/main/java/com/fr/start/module/DesignerWorkspaceProvider.java @@ -1,33 +1,46 @@ package com.fr.start.module; import com.fr.design.DesignerEnvManager; - +import com.fr.design.env.DesignerWorkspaceGenerator; +import com.fr.design.mainframe.TemplatePane; +import com.fr.general.ComparatorUtils; import com.fr.module.Activator; -import com.fr.start.EnvSwitcher; +import com.fr.workspace.WorkContext; +import com.fr.workspace.Workspace; /** * Created by juhaoyu on 2018/1/8. * 设计器启动时的环境相关模块activator */ public class DesignerWorkspaceProvider extends Activator { - + @Override public void start() { //检查环境 DesignerEnvManager.checkNameEnvMap(); - - EnvSwitcher switcher = new EnvSwitcher(); - //设置好环境即可,具体跟环境有关的模块会自动调用 - switcher.switch2LastEnv(); - getRoot().setSingleton(EnvSwitcher.class, switcher); + + if (getModule().leftFindSingleton(StartupArgs.class) != null && getModule().leftFindSingleton(StartupArgs.class).isDemo()) { + DesignerEnvManager.getEnvManager().setCurrentEnv2Default(); + } else { + try { + String current = DesignerEnvManager.getEnvManager().getCurEnvName(); + Workspace workspace = DesignerWorkspaceGenerator.generate(DesignerEnvManager.getEnvManager().getWorkspaceInfo(current)); + if (workspace == null) { + TemplatePane.getInstance().dealEvnExceptionWhenStartDesigner(); + } else { + WorkContext.switchTo(workspace); + } + } catch (Throwable e) { + TemplatePane.getInstance().dealEvnExceptionWhenStartDesigner(); + } + } } - - + + @Override public void stop() { - //清空模块 - getRoot().removeSingleton(EnvSwitcher.class); + } - - + + } diff --git a/designer-realize/src/main/java/com/fr/start/module/StartupArgs.java b/designer-realize/src/main/java/com/fr/start/module/StartupArgs.java index b957e8d65..678147f54 100644 --- a/designer-realize/src/main/java/com/fr/start/module/StartupArgs.java +++ b/designer-realize/src/main/java/com/fr/start/module/StartupArgs.java @@ -1,5 +1,7 @@ package com.fr.start.module; +import com.fr.general.ComparatorUtils; + /** * Created by juhaoyu on 2018/1/8. * 封装启动参数 @@ -17,5 +19,20 @@ public class StartupArgs { return args; } + + /** + * 是否是产品演示 + */ + public boolean isDemo() { + + if (args != null) { + for (String arg : args) { + if (ComparatorUtils.equals(arg, "demo")) { + return true; + } + } + } + return false; + } }