Browse Source

REPORT-81880 优化模板定位逻辑

release/11.0
Destiny.Lin 2 years ago
parent
commit
5b503ffba6
  1. 35
      designer-base/src/main/java/com/fr/design/mainframe/DesignerFrame.java
  2. 37
      designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITTableButton.java

35
designer-base/src/main/java/com/fr/design/mainframe/DesignerFrame.java

@ -886,6 +886,39 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta
layeredPane.repaint();
}
/**
* 激活模板
* <p>
* activateJTemplate需要模板存在openTemplate需要模板保存过该方法模板保存与未保存皆可激活模板如果关闭并且保存过会重新打开
*
* @param templatePath 模板路径 template.getPath()
* @param templateName 模板名称
*/
public void openOrActiveTemplate(String templatePath, String templateName) {
//没保存过的模板如果要激活就要从当前历史模板列表里面找
if (isTemplateNeverSaved(templatePath)) {
int index = HistoryTemplateListCache.getInstance().contains(templateName);
//如果历史模板列表中存在则激活
if (index != -1) {
DesignerContext.getDesignerFrame().activateJTemplate(HistoryTemplateListCache.getInstance().getTemplate(index));
}
} else {
DesignerContext.getDesignerFrame().openTemplate(FILEFactory.createFILE(templatePath));
}
}
/**
* 指定路径的模板是否保存过
*
* @param templatePath 模板路径 template.getPath()
* @return 如果模板没保存过则返回true
*/
private boolean isTemplateNeverSaved(String templatePath) {
FILE tplFile = FILEFactory.createFILE(templatePath);
//没保存过的模板获取到的templatePath所生成的FILE文件会不存在
return tplFile == null || !tplFile.exists() || StringUtils.isEmpty(templatePath);
}
/**
* 当前模板 停用失败
*
@ -1231,6 +1264,7 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta
/**
* 判断是否正在进行服务器配置
*
* @return boolean
*/
public boolean isServerConfig() {
@ -1239,6 +1273,7 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta
/**
* 设置是否正在进行服务器配置
*
* @param serverConfig
*/
public void setServerConfig(boolean serverConfig) {

37
designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITTableButton.java

@ -46,46 +46,13 @@ public class ITTableButton extends AbstractCellEditor implements TableCellEditor
if (StringUtils.isNotEmpty(GeneralUtils.objectToString(content.getTrlString()))) {
ITReplaceMainDialog.setITReplaceFlag(true);
TRL trl = new TRL(GeneralUtils.objectToString(content.getTrlString()));
FILE tplFile = FILEFactory.createFILE(content.getTemplatePath());
if (tplFile != null && tplFile.exists()) {
//模板已保存
navigate2ExistedTemplate(tplFile, trl);
} else {
//模板未保存
navigate2NotExistedTemplate(content, trl);
}
DesignerContext.getDesignerFrame().openOrActiveTemplate(content.getTemplatePath(), content.getTemplateName());
HistoryTemplateListCache.getInstance().getCurrentEditingTemplate().navigate(trl);
}
ITReplaceMainDialog.setITReplaceFlag(false);
}
/**
* 模板未保存的跳转逻辑
* @param content 存储模板名称的数据结构
* @param trl 跳转链接
*/
private void navigate2NotExistedTemplate(ITContent content, TRL trl) {
java.util.List<JTemplate<?, ?>> openTemplates = HistoryTemplateListCache.getInstance().getHistoryList();
for (int i = 0, len = openTemplates.size(); i < len; i++) {
if (StringUtils.equals(openTemplates.get(i).getTemplateName(), content.getTemplateName())) {
DesignerContext.getDesignerFrame().activateJTemplate(openTemplates.get(i));
HistoryTemplateListCache.getInstance().getCurrentEditingTemplate().navigate(trl);
break;
}
}
}
/**
* 模板已保存的跳转逻辑
* @param tplFile 模板的FILE文件
* @param trl 跳转链接
*/
private void navigate2ExistedTemplate(FILE tplFile, TRL trl) {
DesignerContext.getDesignerFrame().openTemplate(tplFile);
HistoryTemplateListCache.getInstance().getCurrentEditingTemplate().navigate(trl);
}
});
}
/**

Loading…
Cancel
Save