|
|
@ -1,6 +1,7 @@ |
|
|
|
package com.fr.start.module; |
|
|
|
package com.fr.start.module; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import com.fr.design.file.HistoryTemplateListCache; |
|
|
|
import com.fr.design.mainframe.DesignerContext; |
|
|
|
import com.fr.design.mainframe.DesignerContext; |
|
|
|
import com.fr.event.Event; |
|
|
|
import com.fr.event.Event; |
|
|
|
import com.fr.event.Listener; |
|
|
|
import com.fr.event.Listener; |
|
|
@ -28,13 +29,13 @@ public class DesignerStartup extends Activator { |
|
|
|
@Override |
|
|
|
@Override |
|
|
|
@Metrics |
|
|
|
@Metrics |
|
|
|
public void start() { |
|
|
|
public void start() { |
|
|
|
|
|
|
|
|
|
|
|
startSub(PreStartActivator.class); |
|
|
|
startSub(PreStartActivator.class); |
|
|
|
//启动基础部分
|
|
|
|
//启动基础部分
|
|
|
|
startSub(BasicActivator.class); |
|
|
|
startSub(BasicActivator.class); |
|
|
|
final String[] args = getModule().upFindSingleton(StartupArgs.class).get(); |
|
|
|
final String[] args = getModule().upFindSingleton(StartupArgs.class).get(); |
|
|
|
final Designer designer = new Designer(args); |
|
|
|
final Designer designer = new Designer(args); |
|
|
|
|
|
|
|
|
|
|
|
startSub(DesignerWorkspaceProvider.class); |
|
|
|
startSub(DesignerWorkspaceProvider.class); |
|
|
|
registerEnvListener(); |
|
|
|
registerEnvListener(); |
|
|
|
//启动env
|
|
|
|
//启动env
|
|
|
@ -49,7 +50,7 @@ public class DesignerStartup extends Activator { |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
}); |
|
|
|
service.submit(new Runnable() { |
|
|
|
service.submit(new Runnable() { |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public void run() { |
|
|
|
public void run() { |
|
|
|
try { |
|
|
|
try { |
|
|
@ -63,46 +64,65 @@ public class DesignerStartup extends Activator { |
|
|
|
DesignerContext.getDesignerFrame().setVisible(true); |
|
|
|
DesignerContext.getDesignerFrame().setVisible(true); |
|
|
|
//启动画面结束
|
|
|
|
//启动画面结束
|
|
|
|
SplashContext.getInstance().hide(); |
|
|
|
SplashContext.getInstance().hide(); |
|
|
|
|
|
|
|
|
|
|
|
DesignerContext.getDesignerFrame().getProgressDialog().setVisible(true); |
|
|
|
DesignerContext.getDesignerFrame().getProgressDialog().setVisible(true); |
|
|
|
startSub(StartFinishActivator.class); |
|
|
|
startSub(StartFinishActivator.class); |
|
|
|
FineRuntime.startFinish(); |
|
|
|
FineRuntime.startFinish(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void browserDemo() { |
|
|
|
private void browserDemo() { |
|
|
|
|
|
|
|
|
|
|
|
if (getModule().leftFindSingleton(StartupArgs.class) != null && getModule().leftFindSingleton(StartupArgs.class).isDemo()) { |
|
|
|
if (getModule().leftFindSingleton(StartupArgs.class) != null && getModule().leftFindSingleton(StartupArgs.class).isDemo()) { |
|
|
|
ServerStarter.browserDemoURL(); |
|
|
|
ServerStarter.browserDemoURL(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* 切换环境时,重新启动所有相关模块 |
|
|
|
* 注册切换环境前后事件监听 |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
private void registerEnvListener() { |
|
|
|
private void registerEnvListener() { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*切换环境前,关闭所有相关模块*/ |
|
|
|
listenEvent(WorkspaceEvent.BeforeSwitch, new Listener<Workspace>() { |
|
|
|
listenEvent(WorkspaceEvent.BeforeSwitch, new Listener<Workspace>() { |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public void on(Event event, Workspace param) { |
|
|
|
public void on(Event event, Workspace current) { |
|
|
|
|
|
|
|
|
|
|
|
getSub(EnvBasedModule.class).stop(); |
|
|
|
getSub(EnvBasedModule.class).stop(); |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
/*切换环境后,重新启动所有相关模块*/ |
|
|
|
listenEvent(WorkspaceEvent.AfterSwitch, new Listener<Workspace>(Integer.MAX_VALUE) { |
|
|
|
listenEvent(WorkspaceEvent.AfterSwitch, new Listener<Workspace>(Integer.MAX_VALUE) { |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public void on(Event event, Workspace param) { |
|
|
|
public void on(Event event, Workspace current) { |
|
|
|
|
|
|
|
|
|
|
|
getSub(EnvBasedModule.class).start(); |
|
|
|
getSub(EnvBasedModule.class).start(); |
|
|
|
ExecutorService service = Executors.newSingleThreadExecutor(); |
|
|
|
// 切换后的环境是本地环境才启动内置服务器
|
|
|
|
service.submit(new Runnable() { |
|
|
|
if (current.isLocal()) { |
|
|
|
@Override |
|
|
|
ExecutorService service = Executors.newSingleThreadExecutor(); |
|
|
|
public void run() { |
|
|
|
service.submit(new Runnable() { |
|
|
|
FineEmbedServer.start(); |
|
|
|
@Override |
|
|
|
} |
|
|
|
public void run() { |
|
|
|
}); |
|
|
|
FineEmbedServer.start(); |
|
|
|
service.shutdown(); |
|
|
|
} |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
service.shutdown(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
/*切换环境前,存储一下打开的所有文件对象,优先级高于默认优先级,要先于 关闭相关模块部分 被触发*/ |
|
|
|
|
|
|
|
listenEvent(WorkspaceEvent.BeforeSwitch, new Listener<Workspace>(Integer.MAX_VALUE) { |
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
|
|
public void on(Event event, Workspace workspace) { |
|
|
|
|
|
|
|
HistoryTemplateListCache.getInstance().stash(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*切换环境后,装载一下打开的所有文件对象,优先级低于默认优先级,要后于 启动相关模块部分 被触发*/ |
|
|
|
|
|
|
|
listenEvent(WorkspaceEvent.AfterSwitch, new Listener<Workspace>(Integer.MIN_VALUE) { |
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
|
|
public void on(Event event, Workspace workspace) { |
|
|
|
|
|
|
|
HistoryTemplateListCache.getInstance().load(); |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|