diff --git a/designer_base/src/com/fr/start/BaseDesigner.java b/designer_base/src/com/fr/start/BaseDesigner.java index 34d2bb243..448e4f414 100644 --- a/designer_base/src/com/fr/start/BaseDesigner.java +++ b/designer_base/src/com/fr/start/BaseDesigner.java @@ -100,43 +100,47 @@ public abstract class BaseDesigner extends ToolBarMenuDock { } } } - + initLookAndFeel(args, splashWindow); + } + + private void initLookAndFeel(String[] args, SplashWindow splashWindow) { + // 初始化look and feel.这个在预加载之前执行是因为lookAndFeel里的东西,预加载时也要用到 DesignUtils.initLookAndFeel(); - + DesignUtils.creatListeningServer(getStartPort(), startFileSuffix()); - + // 初始化Log Handler DesignerEnvManager.loadLogSetting(); DesignerFrame df = createDesignerFrame(); - + // 默认加载工作目录,用于读取License switch2LastEnv(); - + initDefaultFont(); //PluginManager要在环境切换和模块启动之前初始化 PluginManager.registerEnvListener(); // 必须先初始化Env再去startModule, 不然会导致lic读取不到 ModuleContext.startModule(module2Start()); - + // 再次加载工作目录,用于读取工作目录下的各种插件 switch2LastEnv(); - + ModuleContext.clearModuleListener(); collectUserInformation(); showDesignerFrame(args, df, false); for (int i = 0; !TemplateTreePane.getInstance().getTemplateFileTree().isTemplateShowing() && i < LOAD_TREE_MAXNUM; i++) { TemplateTreePane.getInstance().getTemplateFileTree().refresh(); } - + splashWindow.setVisible(false); splashWindow.dispose(); - + bindGlobalListener(); - + showErrorPluginsMessage(); } - + private void bindGlobalListener() { GlobalListenerProviderManager.getInstance().init(); @@ -251,32 +255,7 @@ public abstract class BaseDesigner extends ToolBarMenuDock { file = FILEFactory.createFILE(FILEFactory.ENV_PREFIX + DesignerEnvManager.getEnvManager().getLastOpenFile()); } - - //启动时打开指定文件的接口 - DesignerStartOpenFileProcessor processor = ExtraDesignClassManager.getInstance().getSingle(DesignerStartOpenFileProcessor.XML_TAG); - if (processor != null) { - FILE f = processor.fileToShow(); - if (f != null) { - file = f;//避免null - } else { - isException = true;//此时有文件nullpointer异常,执行打开空文件 - } - } - if (file.exists() && !isException) { - df.openTemplate(file); - } else { - df.addAndActivateJTemplate(); - MutilTempalteTabPane.getInstance().setTemTemplate(HistoryTemplateListPane.getInstance().getCurrentEditingTemplate()); - } - if (OperatingSystem.isMacOS()) { - enableFullScreenMode(df); - } - df.addWindowListener(new WindowAdapter() { - public void windowOpened(WindowEvent e) { - df.getSelectedJTemplate().requestGridFocus(); - } - }); - df.setVisible(true); + isException = openFile(df, isException, file); } catch (Exception e) { FRLogger.getLogger().error(e.getMessage(), e); if (!isException) { @@ -286,8 +265,38 @@ public abstract class BaseDesigner extends ToolBarMenuDock { } } } - - + + private boolean openFile(final DesignerFrame df, boolean isException, FILE file) { + + //启动时打开指定文件的接口 + DesignerStartOpenFileProcessor processor = ExtraDesignClassManager.getInstance().getSingle(DesignerStartOpenFileProcessor.XML_TAG); + if (processor != null) { + FILE f = processor.fileToShow(); + if (f != null) { + file = f;//避免null + } else { + isException = true;//此时有文件nullpointer异常,执行打开空文件 + } + } + if (file.exists() && !isException) { + df.openTemplate(file); + } else { + df.addAndActivateJTemplate(); + MutilTempalteTabPane.getInstance().setTemTemplate(HistoryTemplateListPane.getInstance().getCurrentEditingTemplate()); + } + if (OperatingSystem.isMacOS()) { + enableFullScreenMode(df); + } + df.addWindowListener(new WindowAdapter() { + public void windowOpened(WindowEvent e) { + df.getSelectedJTemplate().requestGridFocus(); + } + }); + df.setVisible(true); + return isException; + } + + /** * @param window */