Browse Source

Pull request #11730: REPORT-91743 设计器通过关闭模板A的方式触发保存,设计器页面显示还是模板A的内容 同步10.0

Merge in DESIGN/design from ~DESTINY.LIN/design:bugfix/10.0 to bugfix/10.0

* commit 'e0ca47bf42fe2ef52025d0316b35fea39f584d60':
  REPORT-91743 设计器通过关闭模板A的方式触发保存,设计器页面显示还是模板A的内容 同步10.0
bugfix/10.0
parent
commit
52ab5b9700
  1. 14
      designer-base/src/main/java/com/fr/design/file/MutilTempalteTabPane.java

14
designer-base/src/main/java/com/fr/design/file/MutilTempalteTabPane.java

@ -766,8 +766,8 @@ public class MutilTempalteTabPane extends JComponent {
// 如果关闭的模板是当前选中的模板,则重新激活当前 selectIndex 的模板;
// selectIndex 没有变化,但是对应的模板已经变成了前一张模板
if (closeIconIndex == selectedIndex || isCloseCurrent) {
// 如果 closeIconIndex 是最后一个被渲染画出的,那么预览上一个,防止数组越界
if (closeIconIndex >= maxPaintIndex) {
// 如果当前关闭的模板在最右侧,那么预览上一个,防止数组越界
if (selectedIndex >= maxPaintIndex) {
// selectIndex 不会 <0 因为如果关闭的是打开的最后一个模板,那么关闭之后 openedTemplate.isEmpty() = true
selectedIndex--;
}
@ -953,6 +953,10 @@ public class MutilTempalteTabPane extends JComponent {
return;
}
}
//参考CloseCurrentTemplateAction,在closeFormat与closeSpecifiedTemplate之前要先设定isCloseCurrent,这样关闭之后才会自动切换tab
if (checkCurrentClose(template)) {
setIsCloseCurrent(true);
}
closeFormat(template);
closeSpecifiedTemplate(template);
DesignerContext.getDesignerFrame().getContentFrame().repaint();
@ -985,6 +989,12 @@ public class MutilTempalteTabPane extends JComponent {
}
private boolean checkCurrentClose(JTemplate template) {
JTemplate currentTemplate = HistoryTemplateListCache.getInstance().getCurrentEditingTemplate();
//10.0无JTemplate.isValid
return currentTemplate != null && ComparatorUtils.equals(template.getPath(), currentTemplate.getPath());
}
private class MultiTemplateTabMouseMotionListener implements MouseMotionListener {
/**

Loading…
Cancel
Save