|
|
|
package com.fr.startup.ui;
|
|
|
|
|
|
|
|
import com.fr.design.DesignerEnvManager;
|
|
|
|
import com.fr.design.env.DesignerWorkspaceInfo;
|
|
|
|
import com.fr.design.env.DesignerWorkspaceType;
|
|
|
|
import com.fr.third.guava.collect.Lists;
|
|
|
|
import com.fr.workspace.connect.WorkspaceConnectionInfo;
|
|
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.HashMap;
|
|
|
|
import java.util.Iterator;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.Map;
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* created by Harrison on 2022/07/06
|
|
|
|
**/
|
|
|
|
public class StartupPageModel {
|
|
|
|
|
|
|
|
private StartupWorkspaceBean selectWorkspaceInfo;
|
|
|
|
|
|
|
|
private List<StartupWorkspaceBean> workspaceInfos = new ArrayList<>();
|
|
|
|
|
|
|
|
private Map<String, List<String>> recentFilesMap = new HashMap<>();
|
|
|
|
|
|
|
|
private Runnable openLastTemplateRunnable;
|
|
|
|
|
|
|
|
private Runnable createNewTemplateRunnable;
|
|
|
|
|
|
|
|
private Runnable openEmptyTemplateRunnable;
|
|
|
|
|
|
|
|
public static StartupPageModel create() {
|
|
|
|
|
|
|
|
DesignerEnvManager envManager = DesignerEnvManager.getEnvManager();
|
|
|
|
Iterator<String> envNameIterator = envManager.getEnvNameIterator();
|
|
|
|
List<StartupWorkspaceBean> infos = Lists.newArrayList(envNameIterator)
|
|
|
|
.stream()
|
|
|
|
.map((e) -> {
|
|
|
|
DesignerWorkspaceInfo workspaceInfo = envManager.getWorkspaceInfo(e);
|
|
|
|
if (workspaceInfo.getType() == DesignerWorkspaceType.Remote) {
|
|
|
|
WorkspaceConnectionInfo connection = workspaceInfo.getConnection();
|
|
|
|
return new StartupWorkspaceBean(e, connection.getUrl(), workspaceInfo.getType());
|
|
|
|
} else {
|
|
|
|
return new StartupWorkspaceBean(e, workspaceInfo.getPath(), workspaceInfo.getType());
|
|
|
|
}
|
|
|
|
})
|
|
|
|
.collect(Collectors.toList());
|
|
|
|
Map<String, List<String>> recentFileMap = new HashMap<>();
|
|
|
|
for (StartupWorkspaceBean info : infos) {
|
|
|
|
String name = info.getName();
|
|
|
|
List<String> recentFiles = envManager.getRecentOpenedFilePathList4Env(name);
|
|
|
|
recentFileMap.put(name, recentFiles);
|
|
|
|
}
|
|
|
|
return new StartupPageModel(infos, recentFileMap);
|
|
|
|
}
|
|
|
|
|
|
|
|
public StartupPageModel(List<StartupWorkspaceBean> workspaceInfos, Map<String, List<String>> recentFilesMap) {
|
|
|
|
this.selectWorkspaceInfo = workspaceInfos.get(0);
|
|
|
|
this.workspaceInfos = workspaceInfos;
|
|
|
|
this.recentFilesMap = recentFilesMap;
|
|
|
|
}
|
|
|
|
|
|
|
|
public StartupWorkspaceBean getSelectWorkspaceInfo() {
|
|
|
|
return selectWorkspaceInfo;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setSelectWorkspaceInfo(StartupWorkspaceBean selectWorkspaceInfo) {
|
|
|
|
this.selectWorkspaceInfo = selectWorkspaceInfo;
|
|
|
|
}
|
|
|
|
|
|
|
|
public List<StartupWorkspaceBean> getWorkspaceInfos() {
|
|
|
|
return workspaceInfos;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setWorkspaceInfos(List<StartupWorkspaceBean> workspaceInfos) {
|
|
|
|
this.workspaceInfos = workspaceInfos;
|
|
|
|
}
|
|
|
|
|
|
|
|
public Map<String, List<String>> getRecentFilesMap() {
|
|
|
|
return recentFilesMap;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setRecentFilesMap(Map<String, List<String>> recentFilesMap) {
|
|
|
|
this.recentFilesMap = recentFilesMap;
|
|
|
|
}
|
|
|
|
|
|
|
|
public Runnable getOpenLastTemplateRunnable() {
|
|
|
|
return openLastTemplateRunnable;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setOpenLastTemplateRunnable(Runnable openLastTemplateRunnable) {
|
|
|
|
this.openLastTemplateRunnable = openLastTemplateRunnable;
|
|
|
|
}
|
|
|
|
|
|
|
|
public Runnable getCreateNewTemplateRunnable() {
|
|
|
|
return createNewTemplateRunnable;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setCreateNewTemplateRunnable(Runnable createNewTemplateRunnable) {
|
|
|
|
this.createNewTemplateRunnable = createNewTemplateRunnable;
|
|
|
|
}
|
|
|
|
|
|
|
|
public Runnable getOpenEmptyTemplateRunnable() {
|
|
|
|
return openEmptyTemplateRunnable;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setOpenEmptyTemplateRunnable(Runnable openEmptyTemplateRunnable) {
|
|
|
|
this.openEmptyTemplateRunnable = openEmptyTemplateRunnable;
|
|
|
|
}
|
|
|
|
}
|