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;
public BaseDesigner(String[] args) {
init(args);
}
private void init(String[] args) {
RestartHelper.deleteRecordFilesWhenStart();
ConfigManagerFactory.registerConfigManagerProxy(new ConfigManagerCreatorProxy());
//启动core
BuildContext.setBuildFilePath(buildPropertiesPath());
Register.load();
//标记一下是设计器启动
PluginConversionModule.getInstance().markDesignerStart();
SiteCenter.getInstance();
if (isDebug()) {
setDebugEnv();
} else {
@ -82,13 +83,18 @@ public abstract class BaseDesigner extends ToolBarMenuDock {
DesignUtils.clientSend(args);
return;
}
Register.load();
//标记一下是设计器启动
PluginConversionModule.getInstance().markDesignerStart();
SiteCenter.getInstance();
//下面这两句的位置不能随便调换,因为会影响语言切换的问题
initLanguage();
// 在 initLanguage 之后加载设计器国际化文件,确保是正确的语言环境
Inter.loadLocaleFile(GeneralContext.getLocale(), DesignModule.LOCALE_FILE_PATH);
SplashWindow splashWindow = new SplashWindow(createSplashPane());
if (args != null) {
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里的东西,预加载时也要用到
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();
@ -199,7 +209,8 @@ public abstract class BaseDesigner extends ToolBarMenuDock {
//在VM options里加入-Ddebug=true激活
private boolean isDebug() {
return "true".equals(System.getProperty("debug"));
return ComparatorUtils.equals("true", System.getProperty("debug"));
}
private static final int DEBUG_PORT = 51463;
@ -250,32 +261,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) {
@ -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
*/

Loading…
Cancel
Save