Browse Source

Merge pull request #1385 in BA/design from ~JU/9.0release-design:release/9.0 to release/9.0

* commit 'd0c789075f3409ce4de745837f1ac49ed3dc63b5':
  pmd
  pmd
  REPORT-5217
master
neil 7 years ago
parent
commit
604a606bb4
  1. 114
      designer_base/src/com/fr/start/BaseDesigner.java

114
designer_base/src/com/fr/start/BaseDesigner.java

@ -62,16 +62,17 @@ public abstract class BaseDesigner extends ToolBarMenuDock {
private Timer timer; private Timer timer;
public BaseDesigner(String[] args) { public BaseDesigner(String[] args) {
init(args);
}
private void init(String[] args) {
RestartHelper.deleteRecordFilesWhenStart(); RestartHelper.deleteRecordFilesWhenStart();
ConfigManagerFactory.registerConfigManagerProxy(new ConfigManagerCreatorProxy()); ConfigManagerFactory.registerConfigManagerProxy(new ConfigManagerCreatorProxy());
//启动core //启动core
BuildContext.setBuildFilePath(buildPropertiesPath()); BuildContext.setBuildFilePath(buildPropertiesPath());
Register.load();
//标记一下是设计器启动
PluginConversionModule.getInstance().markDesignerStart();
SiteCenter.getInstance();
if (isDebug()) { if (isDebug()) {
setDebugEnv(); setDebugEnv();
} else { } else {
@ -82,13 +83,18 @@ public abstract class BaseDesigner extends ToolBarMenuDock {
DesignUtils.clientSend(args); DesignUtils.clientSend(args);
return; return;
} }
Register.load();
//标记一下是设计器启动
PluginConversionModule.getInstance().markDesignerStart();
SiteCenter.getInstance();
//下面这两句的位置不能随便调换,因为会影响语言切换的问题 //下面这两句的位置不能随便调换,因为会影响语言切换的问题
initLanguage(); initLanguage();
// 在 initLanguage 之后加载设计器国际化文件,确保是正确的语言环境 // 在 initLanguage 之后加载设计器国际化文件,确保是正确的语言环境
Inter.loadLocaleFile(GeneralContext.getLocale(), DesignModule.LOCALE_FILE_PATH); Inter.loadLocaleFile(GeneralContext.getLocale(), DesignModule.LOCALE_FILE_PATH);
SplashWindow splashWindow = new SplashWindow(createSplashPane()); SplashWindow splashWindow = new SplashWindow(createSplashPane());
if (args != null) { if (args != null) {
for (String arg : args) { for (String arg : args) {
@ -99,43 +105,47 @@ public abstract class BaseDesigner extends ToolBarMenuDock {
} }
} }
} }
initLookAndFeel(args, splashWindow);
}
private void initLookAndFeel(String[] args, SplashWindow splashWindow) {
// 初始化look and feel.这个在预加载之前执行是因为lookAndFeel里的东西,预加载时也要用到 // 初始化look and feel.这个在预加载之前执行是因为lookAndFeel里的东西,预加载时也要用到
DesignUtils.initLookAndFeel(); DesignUtils.initLookAndFeel();
DesignUtils.creatListeningServer(getStartPort(), startFileSuffix()); DesignUtils.creatListeningServer(getStartPort(), startFileSuffix());
// 初始化Log Handler // 初始化Log Handler
DesignerEnvManager.loadLogSetting(); DesignerEnvManager.loadLogSetting();
DesignerFrame df = createDesignerFrame(); DesignerFrame df = createDesignerFrame();
// 默认加载工作目录,用于读取License // 默认加载工作目录,用于读取License
switch2LastEnv(); switch2LastEnv();
initDefaultFont(); initDefaultFont();
//PluginManager要在环境切换和模块启动之前初始化 //PluginManager要在环境切换和模块启动之前初始化
PluginManager.registerEnvListener(); PluginManager.registerEnvListener();
// 必须先初始化Env再去startModule, 不然会导致lic读取不到 // 必须先初始化Env再去startModule, 不然会导致lic读取不到
ModuleContext.startModule(module2Start()); ModuleContext.startModule(module2Start());
// 再次加载工作目录,用于读取工作目录下的各种插件 // 再次加载工作目录,用于读取工作目录下的各种插件
switch2LastEnv(); switch2LastEnv();
ModuleContext.clearModuleListener(); ModuleContext.clearModuleListener();
collectUserInformation(); collectUserInformation();
showDesignerFrame(args, df, false); showDesignerFrame(args, df, false);
for (int i = 0; !TemplateTreePane.getInstance().getTemplateFileTree().isTemplateShowing() && i < LOAD_TREE_MAXNUM; i++) { for (int i = 0; !TemplateTreePane.getInstance().getTemplateFileTree().isTemplateShowing() && i < LOAD_TREE_MAXNUM; i++) {
TemplateTreePane.getInstance().getTemplateFileTree().refresh(); TemplateTreePane.getInstance().getTemplateFileTree().refresh();
} }
splashWindow.setVisible(false); splashWindow.setVisible(false);
splashWindow.dispose(); splashWindow.dispose();
bindGlobalListener(); bindGlobalListener();
showErrorPluginsMessage(); showErrorPluginsMessage();
} }
private void bindGlobalListener() { private void bindGlobalListener() {
GlobalListenerProviderManager.getInstance().init(); GlobalListenerProviderManager.getInstance().init();
@ -199,7 +209,8 @@ public abstract class BaseDesigner extends ToolBarMenuDock {
//在VM options里加入-Ddebug=true激活 //在VM options里加入-Ddebug=true激活
private boolean isDebug() { private boolean isDebug() {
return "true".equals(System.getProperty("debug"));
return ComparatorUtils.equals("true", System.getProperty("debug"));
} }
private static final int DEBUG_PORT = 51463; private static final int DEBUG_PORT = 51463;
@ -250,32 +261,7 @@ public abstract class BaseDesigner extends ToolBarMenuDock {
file = FILEFactory.createFILE(FILEFactory.ENV_PREFIX file = FILEFactory.createFILE(FILEFactory.ENV_PREFIX
+ DesignerEnvManager.getEnvManager().getLastOpenFile()); + DesignerEnvManager.getEnvManager().getLastOpenFile());
} }
isException = openFile(df, isException, 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);
} catch (Exception e) { } catch (Exception e) {
FRLogger.getLogger().error(e.getMessage(), e); FRLogger.getLogger().error(e.getMessage(), e);
if (!isException) { if (!isException) {
@ -285,8 +271,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 * @param window
*/ */

Loading…
Cancel
Save