Browse Source

Merge pull request #23 in DESIGN/design from ~VITO/c-design:feature/10.0 to feature/10.0

* commit 'a52503737ad60ac7808b34ddc2ac1cdd31ea85ef':
  无jira任务 10.0设计器调试启动问题,设置环境需要在设置buildfile之后
master
superman 7 years ago
parent
commit
b30b76c1fe
  1. 63
      designer/src/com/fr/start/module/DesignerStartup.java
  2. 57
      designer/src/com/fr/start/module/PreStartActivator.java

63
designer/src/com/fr/start/module/DesignerStartup.java

@ -1,11 +1,7 @@
package com.fr.start.module;
import com.fr.design.DesignerEnvManager;
import com.fr.design.utils.DesignUtils;
import com.fr.general.ComparatorUtils;
import com.fr.module.Activator;
import com.fr.stable.CoreActivator;
import com.fr.stable.ProductConstants;
import com.fr.stable.module.ModuleListener;
import com.fr.start.Designer;
import com.fr.start.EnvSwitcher;
@ -13,26 +9,15 @@ import com.fr.start.ReportSplashPane;
import com.fr.start.SplashWindow;
import com.fr.startup.activators.BasicActivator;
import java.io.File;
/**
* Created by juhaoyu on 2018/1/8.
*/
public class DesignerStartup extends Activator {
private static final int MESSAGE_PORT = 51462;
private static final int DEBUG_PORT = 51463;
@Override
public void start() {
if (checkMultiStart()) {
return;
}
startSub(PreStartActivator.class);
//启动基础部分
startSub(BasicActivator.class);
//启动画面
@ -52,53 +37,17 @@ public class DesignerStartup extends Activator {
splashWindow.dispose();
startSub(StartFinishActivator.class);
}
private SplashWindow createSplashWindow() {
ReportSplashPane reportSplashPane = new ReportSplashPane();
SplashWindow splashWindow = new SplashWindow(reportSplashPane);
getModule().setSingleton(ModuleListener.class, reportSplashPane.getModuleListener());
return splashWindow;
}
private boolean checkMultiStart() {
if (isDebug()) {
setDebugEnv();
} else {
DesignUtils.setPort(getStartPort());
}
// 如果端口被占用了 说明程序已经运行了一次,也就是说,已经建立一个监听服务器,现在只要给服务器发送命令就好了
if (DesignUtils.isStarted()) {
DesignUtils.clientSend(getModule().upFindSingleton(StartupArgs.class).get());
return true;
}
return false;
}
private int getStartPort() {
return MESSAGE_PORT;
}
//在VM options里加入-Ddebug=true激活
private boolean isDebug() {
return ComparatorUtils.equals("true", System.getProperty("debug"));
}
//端口改一下,环境配置文件改一下。便于启动两个设计器,进行对比调试
private void setDebugEnv() {
DesignUtils.setPort(DEBUG_PORT);
DesignerEnvManager.setEnvFile(new File(ProductConstants.getEnvHome() + File.separator + ProductConstants.APP_NAME + "Env_debug.xml"));
}
@Override
public void stop() {
}
}

57
designer/src/com/fr/start/module/PreStartActivator.java

@ -3,32 +3,79 @@ package com.fr.start.module;
import com.fr.base.FRContext;
import com.fr.design.DesignerEnvManager;
import com.fr.design.RestartHelper;
import com.fr.design.utils.DesignUtils;
import com.fr.general.ComparatorUtils;
import com.fr.general.SiteCenter;
import com.fr.module.Activator;
import com.fr.stable.BuildContext;
import com.fr.stable.ProductConstants;
import java.io.File;
/**
* Created by juhaoyu on 2018/1/8.
*/
public class PreStartActivator extends Activator {
private static final int MESSAGE_PORT = 51462;
private static final int DEBUG_PORT = 51463;
@Override
public void start() {
RestartHelper.deleteRecordFilesWhenStart();
BuildContext.setBuildFilePath("/com/fr/stable/build.properties");
SiteCenter.getInstance();
if (checkMultiStart()) {
return;
}
initLanguage();
}
private boolean checkMultiStart() {
if (isDebug()) {
setDebugEnv();
} else {
DesignUtils.setPort(getStartPort());
}
// 如果端口被占用了 说明程序已经运行了一次,也就是说,已经建立一个监听服务器,现在只要给服务器发送命令就好了
if (DesignUtils.isStarted()) {
DesignUtils.clientSend(getModule().upFindSingleton(StartupArgs.class).get());
return true;
}
return false;
}
private int getStartPort() {
return MESSAGE_PORT;
}
//在VM options里加入-Ddebug=true激活
private boolean isDebug() {
return ComparatorUtils.equals("true", System.getProperty("debug"));
}
//端口改一下,环境配置文件改一下。便于启动两个设计器,进行对比调试
private void setDebugEnv() {
DesignUtils.setPort(DEBUG_PORT);
DesignerEnvManager.setEnvFile(new File(ProductConstants.getEnvHome() + File.separator + ProductConstants.APP_NAME + "Env_debug.xml"));
}
private void initLanguage() {
//这两句的位置不能随便调换,因为会影响语言切换的问题
FRContext.setLanguage(DesignerEnvManager.getEnvManager(false).getLanguage());
DesignerEnvManager.checkNameEnvMap();
}
@Override
public void stop() {
}
}

Loading…
Cancel
Save